Язык программирования 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 можно просмотреть существующие базы данных, таблицы в базе данных и поля в таблице.