Журнал LinuxFormat - перейти на главную

Азбука SQL

Материал из Linuxformat
Перейти к: навигация, поиск

Язык определения данных

Группа операторов SQL, ответственных за описание и модификацию структуры БД, представляет собой специализированный язык определения данных (Data Definition Language). Язык определения данных включает следующие операторы:

  • CREATE – позволяет создать новую базу данных, таблицу (TABLE), индекс (INDEX), представление (VIEW) или какую-либо другую сущность,
  • DROP – позволяет удалить то, что было создано с помощью CREATE,
  • ALTER – позволяет изменить параметры уже существующего объекта.

Из перечисленных наиболее популярна команда создания таблиц:

  • CREATE TABLE «имя таблицы» («имя столбца 1» «тип данных» [DEFAULT «значение по умолчанию»] [«ограничения на столбец»],[«имя столбца 2» …,][…,] [«ограничения на таблицу»])

Ключевое слово DEFAULT предваряет значение, которое присваивается, если при вставке данных отсутствует инициализация. Ограничения, накладываемые на столбец, могут характеризоваться ключевыми словами:

  • NOT NULL – инициализация при вставке обязательна.
  • UNIQUE – значение должно быть уникальным.
  • PRIMARY KEY – значение объявляется первичным ключом. В таблице может быть ровно один первичный ключ. Значение, объявленное первичным ключом должно быть определенным и уникальным (NOT NULL+UNIQUE)
  • CHECK(«условное выражение») – проверка значения.
  • REFERENCES – ссылка на допустимый диапазон значений, представленных во внешней таблице (внешний ключ FOREIGN KEY).

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

  • DROP TABLE позволяет уничтожить таблицу, созданную CREATE TABLE. Синтаксис команды уничтожения гораздо проще команды созидания. Надо только добавить «имя таблицы». Это очень опасная для данных команда.

Довольно редко, но все же бывает необходимо изменить уже существующую таблицу:

  • ALTER TABLE «имя таблицы» «действие»

В качестве «действия» можно добавить столбец или ограничение (ADD), удалить столбец или ограничение (DROP), изменить параметра столбца (ALTER), а так же «повесить»/«выключить» триггер (ENABLE/DISABLE TRIGGER).

Язык манипулирования данными

Группа операторов SQL, ответственных за добавление, удаление и модификацию данных, представляет из себя специализированный язык манипулирования данными (Data Manipulation Language).

Язык манипулирования данными включает следующие операторы:

  • INSERT – позволяет добавить одну или несколько строк (rows) данных в уже существующую таблицу,
  • UPDATE – позволяет изменить уже существующие данные,
  • DELETE – позволяет удалить одну и более строк данных из таблицы,
  • TRUNCATE – позволяет очистить одну или несколько таблиц от данных (очень опасная команда).

Для вставки данных следует воспользоваться командой:

INSERT INTO «имя таблицы»
[(«список столбцов»)] VALUES («список значений»)

Столбцы и значения в соответствующих списках разделяются запятыми. При отсутствии списка столбцов значения присваиваются в соответствии с порядком именования столбцов при создании таблицы.

В качестве значения команде INSERT можно передать null. Это эквивалентно тому, что соответствующее поле не инициализируется при вставке.

Для модификации данных следует использовать команду:

UPDATE «имя таблицы»
SET «столбец»=«значение» [,…]
[ WHERE «условное выражение» ]

Условные выражения могут объединяться по «и» (AND) или по «или» (OR). Логика в SQL – трехзначная. Кроме ожидаемых значений для условных выражений, таких как «истина» (true) и «ложь» (false), допустимо значение «не определено» (unknown).

Таблица 1: Таблица истинности для оператора OR.
OR TRUE FALSE UNKNOWN
TRUE true true true
FALSE true false unknown
UNKNOWN true unknown unknown
Таблица 2: Таблица истинности для оператора AND.
AND TRUE FALSE UNKNOWN
TRUE true false unknown
FALSE false false false
UNKNOWN unknown false unknown

Для удаления данных используются команды:

DELETE FROM «имя таблицы»
[ WHERE «условное выражение» ]

или

TRUNCATE TABLE «имя таблицы» [, …]

Как это ни печально, но удалять гораздо проще, чем добавлять их. Не следует злоупотреблять этими операторами.

TOra знает все об SQL и кое-что сверх того.»

Персональные инструменты
купить
подписаться
Яндекс.Метрика