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

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

Жанры

Курс "Язык программирования 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;

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

Ну привет, заучка...

Зайцева Мария
Любовные романы:
эро литература
короткие любовные романы
8.30
рейтинг книги
Ну привет, заучка...

Моров. Том 5

Кощеев Владимир
4. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 5

Вернувшийся: Новая жизнь. Том I

Vector
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Сильнейший Столп Империи. Книга 3

Ермоленков Алексей
3. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 3

Наследник, скрывающий свой Род

Тарс Элиан
2. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник, скрывающий свой Род

1971

Щепетнов Евгений Владимирович
2. 1970
Фантастика:
альтернативная история
7.00
рейтинг книги
1971

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Библия

Библия
Религия и эзотерика:
религия
7.41
рейтинг книги
Библия

Отверженный III: Вызов

Опсокополос Алексис
3. Отверженный
Фантастика:
фэнтези
альтернативная история
7.73
рейтинг книги
Отверженный III: Вызов

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ