Следующим шагом после создания базы данных является создание в ней одной или более таблиц. Команды SQL, которые используются для создания новой таблицы, имеют следующий синтаксис:
CREATE TABLE имя-таблицы (объявление-поля, объявление - поля, ...) TYPE = тип - таблицы;
Правила создания имен таблиц и полей аналогичны правилам создания имен баз данных. Каждая таблица (вместе с данными, которые она содержит) хранится в каталоге MySQL data/ в виде набора из трех файлов (предполагается, что используется стандартный тип таблиц MylSAM). Можно задавать столько полей, сколько нужно, разделяя при этом объявления полей запятыми. Поля и таблицы, повторяющие зарезервированные слова MySQL, должны выделяться обратной одинарной кавычкой
Ниже представлен пример использования этой команды для создания таблицы, в которой должны храниться имена пользователей и их пароли.
Как видно из предыдущих примеров, объявление поля в команде CREATE TABLE содержит уникальное имя поля, и указанный за ним типа поля, задающего тип данных, которые будут содержаться в этом поле. Одна команда CREATE TABLE позволяет задавать множество таких объявлений. После этих объявлений задаются ограничения уровня таблицы и объявление типа таблицы.
Об этих компонентах речь пойдет в следующих разделах.
Типы полей
СУБД MySQL отличается разнообразием типов полей, удовлетворяющих различным требованиям к данным. Самые важные из них представлены в табл. 8.1 и детально описаны в главе 5, "Типы данных MySQL".
Ограничения, касающиеся полей
Каждое из определений поля может содержать дополнительные ограничения или модификаторы, которые целесообразно использовать для повышения контроля целостности вводимых в базу данных.
Не мой type
Предложение TYPE в команде CREATE TABLE является необязательным, и по умолчанию создаются таблицы типа MylSAM1. Детальнее об этом - в разделе "Типы таблиц".
Модификаторы null и not null
Модификаторы NULL и NOT NULL указываются после каждого объявления поля, определяя тем самым, что это поле должно быть, соответственно, пустым, т.е. не содержать данных, или наоборот - обязательно заполненным данными. По умолчанию MySQL делает объявление с модификатором NULL. Если поле обязательно должно быть задано как NOT NULL, MySQL не пропустит команды INSERT, содержащие пустые значения в этом поле.
Если, например, вы хотите применить модификатор NOT NULL для полей только что созданной таблицы users, объявление таблицы будет иметь следующий вид.
Однако это правило не имеет силы для полей, объявленных с модификатором AUTO_INCREMENT, и для полей типа TIMESTAMP. Добавление значения NULL в эти поля приводит к добавлению следующего по порядку значения или текущей временной метки соответственно.
Модификатор default
Модификатор DEFAULT позволяет задавать значения, присваиваемые по умолчанию. Эти значения присваиваются, если при добавлении новой записи не задается никакого конкретного значения. Обратимся к следующему примеру, в котором создается таблица, содержащая информацию о служащих и отделах, в которых они трудятся. По умолчанию все служащие работают в отделе информационных систем (MIS).
Если модификатор DEFAULT перед полем отсутствует, MySQL автоматически присваивает значение по умолчанию в зависимости от того, может поле иметь значение NULL или нет. Для полей, объявленных как NULL, MySQL по умолчанию добавляет значение NULL. Для полей, объявленных как NOT NULL, MySQL вставит значение 0 для цифровых типов, пустую строку для строковых типов, для типа TIMESTAMP вставляется текущая дата и время, а для типа ENUM - первое значение из перечисления.
Модификатор autoincrement
Модификатор AUTO_INCREMENT, применяемый только к полям типа INT, отображает, что MySQL должен автоматически генерировать число, которое будет храниться в этом поле (инкрементируя предыдущее значение на 1). Это особенно уместно для первичных ключей, т.к. он позволяет автоматически создавать уникальный идентификатор для каждой записи.
Рассмотрим следующий пример, демонстрирующий автоматическое присвоение всем записям уникального числового идентификатора.
На заметку
Таблицы MySQL могут иметь только одно поле, объявленное с модификатором AUTO_INCREMENT, которое, кроме того, должно быть ключевым.
Кроме ограничений на уровне полей, MySQL позволяет задавать такие ограничения табличного уровня, как первичные и внешние ключи, индексы и ограничения на уникальность. Эти ограничения обычно задаются в команде CREATE TABLE после объявления полей. Подробнее об этом - в следующих разделах.
ТОП-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. Индексы |