В данной статье речь пойдет о работе с таблицами, будут рассмотрены основные типы таблиц используемых в MySQL или как их еще называют типы движков таблиц, а также основные команды, используемые для создания, удаления, просмотра, переименование и копирования таблиц. Заканчивается статься рассмотрением команд для работы со столбцами таблиц - команды для добавления нового столбца в таблицу, удаления существующего столбца, изменение имени, типа и свойств столбца.
Просмотр списка поддерживаемых типов таблиц
Просмотр детальной информации о таблице, ее структуры
Просмотр кода с помощью которого создавалась таблица
Копирование таблиц из одной базы в другую
Изменить определений столбца (изменить имя, тип столбца или свойства)
Просмотр списка поддерживаемых типов таблиц
SHOW ENGINES;

Описание столбцов:
Engine – содержит типы таблиц.
support - поддержка определенного типа таблиц.
Comment – содержит краткое описание.
Transactions - поддержка транзакций.
Типы движков таблиц
FEDERATED – используется для объединения нескольких MySQL серверов в одну логическую базу.
MRG_MYISAM (MERGE) – позволяет логически объединить MyISAM таблицы c идентичной структурой в одну, таблицы должны иметь идентичную структуру.
MyISAM – один из самых распространенных типов таблиц MySQL, используемый в Web-приложениях, поддерживается всеми дистрибутива MySQL, является не транзакционным типом таблиц и не поддерживает внешние ключи.
BLACKHOLE (черная дыра) – таблица не содержит никаких данных, все данные записанные в эту таблицу исчезают (/dev/null). Результатом запроса выборки всегда будут пустые строки.
CSV – таблицы хранятся в текстовом файле формата CSV с запятой в качестве разделителя, для редактирования можно использовать любой текстовый редактор.
MEMEORY (HEAP) – данные хранятся в оперативной памяти, что позволяет реализовать быстрый доступ к данным.
ARCHIVE – сжатые таблицы без индексов, подходит для хранения больших объёмов данных, к которым не нужен постоянный доступ, характерная особенность - медленное выполнение запросов и отсутствие поддержки запросов типа DELETE, REPLACE, UPDATE.
InnoDB – база данных поддерживает транзакций, возможность отмены транзакции, блокировку доступа на уровне строк, использование внешних ключей (FOREIGN KEY). Начиная c версии 5.5.5, этот тип используется по умолчанию.
Создание таблиц.
CREATE TABLE [имя_таблицы] (
[имя_столбца_1] [тип_столбца_1] [свойства_столбца_1],
[имя_столбца_2] [тип_столбца_2] [свойства_столбца_2],
. . . . . .
[имя_столбца_N] [тип_столбца_N] [свойства_столбца_N],
[информация_о_ключах_и_индексах])
[свойства_таблицы];
Пример 1:
CREATE TABLE Test1 ( Name1 VARCHAR(10), Name2 VARCHAR(10), Name3 VARCHAR(10) );
Из примера видно, что многие из параметров необязательны, т.е. для создания таблицы достаточно указать имя таблицы (Test1) и имена и типы столбцов (Name1 VARCHAR(10)) .
Пример 2:
CREATE TABLE Test2 ( id INT(5) NOT NULL AUTO_INCREMENT, Name1 VARCHAR(10), Name2 TEXT, PRIMARY KEY (id) ) ENGINE InnoDB CHARACTER SET utf8;
Данный пример демонстрирует, что при создание таблицы командой ENGINE можно выбрать тип таблицы (InnoDB) и задать используемую кодировку в таблице (CHARACTER SET utf8). С помощью PRIMARY KEY (id) мы указали что столбец id будет первичным ключом, а тип NOT NULL AUTO_INCREMENT позволяет автоматически нумеровать строки таблицы столбца id.
Удаление таблиц
DROP TABLE [имя_таблицы];
Пример:
DROP TABLE TestTable;
Переименование таблиц
RENAME TABLE [имя_таблицы] TO [новое_имя_таблицы];
Пример:
RENAME TABLE TestTable TO NewTable;
Просмотр списка таблиц
SHOW TABLES;
Выводит список всех таблиц из выбранной базы данных с помощью команды USE.
SHOW TABLES IN [имя_базы_данных];
Выводит список всех таблиц из указанной базы данных.
SHOW TABLES LIKE ‘%символы%’;
Выводит список всех таблиц из выбранной базы данных с помощью команды USE, и содержащих в название перечисленные символы.
Пример:

Выводит список таблиц содержащих в название символы est.
Просмотр детальной информации о таблице, ее структуры.
DESCRIBE [имя_таблицы];
Пример:
DESCRIBE testtable;

Просмотр кода с помощью которого создавалась таблица.
SHOW CREATE TABLE [имя_таблицы];
Пример:
SHOW CREATE TABLE testtable;

Копирование таблиц.
CREATE TABLE [новая_таблица] LIKE [старая_таблица]; INSERT [новая_таблица] SELECT * FROM [старая_таблица];
Выполняемые запросы копируют структуру таблицы и содержащиеся в ней данные, из выбранной базы данных с помощью команды USE.
Пример:
CREATE TABLE NewTable LIKE OldTable; INSERT NewTable SELECT * FROM OldTable;
Копирование таблиц из одной базы в другую.
CREATE TABLE [имя_db1].[новая_таблица] LIKE [имя_db2].[старая_таблица]; INSERT [имя_db1].[новая_таблица] SELECT * FROM [имя_db2].[старая_таблица];
имя_db – имя базы данных.
Пример:
CREATE TABLE db1.NewTable LIKE db2.OldTable; INSERT db1.NewTable SELECT * FROM db2.OldTable;
Добавление столбца к таблице
ALTER TABLE [имя_таблицы] ADD COLUMN [имя_столбца] [тип_столбца] [свойства] FIRST/AFTER [имя_предшествующего_столбца];
Команда FIRST добавляет столбец в начало, делает первым новый столбец. Команда AFTER добавляет столбец вслед за указанным. Если эти команды не используются, то столбец добавляется в конец таблицы.
Пример:
ALTER TABLE TestTable ADD COLUMN Name5 VARCHAR(10) NOT NULL FIRST;
Изменить определений столбца (изменить имя, тип столбца или свойства)
ALTER TABLE [имя_таблицы] CHANGE COLUMN [имя_столбца] [тип_столбца] [свойства];
Пример:
ALTER TABLE TestTable CHANGE COLUMN Name2 INT(5) NOT NULL;
Удалить столбец таблицы
ALTER TABLE [имя_таблицы] DROP [имя_столбца];
Пример:
ALTER TABLE TestTable DROP [Name2];
На этом все. Всем пока.

Компонент комментариев CComment