Изменение таблицы
При работе с таблицами часто возникает проблема, что при планировании не были учтены те или иные требования. Чтобы внести коррективы в структуру таблицы часто ее просто удаляют, и создают новую с уже внесенными изменениями. Но этот способ неудобен, т.к. приходится сохранять данные из таблицы в другой таблице, а затем заново копировать их в вновь созданную. Благодаря команде 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); |
