Алтай
SQL важные команды.
SQL может выполнять различные задачи, такие как создание таблицы, добавление данных в таблицы, удаление таблицы, изменение таблицы, установка разрешений для пользователей. Типы команд SQL Существует пять типов команд SQL: DDL, DML, DCL, TCL и DQL. 1. Язык определения данных (DDL) DDL изменяет структуру таблицы, например создает таблицу, удаляет таблицу, изменяет таблицу и т. д. Все команды DDL фиксируются автоматически, что означает постоянное сохранение всех изменений в базе данных. Вот некоторые команды, которые относятся к DDL: a...
ALTER TABLE в СУБД SoQoL: ht.me/...117 Посмотрим подробнее, на что способна команда ALTER TABLE в СУБД SoQoL: - установка или удаление ограничения таблицы; - переименование столбца или таблицы; - удаление столбца с удалением всех ссылочных ограничений целостности. Такой набор возможностей ALTER TABLE реализован во многих СУБД. Но есть ещё одна возможность, с помощью которой можно изменить характеристики существующего столбца. В разных СУБД эта возможность обозначается разными ключевыми словами, но суть одна. Мы решили что эта возможность нужна и пользователям SoQoL, и добавили по примеру Oracle: ALTER TABLE <имя_таблицы> MODIFY <имя_столбца> <характеристики>; Давайте кратко на примерах посмотрим возможности ALTER TABLE в SoQoL: Допустим, ранее мы создавали таблицу: create table WORKERS ( TN int primary key, DEPT varchar (100), UNIT varchar (50), CITY varchar (85), NAME varchar (35), SALARY number (10, 2)); Всем сотрудникам решили установить премию в определённом размере, а для её учёта нужен отдельный столбец: alter table WORKERS add (BONUS number (10, 2) not null); А еще поняли, что размер типа данных для имени маловат, нужно увеличить: alter table WORKERS MODIFY (NAME varchar (125)); И здесь важно: если бы новый размер типа был меньше текущего размера данных, то была бы возвращена ошибка. Теперь предположим, что данные с детализацией по сотрудникам были вынесены в отдельную таблицу PERSON_DETAILS, поэтому из таблицы WORKERS часть столбцов можно удалить: alter table WORKERS drop (DEPT, UNIT , CITY); А затем еще и свяжем эти таблицы между собой ограничением: alter table WORKERS add constraint PERSONAL foreign key (TN) references PERSON_DETAILS (TN); Вот такая небольшая экскурсия по жизненному пути маленькой базы данных. Если говорить в целом про ALTER и для других объектов базы данных, то в планах реализация команды ALTER INDEX, которая позволяет: - изменить имя индекса и его тип; - установить или удалить компрессию индекса; - изменить метод выравнивания индекса; - пересоздать индекс и т.д. В настоящий момент мы остановились на реализации ALTER INDEX для возможности изменения его имени. Почему только имени? После совместного обсуждения приняли решение, что такая реализация на текущий момент наиболее приоритетна. Реализация более сложного синтаксиса команды CREATE INDEX (с возможностью указания других характеристик индекса как, например, в Oracle или Postgres) пока рассматривается. И если про ALTER TABLE более-менее всё понятно, то что скажете про индексы? Как часто пользуетесь командами изменения индекса и в каком их варианте?