Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

В версии MySQL 3.23 и более поздних можно использовать ключевые слова IF NOT EXISTS для того, чтобы не возникала ошибка, если указанная таблица уже существует. Следует учитывать, что при этом идентичность структур этих таблиц не проверяется.

Каждая таблица представлена набором определенных файлов в директории базы данных.

Синтаксис

CREATE [TEMPORARY] TABLE [IF NOT EXISTS]

имя_таблицы [(определение_столбца,...)]

[опции_таблицы] [select_выражение]

В

выражении определение_столбца перечисляют, какие столбцы должны быть созданы в таблице. Каждый столбец таблицы может быть пустым (NULL), иметь значение по умолчанию, являться ключом или автоинкрементом. Кроме того, для каждого столбца обязательно указывается тип данных, которые будут в нем храниться. Если не указывается ни NULL, ни NOT NULL, то столбец интерпретируется так, как будто указано NULL. Если поле помечают как автоинкремент (AUTO_INCREMENT), то его значение автоматически увеличивается на единицу каждый раз, когда происходит добавление данных в таблицу и в это поле записывается пустое значение (NULL, т.е. ничего не записывается) или 0. Автоинкремент в таблице может быть только один, и при этом он обязательно должен быть проиндексирован. Последовательность AUTO_INCREMENT начинается с 1. Наличие автоинкремента является одной из особенностей MySQL. Формально описание столбца (определение_столбца) выглядит так:

имя_столбца тип [NOT NULL | NULL]

[DEFAULT значение_по_умолчанию]

[AUTO_INCREMENT][PRIMARY KEY]

[reference_definition]

Тип столбца (тип в выражении определение_столбца) может быть одним из следующих:

– целый: INT[(length)] [UNSIGNED] [ZEROFILL]

– действительный: REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]

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

Показать все базы данных:

mysql>SHOW databases;

Сделать текущей базу данных book и показать все таблицы в ней:

mysql>use book;

Поделиться:
Популярные книги

Гримуар темного лорда IX

Грехов Тимофей
9. Гримуар темного лорда
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда IX

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Неудержимый. Книга XIX

Боярский Андрей
19. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIX

#НенавистьЛюбовь

Джейн Анна
Любовные романы:
современные любовные романы
6.33
рейтинг книги
#НенавистьЛюбовь

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

Базис

Владимиров Денис
7. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Базис

Я до сих пор князь. Книга XXII

Дрейк Сириус
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII

Последний рейд

Сай Ярослав
5. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Последний рейд

Антимаг

Гедеон Александр и Евгения
1. Антимаг
Фантастика:
фэнтези
6.95
рейтинг книги
Антимаг

Старая школа рул

Ромов Дмитрий
1. Второгодка
Фантастика:
альтернативная история
6.00
рейтинг книги
Старая школа рул

Ермак. Телохранитель

Валериев Игорь
2. Ермак
Фантастика:
альтернативная история
7.50
рейтинг книги
Ермак. Телохранитель

Вагант

Листратов Валерий
6. Ушедший Род
Фантастика:
боевая фантастика
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Вагант

Девяностые приближаются

Иванов Дмитрий
3. Девяностые
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Девяностые приближаются

Deus vult

Зот Бакалавр
9. Герой Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Deus vult