Перед тем как создать таблицу, в клиентской программе следует выбрать базу данных, с которой будет производиться работа. Эта операция осуществляется при помощи инструкции use (листинг 4.9).
Для создания таблицы используется оператор create table, после которого следует имя создаваемой таблицы и в круглых скобках— структура таблицы (листинг.10).
В круглых скобках через запятую указываются имена столбцов и их тип. Так, созданная таблица tbl имеет два поля: number, куда можно помещать целочисленные значения (int), и поле name, в котором размещаются строки (text). Максимальная длина имен таблиц и столбцов составляет 64 знака и может включать литеры, цифры и сим-сты '_' и '$'. Имя может начинаться с цифры, но не должно полностью состоять из цифр.
Проконтролировать вновь созданную таблицу можно при помощи оператора show BBS, который возвращает список таблиц текущей базы данных.
Листинг 4.11. Использование оператораshow tables
Для того чтобы просмотреть содержимое другой базы данных, следует предварительно выбрать ее с использованием оператора use (листинг 4.12).
Как видно из листинга 4.12, учебная база данных содержит четыре таблицы: catalogs, orders, products и users.
Удаление таблицы производится при помощи оператора drop table (листинг 4.13).
Наряду с обращением к таблице по ее имени, например tbl, существует расширенное обращение, включающее в себя имя базы данных, например, test.tbl.
Для того чтобы получить описание столбцов базы данных, можно воспользоваться оператором describe.Как видно из листинга 4.14, имя таблицы приведено в расширенном формате test.tbl, однако вполне допустимо указание одного имени таблицы tbl, если в качестве текущей базы данных выбрана test.
Оператор describe возвращает таблицу, каждая строка которой соответствует столбцу таблицы tbl. Имена столбцов и их типы приводятся в первом и втором столбцах соответственно. К остальным столбам результирующей таблицы мы вернемся по мере освоения материала.
- MyISAM. Таблицы этого типа работают очень быстро и поддерживают полнотекстовую индексацию.
- ISAM является старым типом таблиц. Подобен MyISAM, но с меньшими возможностями.
- InnoDB является ACID-совместимым механизмом хранения, обеспечивающим поддержку транзакций, внешних ключей и блокировки на уровне строк.
- BDB является механизмом хранения, который обеспечивает поддержку транзакций и блокировки на уровне страниц.
- Таблицы HEAP целиком хранятся в памяти и никогда не записываются на диск, поэтому они работают очень быстро, но ограничены в размерах и не допускают возможности восстановления в случае отказа системы.
- Таблицы MERGE позволяют объединить несколько таблиц MylSAM с одной структурой, чтобы к ним можно было направлять запросы как к одной таблице. Это можно использовать для того, чтобы обойти ограничения операционной системы на максимальный размер файлов, а следовательно, и таблиц.
Можно указать и другие опции для таблицы. Они не обязательны и используются по большей части для оптимизации.
- AUTO_INCREMENT= # Позволяет установить начальное значение auto_ increment, отличное от 1.
- AVG_ROW__LENGTH = # Позволяет указать оценку для средней длины строки, чтобы помочь механизму хранения.
- CHECKSUM = 1 Позволяет включить вычисление контрольной суммы для строк таблицы, что может помочь обнаружить проблему при повреждении таблицы. Чтобы включить вычисление контрольной суммы, укажите значение 1. По умолчанию эта опция выключена и работает только с таблицами MylSAM.
- COMMENT = " строка" Сохраняет комментарий для этой таблицы.
- MAX_ROWS= # Задает максимальное число строк, которые будут храниться в таблице.
- MIN_ROWS= # Задает минимальное число строк, которые будут храниться в таблице.
- PACK_KEYS = {0 | 1| DEFAULT}По умолчанию MySQL упаковывает (сжимает) строки в ключах. Если указать значение 1, все ключи будут упакованы, а если указать 0, никакие ключи упаковываться не будут.
- PASSWORD= "строка"В стандартной версии MySQL не выполняет ничего.
- DELAY_KEY_WRITE= {0 |1}Позволяет отложить обновление ключей до того, как таблица будет закрыта. Работает только с таблицами MylSAM.
- ROWJFORMAT = {default | dynamic | fixed | compressed} - позволяет указать формат хранения для строк. Работает только с таблицами MylSAM.
- RAID_TYPE = {1 | STRIPED | RAIDO} RAID_CHUNKS=# RAID_ CHUNKS I ZE=#Позволяет указать конфигурацию RAID с целью оптимизации.
- UNION = (имя_таблицы, [имя_таблицы.. . ]) Касается только таблиц MERGE и позволяет указать таблицы, которые должны быть частью MERGE.
- INSERT_METHOD = {NO | FIRST | LAST}Касается только таблиц MERGE и позволяет указать таблицу, в которую должны добавляться данные.
- DATA DIRECTORY-полный путь к каталогу"Позволяет указать место, где должны храниться данные таблицы.
- INDEX DIRECTORY-полный путь к каталогу"Позволяет указать место, где должны храниться индексы таблицы.
MySQL поддерживает несколько типов данных.
- Числовые данные — к ним относят целые числа, не содержащие дробной части (например, 124), а также вещественные числа, состоящие из последовательности цифр, разделенных точкой (например, 56.45).
- Строковые данные — последовательность символов, заключенных в одинарные или двойные кавычки: 'Hello world', '123', "MySQL". В качестве стандарта в SQL определяются одинарные кавычки, поэтому для совместимости с другими базами данных рекомендуется использовать именно их.
- Календарные данные — специальный тип для обозначения даты и времени, может принимать различную форму, например строковую "2005-04-28" или числовую 20050428. Основной характеристикой этого типа данных является их хранение в едином внутреннем формате, позволяющем осуществлять операции сложения и вычитания, независимо от внешнего представления.
- NULL — специальный тип данных, обозначающий отсутствие информации.