Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сведения о языке SQL.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
159.14 Кб
Скачать

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

http://darkraha.com/rus/sql/index.php

http://www.w3schools.com/sql/default.asp

SQL Задачи и решения Учебник. Сергей Моисеенко.

Интерактивный учебник по SQL

Введение 3

DDL (Data Definition Language) 3

DML (Data Manipulation Language) 3

прочие команды 4

Структура базы данных 4

ключи, ограничения 4

индексы 5

представления 5

процедуры и функции 5

триггеры 5

схема 6

пользователи и сессии 6

Инструментарий 6

скачать СУБД 6

инсталляция 6

выполнение запросов 7

использование примеров 7

Комментарий 7

Идентификаторы 8

Обзор типов данных 8

Интервал времени 9

Oracle 9

PostgreSQL 9

MySQL 10

Литералы 11

Выражения и операции 11

строковые операции 11

алгебраические операции 11

операции отношения 12

логические операции и предикаты 12

условные выражения 12

прочие операции 13

Обзор функций 13

математические функции 13

строковые функции 14

работа с датами 14

Преобразование типов 15

функции Oracle 16

функции PostgreSQL 17

функции MySQL 17

Создание таблицы 18

значения полей по умолчанию 18

ключи и ограничения 18

настройка внешнего ключа 19

создание по выборке 19

дополнительные параметры таблицы 20

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

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

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

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

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

внешний ключ 21

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

Добавление записей 21

значения по умолчанию 22

подзапросы 22

вставка по условию 22

Обновление записей 23

обновление подзапросом 23

обновление по данным другой таблицы 23

Удаление записей 24

Выборка записей 24

выборка констант 25

выборка по столбцам таблиц 25

синонимы (алиасы) 26

уникальные записи 26

выборка по условию 27

выборка по группам 27

Соединения 27

Агрегатные функции, группировка данных 29

Операции над выборками 30

Добавление итогов 31

Нумерация записей 32

Oracle 32

MySQL 33

PostgreSQL 33

Обеспечение уникальности первичного ключа 33

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

Индексы 35

Представления 35

Динамический SQL (DSQL) 36

Процедурные операторы 36

блоковая структура кода 36

присвоение 37

условный оператор 37

оператор выбора 37

метки 38

безусловный цикл 38

цикл с предусловием 38

цикл по счетчику 39

цикл по элементам 39

операторы выхода/продолжения итерации 39

Выборка в переменные 40

Хранимые процедуры 40

Oracle 41

PostgreSQL 41

MySQL 42

вызов процедур 42

Исключения 42

Oracle 42

PostgreSQL 43

MySQL 43

Курсоры 44

Oracle 44

PostgreSQL 44

MySQL 45

Триггеры 46

Oracle 46

PostgreSQL 47

MySQL 47

Числа прописью 48

Транзакции, конкурирующие запросы 50

Схема 52

PostgreSQL 52

Oracle 53

MySQL 53

Управление аккаунтами 53

пользователи 53

права доступа 54

права доступа MySQL 54

права доступа PostgreSQL 55

права доступа Oracle 56

удаление прав доступа 56

роли 56

роли PostgreSQL 56

роли Oracle 57

роли MySQL 57

Файловый вывод/ввод 58

Oracle 58

MySQL 58

PostgreSQL 59

Информация о базе данных 59

Введение

SQL (Structured Query Language) - язык, разработанный специально для обслуживания реляционных баз данных. Главная цель SQL предоставить интерфейс с базой данных, поэтому он может использоваться всеми видами пользователей:

  • разработчики приложений;

  • администраторы базы данных;

  • простые конечные пользователи (редко).

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

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

DDL (Data Definition Language)

Команды этой группы управляют структурой базы данных:

  • создавать, изменять и уничтожать БД и ее объекты (CREATEALTERDROP);

  • переименовать объекты (RENAME);

  • стереть все данные в объектах без удаления объектной структуры (TRUNCATE);

  • добавлять комментарий к объектам БД. (COMMENT).

DML (Data Manipulation Language)

Команды этой группы позволяют запрашивать и обрабатывать данные в существующих объектах:

  • получить данные из одной и более таблиц (SELECT);

  • добавлять новые записи в таблицу (INSERT);

  • изменять данные в таблицах (UPDATE);

  • изменять или вставлять данные (MERGE);

  • удалять данные (DELETE).

Команды управления транзакциями позволяют управлять изменениями, сделанные DML командами, другими словами подтвердить или отменить изменение:

  • применить изменения, т.е. совершить транзакцию (COMMIT);

  • отменить последние изменения, т.е. сделать откат базы данных с точки сохранения (ROLLBACK);

  • сохранить текущее состояние базы данных (SAVEPOINT).

Прочие команды

Остальные команды, например управляющие привилегиями (GRANTREVOKE), можно отнести к административным командам.

Структура базы данных

Большинство современных баз данных (хранилища) являются объектно-реляционными, т.е. множеством объектов, как двухмерные таблицы данных, связанных между собой. Комплекс программ управляющих объектами БД и обеспечивающих ее целостность обычно называют системой управления базой данных, или сокращенно СУБД. Как правило, конечный пользователь БД работает не с СУБД, а со специально разработанными программами с дружественным интерфейсом, скрывающих структуру БД и SQL запросы. Сравнивая с объектно-ориентированным программированием, можно сказать, что каждая таблица задает тип объекта данных, где столбец - свойство объекта. А каждая строка представляет непосредственно экземпляр объекта.

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

Ключи, ограничения

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

  • первичный ключ (primary key) - множество столбцов, по которым можно уникально идентифицировать запись в таблице. Поля таких столбцов обязательно должны иметь значение и не повторяться. В нашем примере столбец id во всех таблицах может использоваться для первичного ключа;

  • уникальный ключ (unical key) - множество столбцов, чье общее значение должно быть уникально. Например, если в уникальный ключ входит два столбца, то две записи могут иметь одинаковое значение в первом столбце только в том случае, если значения во втором столбце у них различны;

  • внешний ключ (foreign key) - определяет ссылку на запись в другой таблице. Значения полей столбца входящего во внешней ключ одной таблицы идентичны значениям полей столбца другой таблицы (обычно это первичный ключ), на которую ссылается ключ. Пустое значение (null) для внешних ключей разрешается, что означает отсутствие ссылки на данный момент. Использование внешних ключей устраняет избыточность информации в базе данных, позволяя не вводить одни и те же данные несколько раз. В нашем примере столбцы fk_author и fk_janr являются внешними ключами, ссылающиеся на первичные ключи таблиц авторов и жанров соответственно. Таблицы без внешних ключей, как таблицы жанров и авторов называют словарями или справочниками.

Кроме ключей обычно позволяется наложить ограничения (constraints) на значения столбцов таблицы. За правильностью обычно следит СУБД. Например, если попытаться вставить в таблицу две записи с одинаковым значением первичного ключа, то сразу возникнет ошибка. То же самое произойдет, если в качестве значения внешнего ключа указать ссылку на не существующую запись или значение поля не удовлетворяет условию ограничения.