Язык программирования PHP | страница 98
- символьный: CHAR(length) [BINARY] и VARCHAR(length) [BINARY]
- дата и время: DATE и TIME
- для работы с большими объектами: BLOB
- текстовый: TEXT
- перечислимое множество: ENUM(value1,value2,value3,...) и SET(value1,value2,value3,...)
Полный список типов смотрите в документации MySQL.
Вместо перечисления столбцов и их свойств в определении_столбца можно задавать списки ключевых и индексных полей, ограничения и проверки:
PRIMARY KEY (имя_индексируемого_столбца, ...)
или
KEY [имя_индекса] (имя_индексируемого_столбца,...)
или
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 можно просмотреть существующие базы данных, таблицы в базе данных и поля в таблице.