Имея действующий сервер базы данных, зная как предоставлять права доступа пользователям и как создавать базу данных, а также ознакомившись с основными типами данных, можно переходить к созданию таблиц.
Таблица базы данных — это просто последовательность строк, каждая из которых содержит фиксированный набор столбцов. Она довольно похожа на электронную таблицу за исключением того, что у всех строк должно быть одно и то же число столбцов и одинаковые типы данных и каждая строка каким-то образом должна отличаться от всех остальных строк таблицы.
База данных может, если для этого есть разумные основания, содержать очень много, практически неограниченное количество таблиц. Однако лишь немногим СУРБД требуется более 100 таблиц, а большинству маленьких систем вполне достаточно 25 или около того таблиц.
Синтаксис языка SQL, посвященный созданию объектов баз данных и называемый DDL (data definition language, язык определения данных), невозможно охватить полностью в одной главе; все подробности есть в разделе документации, на Web-сайте MySQL.
Базовый синтаксис для создания таблиц следующий:
CREATE TABLE < таблица > {
column type [NULL | NOT | NULL] [AUTO_INCREMENT] [PRIMARY KEY]
[, ...]
[, PRIMARY KEY (столбец [, ...] ) ]
)
Удалять таблицы можно с помощью очень простой синтаксической формулы DROP TABLE.
DROP TABLE < таблица >
Есть всего лишь небольшое число ключевых слов, приведенных в табл. 8.10, которые вам необходимо знать для того, чтобы быстро создать таблицу.
Таблица 8.10
| Ключевое слово |
Описание |
AUTO INCREMENT |
Это специальное ключевое слово сообщает MySQL о том, что, когда вы пишете в данный столбец NULL, следует автоматически заполнить столбец данными с помощью автоматически формируемого числа с наращением. Это чрезвычайно полезное средство; оно позволяет применять MySQL для автоматического назначения уникальных номеров строкам ваших таблиц, хотя оно может применяться только в столбцах, являющихся также первичными ключами. В других системах управления базами данных оно часто реализуется порядковым типом или управляется более явно с помощью последовательности |
NULL |
Специальное значение в базе данных, обычно применяемое для обозначения "неизвестной" величины, но может также использоваться для обозначения "неподходящего" значения. Например, если вы заполняете таблицу подробными данными о сотрудниках, у вас может быть столбец с адресом электронной почты. В этом случае вы будете хранить NULLвместо адреса данного сотрудника, чтобы показать, что для конкретного человека эта информация не известна. Запись NOT NULLозначает, что в этом столбце нельзя хранить значения NULLи может оказаться полезной для того, чтобы помешать вводу в такие столбцы значений NULL, если, например, значение всегда должно быть известно, как в случае фамилии сотрудника |
PRIMARY KEY |
Указывает на то, что данные в этом столбце будут уникальными и разными во всех строках данной таблицы. У каждой таблицы может быть только один первичный ключ |
Выполните упражнение 8.1.
Упражнение 8.1. Создание таблицы и вставка данных
Гораздо легче понять создание таблицы на практике, чем смотреть на базовую синтаксическую запись, поэтому сейчас вы сделаете это, создав таблицу с именем children, в которой будет храниться уникальный номер для каждого ребенка, его имя и возраст. Номер ребенка вы сделаете первичным ключом.
1. Вам нужен следующий оператор языка SQL
CREATE TABLE children (
childno INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
fname VARCHAR(30),
age INTEGER
);
Примечание
Обратите внимание на то, что в отличие от большинства языков программирования имя столбца ( childno) указывается перед типом столбца ( INTEGER ).
2. Вы также можете определить первичный ключ отдельно в определении столбца. Далее приведен пример интерактивного сеанса, в котором показан альтернативный синтаксис:
mysql> use rick
Database changed
mysql> CREATE table children (
-> childno INTEGER AUTO_INCREMENT NOT NULL,
-> fname varchar(30),
-> age INTEGER,
-> PRIMARY KEY(childno)
-> );
Query OK, 0 rows affected (0.04 sec)
mysql>
Вы можете записать команду или оператор SQL в нескольких строках, и монитор mysqlприменит подсказку ->, чтобы показать, что вы находитесь в строке продолжения. Как упоминалось ранее, команда SQL завершается точкой с запятой, чтобы показать, что вы закончили и готовы к обработке вашего запроса сервером базы данных.
Читать дальше