52568.fb2
INDEX [имя_индекса] (имя_индексируемого_столбца,...)
или
UNIQUE [INDEX] [имя_индекса]
(имя_индексируемого_столбца,...)
или
FULLTEXT [INDEX] [имя_индекса]
(имя_индексируемого_столбца,...)
или
[CONSTRAINT symbol]
FOREIGN KEY [имя_индекса]
(имя_индексируемого_столбца,...)
[reference_definition]
или
CHECK (expr)
При задании всех этих элементов указывается список полей (столбцов), которые будут входить в индекс, ключ или ограничение, имя_индексируемого_столбца записывается следующим образом:
имя_столбца [(длина_индекса)]
FOREIGN KEY, CHECK и REFERENCES на самом деле ничего не делают в MySQL. Они добавлены только для совместимости с другими SQL-серверами. Поэтому на них мы останавливаться не будем.
Кроме всего перечисленного, при создании таблицы можно указать некоторые ее свойства (опции_таблицы), например такие:
- тип таблицы: TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
- начальное значение счетчика автоинкремента: AUTO_INCREMENT = число
- средняя длина строк в таблице: AVG_ROW_LENGTH = число
- комментарии к таблице (строка из 60 символов): COMMENT = "строка"
- максимальное и минимальное предполагаемое число строк: MAX_ROWS = число и MIN_ROWS = число
И последний (опять же опциональный) элемент команды CREATE – это выражение SELECT (select_выражение). Синтаксис такой:
[IGNORE | REPLACE] SELECT ...
(любое корректное выражение SELECT)
Если при создании таблицы в команде CREATE указывается выражение SELECT, то все поля, полученные выборкой, добавляются в создаваемую таблицу.
Пример 10.1. Создадим таблицу Persons, структура которой была приведена на рисунке 10.1.
mysql>CREATE TABLE Persons
(id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50), last_name
VARCHAR(100), death_date INT,
description TEXT, photo INT,
citienship CHAR(50) DEFAULT 'Russia');
С помощью специфичной для MySql команды SHOW можно просмотреть существующие базы данных, таблицы в базе данных и поля в таблице.
Показать все базы данных:
mysql>SHOW databases;
Сделать текущей базу данных book и показать все таблицы в ней:
mysql>use book;
mysql>show tables;
Показать все столбцы в таблице Persons:
mysql> show columns from Persons;
Оператор DROP TABLE
Оператор DROP TABLE удаляет одну или несколько таблиц. Все табличные данные и определения удаляются, так что при работе с этой командой следует соблюдать осторожность.
Синтаксис:
DROP TABLE [IF EXISTS] имя_таблицы
[, имя_таблицы,...]
[RESTRICT | CASCADE]
В версии MySQL 3.22 и более поздних можно использовать ключевые слова IF EXISTS, чтобы предупредить ошибку, если указанные таблицы не существуют.