Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по MySQL.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
99 Кб
Скачать
☆

Изменение таблицы

При работе с таблицами часто возникает проблема, что при планировании не были учтены те или иные требования. Чтобы внести коррективы в структуру таблицы часто ее просто удаляют, и создают новую с уже внесенными изменениями. Но этот способ неудобен, т.к. приходится сохранять данные из таблицы в другой таблице, а затем заново копировать их в вновь созданную. Благодаря команде ALTER TABLE мы можем легко добавлять новые поля или удалять уже имеющиеся, переименовывать саму таблицу, изменять тип данных в том или ином столбце и т.д.

Далее рассмотрим основные операции, которые можно сделать при помощи ALTER TABLE.

Переименование таблицы

Переименование таблицы можно сделать при помощи следующей конструкции:

ALTER TABLE table_name_old RENAME table_name_new где

table_name_old - старое имя таблицы, которое нам нужно переименовать;

table_name_new - новое имя таблицы.

Допустим, нам нужно переименовать таблицу search в search_en:

$sql="ALTER TABLE search RENAME search_en";

mysql_query($sql);

Вставка столбцов

Вставку нового столбца можно осуществить при помощи следующей конструкции:

ALTER TABLE table_name ADD field_name parametrs где

table_name - имя таблицы, в которой будет вставлен новый столбец;

field_name - имя вставляемого столбца;

parametrs - параметры, описывающие вставляемый столбец.

Обязательным параметром является указание типа данных. (Про возможные типы данных подробно написано в Создание и удаление таблицы). Например, нам надо вставить в таблицу my_frends столбец под названием adress_2, который будет содержать текстовые значения:

$sql="ALTER TABLE my_frends ADD adress_2 TEXT";

mysql_query($sql);

По умолчанию новый столбец вставляется в конец таблицы. Если необходимо, чтобы столбец встал в начало таблицы, нужно после параметров вставляемого столбца написать ключевое слово FIRST:

$sql="ALTER TABLE my_frends ADD adress_2 TEXT FIRST";

mysql_query($sql);

Теперь только что вставленный столбец окажется вначале таблицы. Если необходимо, чтобы столбец был вставлен не в начале таблицы, и не в конце, а после определенного столбца, то нужно применить ключевое слово AFTER имя столбца, после которого будет установлен новый столбец:

$sql="ALTER TABLE my_frends ADD adress_2 TEXT AFTER adress_1";

mysql_query($sql);

В этом примере новый столбец adress_2 будет установлен после столбца adress_1. Если нужно дописать к таблице не один, а несколько столбцов, то для каждого столбца нужно ADD field_name parametrs записать через запятую:

$sql="ALTER TABLE my_frends ADD adress_2 TEXT,

ADD adress_3 TEXT, ADD adress_4 TEXT";

mysql_query($sql);

В случае, если надо дописать два столбца внутри таблицы, можно поступить следующим образом:

$sql="ALTER TABLE my_frends ADD adress_2 TEXT AFTER adress_1,

ADD adress_3 TEXT AFTER adress_2";

mysql_query($sql);

Т.е. мы первый вставляемый столбец записываем после adress_1, а второй после первого.

Изменение свойств столбца

Изменить свойства одного или нескольких столбцов можно при помощи следующей конструкции:

ALTER TABLE table_name CHANGE field_name_old field_name_new parametrs где

table_name - имя таблицы, в которой находится изменяемый столбец;

field_name_old - имя столбца изменяемого столбца;

field_name_new - новое имя изменяемого столбца (должно равняться field_name_old, если мы не хотим поменять имя столбца);

 parametrs - новые параметры столбца.

В следующем примере установим тип строки field_1 как текст:

$sql="ALTER TABLE my_table CHANGE field_1 field_1 TEXT";

mysql_query($sql);

А если необходимо при этом еще и переименовать столбец в field_2, то получиться так:

$sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT";

mysql_query($sql);

В случае, если надо изменить свойства сразу нескольких столбцов, то конструкцию CHANGE field_name_old field_name_new parametrs повторяем через запятую для каждого столбца:

$sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT,

CHANGE field_3 field_3 TEXT";

mysql_query($sql);

Удаление столбцов

Удаление столбца можно сделать при помощи следующей конструкции:

ALTER TABLE table_name DROP field_name где

table_name - имя таблицы, в которой будет удален столбец;

field_name - имя удаляемого столбца.

$sql="ALTER TABLE search DROP id_num";

mysql_query($sql);

Если мы хотим удалить сразу несколько полей, то надо через запятую повторить DROP field_name для каждого столбца:

$sql="ALTER TABLE search DROP id_1, DROP id_2, DROP id_3";

mysql_query($sql);