Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Your MySQL connection id is 4 to server version: 4.0.12-max




Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

Тема: Создание, модификация и удаление таблиц баз данных.

Точка с запятой используется для обозначения окончания данной SQL-команды и что-либо, следующее за этим символом, указывает на начало следующего выражения.

Эти ограничения относятся как к интерактивному режиму работы mysql (из командной строки), так и к вызову команд из файла, читаемого с ввода командой mysql < some-file.

Таблица, структурированное вместилище данных, является основным понятием реляционных баз данных. Прежде чем начать вводить данные в таблицу, надо определить ее структуру.

Создание таблиц

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(col_name type [NOT NULL | NULL] [AUTO_INCREMENT] [DEFAULT default_value] [PRIMARY KEY]

или PRIMARY KEY (col_name [(length)],...)

или KEY [index_name] (col_name [(length)],...)

или INDEX [index_name] (col_name [(length)],...)

или UNIQUE [INDEX] [index_name] (col_name [(length)],...)

или FULLTEXT [INDEX] [index_name] (col_name [(length)],...)

или CHECK (expr),...)]

или FOREIGN KEY [REFERENCES tbl_name [(index_col_name,...)]

[MATCH FULL | MATCH PARTIAL]

[ON DELETE reference_option]

[ON UPDATE reference_option]

TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }]

[ SELECT... ] (любое корректное выражение SELECT)

или

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name LIKE old_table_name;

Оператор CREATE TABLE создает таблицу с заданным именем в текущей базе данных. Если нет активной текущей базы данных или указанная таблица уже существует, то возникает ошибка выполнения команды.

Каждая таблица tbl_name представлена определенными файлами в директории базы данных. В случае таблиц типа MyISAM это следующие файлы:

Файл Назначение
tbl_name.frm Файл определения таблицы
tbl_name.MYD Файл данных
tbl_name.MYI Файл индексов

Для хорошей переносимости SQL нужно избегать имен, начинающихся не с допустимой буквы. Длина идентификатора может быть до 64 символов.

Предложение состоит из имени таблицы, за которым идет любое количество определений полей. Синтаксис определения полей включает в себя имя поля, за ним его тип, за ним любой модификатор (например: name char(30) not null).

TEMPORARY-- в ременная таблица автоматически удаляется по завершении соединения, а ее имя действительно только в течение данного соединения.

IF NOT EXISTS для проверки существования данной таблицы.

AUTO_INCREMENT Атрибут позволяет автоматически обновлять числовое поле. Это удобно для создания уникальных идентификаторов для записей в таблице. При вводе значения NULL или 0 существующее значение автоматически увеличивается на единицу. Текущее значение поля AUTO_INCREMENT может быть получено с помощью функции LAST_INSERT_ID().

DEFAULT value Атрибут приписывает полю значение по умолчанию. Это значение будет присвоено полю в случае, если во вводимой в таблицу записи это поле пустое. Если значение по умолчанию не определено и нет ограничения NOT NULL, то будет записано значение NULL. В случае NOT NULL MySQL запишет значение на основе типа поля.

NOT NULL Этот атрибут гарантирует, что каждая запись в столбце будет иметь какое-либо, отличное от NULL, значение. Попытка вставить в такое поле значение NULL вызовет ошибку.

NULL Атрибут указывает на допустимость значения NULL. Это атрибут по умолчанию в случае, если никакой атрибут не указан. Поля, входящие в состав индекса, не могут иметь атрибут NULL. (Он будет проигнорирован, даже если он указан.)

PRIMARY KEY Атрибут автоматически делает поле первичным ключом таблицы. Таблица может иметь только один первичный ключ. Любое поле, являющееся первичным ключом, должно иметь атрибут NOT NULL.

FULLTEXT создание индекса, для полнотекстового поиска.

FOREIGN KEY таблицы InnoDB выполняют проверку ограничений внешнего ключа. Столбцы таблицы, на которую ссылаются, должны быть явно указаны. InnoDB поддерживает действия ON DELETE и ON UPDATE.

CHECK фактически ничего не делают. Они введены только из соображений совместимости, чтобы облегчить перенос кода с других SQL-серверов.

Если после команды CREATE указывается команда SELECT, то создаются новые поля для всех элементов в данной команде SELECT. Например:

CREATE TABLE foo (a tinyint not null) SELECT b+1 AS 'a' FROM bar;

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...