class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

основы sql

введение
структура БД
инструментарий
комментарий
идентификаторы
обзор типов данных
интервалы времени
литералы
операции и выражения
обзор функций
преобразование типов
создание таблицы
изменение, удаление таблицы
вставка данных
изменение записей
удаление записей
выбор данных
соединения
агрегатные функции, группировка данных
операции над выборками
добавление итогов
нумерация записей
уникальность первич. ключа
индексы
представления

Dynamic SQL

прочее

Справочник по SQL

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

Команда ALTER позволяет изменить объект, команда DROP удалить объект из БД.

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


-- переименование таблицы
ALTER TABLE tblname RENAME TO tblname3;

-- переименование столбца oldname в newname
ALTER TABLE tblname RENAME oldname TO newname;

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

Во время развития БД иногда требуется добавить новый или удалить старый столбец в той или иной таблице. В приведенном ниже примере по стандарту ключевое слово COLUMN не обязательно, а в Oracle при добавлении столбца оно запрещено вовсе. В MySQL при добавлении столбца можно указать местоположение ключевыми словами FIRST или AFTER имя_столбца.


-- добавление
ALTER TABLE tblname ADD COLUMN num1 integer; 

-- удаление
ALTER TABLE tblname DROP COLUMN num1; 

первичный ключ

Ниже приведен пример добавления и удаления первичного ключа таблицы. MySQL не поддерживает стандартного необязательного параметра CASCADE, определяющего поведение при удалении ограничения.


-- добавление
ALTER TABLE tblname 
    ADD CONSTRAINT pk_tblname PRIMARY KEY (id);  
-- удаление
ALTER TABLE tblname 
    DROP PRIMARY KEY; 

-- с удалением всех записей в других таблицах,
-- ссылающихся на этот ключ
ALTER TABLE tblname DROP PRIMARY KEY CASCADE;

уникальный ключ


-- добавление
ALTER TABLE tblname 
    ADD CONSTRAINT uk_tblname2 UNIQUE (birth) 

--удаление
ALTER TABLE tblname DROP CONSTRAINT uk_tblname2;

-- удаление для MySQL
ALTER TABLE tblname DROP KEY uk_tblname2; 

внешний ключ

MySQL автоматически создает одноименный индекс для внешнего ключа, но при удалении ключа индекс не удаляет.


-- добавление 
ALTER TABLE tblname  
  ADD CONSTRAINT fk_tblname2 FOREIGN KEY(num1)
  REFERENCES tb (id); 

-- удаление 
ALTER TABLE tblname DROP CONSTRAINT fk_tblname2; 

-- удаление для MySQL
ALTER TABLE tblname DROP FOREIGN KEY fk_tblname2;
ALTER TABLE tblname DROP INDEX fk_tblname2;
Ниже приведен пример добавление удаление ограничения на значение. 
ALTER TABLE tblname -- добавление
   ADD CONSTRAINT chk_tblname1 CHECK (num>10);

-- удаление, не для MySQL
ALTER TABLE tblname 
   DROP CONSTRAINT chk_tblname1; 
Для уничтожения таблицы служит команда DROP TABLE. 
-- если уверены в уничтожении таблицы
DROP TABLE tblname; 

безошибочное удаление таблиц

В выше приведенном примере, если уничтожаемая таблица не существует, то появится сообщение об ошибке. Некоторые СУБД поддерживают расширенный синтаксис, позволяющий избежать данную ошибку. Обычно это используется в скриптах, где перед созданием новой таблицы на всякий случай уничтожают таблицу с таким же именем.


-- если таблица есть, она уничтожится,
-- иначе ничего не произойдет
DROP TABLE IF EXISTS tblname;

Рейтинг@Mail.ru