Справочник
WEB - языков

www.spravkaweb.ru Rambler's Top100
 Вы находитесь: Главная/MySQL/Изменение таблицы.Распечатать 
Разделы
Новости
Сразу все
HTML
JavaScript
VBScript
CSS
Flash
Perl
PHP
MySQL
SSI
VRML
Дополнительно
Советы
Форум
Гостевая
Ссылки
Написать мне
Поиск:
Рассылки
Subscribe.Ru:

MySQL

<--Назад | Вернуться к списку | Дальше-->
Изменение таблицы
При работе с таблицами часто возникает проблема, что при планировании не были учтены те или иные требования.
Чтобы внести коррективы в структуру таблицы часто ее просто удаляют, и создают новую с уже внесенными изменениями.
Но этот способ неудобен, т.к. приходится сохранять данные из таблицы в другой таблице, а затем заново копировать их в вновь созданную.
Благодаря команде 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);
    
  • Комментарии
    Имя:
    Майл:
    Коментарий:
    Наверх / К оглавлению
     
    Что нового:
    05.04.2004
    Очередное продолжение темы отправки писем с сайта.
    Хотите, чтобы в отправляемом письме были картинки? А может flash-ролик или звук?
    Как это сделать читайте в статье Как вставить в письмо картинку.
    Голосование:
    Ваше отношение к дизайну сайта:
    Приятный.
    Оригинальный.
    Так себе.
    Видали и получше.
    Ужасный.
    Ничего хуже не встречали.
    Счетчики:
    Rambler's Top100
    Сделать страницу стартовой Сделать страницу стартовой
    Добавить страницу в избранное Добавить сайт в избранное
    Сообщить об найденной ошибке Сообщить об ошибке