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/.)
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Добавление таблиц
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Краткий курс MySQL и SQL | Все о MySQL. Удаление и модификация записей |