SQL-оператор, применяющаяся для создания новой таблицы, имеет следующий синтаксис:
CREATE TABLE имя-таблицы (имя-поля-1 тип-поля-1модификаторы, имя-поля-2 тип-поля-2модификаторы, ... имя-поля-n тип-поля -пмодификаторы)
Имя таблицы не может содержать пробелов, символов тире или точек, использование других символов допустимо. Все таблицы (и данные, которые они содержат) хранятся в каталоге данных MySQL в виде трех отдельных файлов.
Рассмотрим пример команды для создания таблицы members (см. предыдущий пример):
Листинг 4.11.
mysql> CREATE TABLE members (member_id int(11) NOT NULL auto_increment,
fname varchar(50) NOT NULL, lname varchar(50) NOT NULL, tel varchar(15), email varchar(50) NOT NULL, PRIMARY KEY (member_id));
Query OK, 0 rows affected (0.05 sec)
Обратите внимание, что за каждым именем поля следует его тип, допустимый для этого поля, и (иногда) значение длины, задающее максимальную длину этого поля. Например, в первой строке для поля memeber_id объявляется тип int с максимальной длиной 11. MySQL имеет несколько типов данных, соответствующих различным требованиям, предъявляемым к данным. Основные типы описаны во врезке "Не мой тип".
Добавление таблиц
Для повышения целостности данных, хранящихся в таблице, на значения можно наложить определенные ограничения (это делается специальными модификаторами):
■ С помощью модификаторов NULL и NOT NULL можно задать поле пустым или заполненным данными соответственно.
■ С помощью модификатора PRIMARY KEY можно объявить поле, входящее в состав первичного ключа.
■ С помощью модификатора UNIQUE можно объявить поле, содержащее "уникальное" значение, т.е. не повторяющееся в остальных значениях данного поля.
■ С помощью модификатора AUTO_INCREMENT можно объявить числовое поле, значение которого будет генерироваться автоматически (с приращением на единицу). 
А теперь создадим две таблицы с помощью таких SQL-операторов. Листинг 4.12.
mysql> CREATE TABLE videos (video_id int(11) NOT NULL auto_increment, title varchar(255) NOT NULL, director varchar(255) NOT NULL PRIMARY
KEY (video_id));
Query OK, 0 rows affected (0.05 sec)
mysql> CREATE TABLE status (member_id int(11) NOT NULL, video_id tinyint(11);
Query OK, 0 rows affected (0.05 sec)
Если в момент создания таблицы была допущена ошибка, изменить структуру таблицы можно с помощью команды ALTER TABLE, имеющей следующий синтаксис: ALTER TABLE имя-таблицы ADD новое-имя-поля новый-тип-поля
Но если потребуется только внести изменения в определение существующего столбца, можно воспользоваться следующей разновидностью команды ALTER TABLE:
ALTER TABLE имя-таблицы MODIFY старое-имя-поля новое-имя-поля модифи­каторы
Таблицу можно не только создать, но и удалить. Это делается с помощью команды DROP TABLE, имеющей такой синтаксис: DROP TABLE имя- таблицы
Листинг 4.13.
mysql> DROP TABLE members;
Query OK, 0 rows affected (0.05 sec)
По этой команде указанная таблица будет немедленно удалена из базы данных вместе с информацией, которая хранится в ней. Поэтому обращаться с этой командой необходимо с крайней осторожностью!
О работе с таблицами можно больше узнать в главе 8, "Обработка баз данных и таблиц".
Добавление записей
После создания таблицы можно приступать к заполнению ее данными. Для этого предназначена SQL-команда INSERT. Она имеет такой синтаксис:
INSERT into имя-таблицы (имя-поля-1, имя-поля-2, имя-поля-п) VALUES (значение-1, значение-2, значение-п)
Листинг 4.14.
mysql> INSERT INTO members (member_id, fname, lname, tel, email) VALUES (NULL, 'John', 'Doe', '1234567', 'jdoe@somewhere.com');
Query OK, 1 row affected (0.06 sec)
Можно также использовать сокращенную форму оператора INSERT, в которой имена полей не задаются:
Листинг 4.15.
mysql> INSERT INTO members (member_id, fname, lname, tel, email) VALUES (NULL, 'John', 'Doe', '1234567', 'jdoe@somewhere.com');
Query OK, 1 row affected (0.06 sec) 
Здесь есть один нюанс: при указании имен полей в операторе INSERT есть возможность перечислить имена полей в произвольном порядке. Поэтому следующие операторы считаются эквивалентными.
Листинг 4.16.
mysql> INSERT INTO members (member_id, fname, lname, tel, email) VALUES (NULL, 'John', 'Doe', '1234567', 'jdoe@somewhere.com');
Query OK, 1 row affected (0.06 sec)
mysql> INSERT INTO members (fname, lname, email, tel, member_id) VALUES ('John', 'Doe', 'jdoe@somewhere.com', '1234567', NULL);
Query OK, 1 row affected (0.00 sec)
Полям, не перечисленным в команде, будут автоматически присвоены их значения по умолчанию.
Теперь, когда вы узнали, как добавляются записи, попробуйте на основании предыдущих примеров из раздела "Что такое реляционные СУБД" добавить записи в три таблицы, упомянутые в этих примерах. (Предназначенные для создания этих таблиц SQL-команды можно найти на Web-узле http://www.mysql-tcr.com/.)