план:
CREATE DATABASE
DROP DATABASE
CREATE TABLE
ALTER TABLE
RENAME TABLE
DROP TABLE
Синтаксис оператора CREATE DATABASE
CREATE DATABASE [IF NOT EXISTS] db_name
Оператор CREATE DATABASE
создает базу данных с указанным именем. Правила для допустимых имен базы данных приведены в разделе section Если база данных уже существует и не указан ключевой параметр IF NOT EXISTS
, то возникает ошибка выполнения команды.
Базы данных в MySQL реализуются как директории, содержащие файлы, которые соответствуют таблицам в базе данных. Поскольку при первоначальном создании база данных не содержит таблиц, то команда CREATE DATABASE
создает только соответствующую поддиректорию в директории данных MySQL.
Синтаксис оператора DROP DATABASE
DROP DATABASE [IF EXISTS] db_name
Оператор DROP DATABASE
удаляет все таблицы в указанной базе данных и саму базу. Если вы выполняете DROP DATABASE
на базе данных, символически связанной с другой, то удаляется как ссылка, так и оригинальная база данных. Будьте ОЧЕНЬ внимательны при работе с этой командой!
Оператор DROP DATABASE
возвращает количество файлов, которые были удалены из директории базы данных. Как правило, это число равно количеству таблиц, умноженному на три, поскольку обычно каждая таблица представлена тремя файлами – `.MYD’-файлом, `MYI’-файлом и `.frm’-файлом.
Команда DROP DATABASE
удаляет из директории указанной базы данных все файлы со следующими расширениями:
Расширение | Расширение | Расширение | Расширение |
.BAK | .DAT | .HSH | .ISD |
.ISM | .ISM | .MRG | .MYD |
.MYI | .db | .frm |
Все поддиректории, имена которых состоят из двух цифр (RAID
-директории), также удаляются.
В версии MySQL 3.22 и более поздних можно использовать ключевые слова IF EXISTS
для предупреждения ошибки, если указанная база данных не существует.
Синтаксис оператора CREATE TABLE
Оператор CREATE TABLE
создает таблицу с заданным именем в текущей базе данных. Если нет активной текущей базы данных или указанная таблица уже существует, то возникает ошибка выполнения команды.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] create_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition] или PRIMARY KEY (index_col_name,...) или KEY [index_name] (index_col_name,...) или INDEX [index_name] (index_col_name,...) или UNIQUE [INDEX] [index_name] (index_col_name,...) или FULLTEXT [INDEX] [index_name] (index_col_name,...) или [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
Синтаксис оператора ALTER TABLE
Оператор ALTER TABLE
обеспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу. Можно также изменять комментарий для таблицы и ее тип.
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] или ADD [COLUMN] (create_definition, create_definition,...) или ADD INDEX [index_name] (index_col_name,...) или ADD PRIMARY KEY (index_col_name,...) или ADD UNIQUE [index_name] (index_col_name,...) или ADD FULLTEXT [index_name] (index_col_name,...) или ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition] или ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} или CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name] или MODIFY [COLUMN] create_definition [FIRST | AFTER column_name] или DROP [COLUMN] col_name или DROP PRIMARY KEY или DROP INDEX index_name или DISABLE KEYS или ENABLE KEYS или RENAME [TO] new_tbl_name или ORDER BY col или table_options
Синтаксис оператора RENAME TABLE
RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
Операция переименования должна осуществляться как атомарная, т.е. при выполнении переименования никакому другому потоку не разрешается доступ к указанным таблицам. Благодаря этому возможно замещение таблицы пустой таблицей:
CREATE TABLE new_table (...); RENAME TABLE old_table TO backup_table, new_table TO old_table;
Переименование производится слева направо. Таким образом, для обмена именами между двумя таблицами необходимо выполнить следующие действия:
RENAME TABLE old_table TO backup_table, new_table TO old_table, backup_table TO new_table;
Для двух баз данных, находящихся на одном и том же диске, можно также осуществлять обмен именами:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
Синтаксис оператора DROP TABLE
DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...] [RESTRICT | CASCADE]
Оператор DROP TABLE
удаляет одну или несколько таблиц. Все табличные данные и определения удаляются, так что будьте внимательны при работе с этой командой!
В версии MySQL 3.22 и более поздних можно использовать ключевые слова IF EXISTS
, чтобы предупредить ошибку, если указанные таблицы не существуют.
Опции RESTRICT
и CASCADE
позволяют упростить перенос программы. В данный момент они не задействованы.
Примечание: DROP TABLE
автоматически принимает текущую активную транзакцию.