SQL

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

SQL (аббр. от Structured Query Language – трансл. Структурированный язык запросов) — универсальный компьютерный мультипарадигмальный статический строготипизированный стандартизированный ЯЗ, применяемый для создания, модификации и управления данными в реляционных БД. Язык запросов к БД.

Преамбула

SQL основывается на исчислении кортежей.

Запросы

Язык описывает запросы к СУБД. Запросом явл. любая правильно построенная конструкция из операторов, функций и т.д.

  • Запрос может быть сколь угодно длинным и включать в себя др. подзапросы, а также комбинироваться с др. запросами - объединение запросов.
  • Запросы могут посылаться к БД как в пакетном режиме, так и в одиночном.

Содержание запросов

Запрос содержит операторы и указатели на сущности БД (базы, табл., столбцы, представления). В конце описания запроса ставится символ ;. Однако, в большинстве реализац. СУБД его можно не ставить, если запрос одиночный - не пакетный. В некотор. реализац. СУБД одиночный запрос должен быть однострочным, т.е. не содержать символов переноса строк. Если же запрос пакетный (и многострочный), ставить ; в конце нужно обязательно, чтобы разделять разн. запросы.

Структура

SQL представл. собой совокупность операторов инструкций и вычисляемых функций.

Операторы

Регистр

Согласно общепринятому стилю программирования, операторы (и др. зарезервир. слова) в SQL следует писать заглавными буквами.

Виды SQL запросов

Шаблон:srh qry Операторы SQL делятся на 4 вида. Выделяют след. виды SQL запросов:

  • DDL (Data Definition Languageязык определения данных). Задачей DDL запросов является создание БД и описание её структуры. Запросами такого вида устанавливаются правила того, в каком виде различные данные будут размещаться в БД. Операторы определения данных (англ. Data Definition Language, DDL):
    • CREATE – создаёт объект БД (базу, табл., представление, пользователя и т.д.)
    • ALTER – изменяет объект БД
    • DROP – удаляет объект
  • DML (Data Manipulation Languageязык манипулирования данными). В число запросов этого типа входят различн. команды, используя котор. непосредственно производятся некотор. манипуляции с данными. DML-запросы нужны для добавления изменений в уже внесенные данные, для получения данных из БД, для их сохранения, для обновления различных записей и для их удаления из БД. В число элементов DML-обращений входит основная часть SQL операторов. Операторы манипуляции данными (англ. Data Manipulation Language, DML):
    • SELECT – получает данные, удовлетворяющие заданным условиям
    • INSERT – добавляет нов. данные
    • UPDATE – изменяет существующ. данные
    • DELETE – удаляет данные
  • DCL (Data Control Languageязык управления данными). Включает в себя запросы и команды, касающиеся разрешений, прав и др. настроек СУБД. Операторы определения доступа к данным (англ. Data Control Language, DCL):
    • GRANT – предоставляет пользователю или группе разрешения на опред. операции с объектом
    • REVOKE – отзывает ранее выданные разрешения
    • DENY – задает запрет, имеющий приоритет над разрешением
  • TCL (Transaction Control Languageязык управления транзакциями). Конструкции такого типа применяют, чтобы управлять изменениями, которые производятся с использованием DML запросов. Конструкции TCL позволяют нам производить объединение DML запросов в наборы транзакций. Операторы управления транзакциями (англ. Transaction Control Language, TCL):
    • COMMIT – применяет транзакцию.
    • ROLLBACK – откатывает все изменения, сделанные в контексте текущей транзакции.
    • SAVEPOINT – делит транзакцию на более мелкие участки.

Математические функции, ветвление, булева алгебра и алгебра логики

В SQL есть встроенные математич. функции и поддержка операторов ветвления, а так же булева алгебра. Напр., есть математич. функции SIN, COS, TANG, CTANG, операторы ветвления IF ELSE, а также «представители» алгебры логики NOT, OR, AND, XOR.

Зарезервированные символы

Помимо операторов, как и во всех др. компьютерн. языках, в SQL также имеются зарезервир. символы.

Комментарии

  • -- (2 минуса) — нативн. каноничн. однострочн. коммент.
    В некотор. реализац. требует обязат. налич. пробела после 2-ух минусов, т.е. получ. 2 минуса и пробел (-- ).
  • // (2 слэша) — однострочн. коммент., как в C-подобн. ЯП.
  • # (октоторп) — однострочн. коммент.
  • /* */ (слэш с астериском открывающие, и астериск со слэшем закрывающие) — нативн. каноничн. многострочн. коммент., как в C-подобн. ЯП.

Другие

  • ; (точка с запятой) — отделение одного запроса от др. Обязательно требуется, когда запрос многострочный. Т.е. кажд. законч. многострочн. запрос должен заканчиваться этим символом. В случ. однострочн. запроса символ ; необязателен, в этом случ. этот символ будет просто «пустым оператором».
  • ' (апостроф) — обрамление текст. данных.
  • () (круглые скобки) — применяются для составления вложенных запросов - подзапросов.

В некотор. реализац. СУБД – напр., MySQL и OpenOffice BD, использ. опред. символы для обрамлен. назв. сущностей БД:

  • ` (обратный апостроф) в вер. СУБД MySQL — обрамление названий сущностей БД (баз, табл., представлений и столбцов).
  • " (кавычка) в вер. СУБД OpenOffice BD — то же самое, что и предыдущ.

См. также

По теме «SQL» см. также сдед.:

Эта статья относится к ЯЗ SQL.