
- •1 Введение 2
- •2 Выборка информации из базы данных 3
- •3 Команды модификации таблиц 15
- •4 Создание таблиц 17
- •1Введение
- •2Выборка информации из базы данных
- •2.1Базовый синтаксис оператора select
- •2.7Поиск по подстрокам (like)
- •2.8Сортировка данных и другие методы выбора. Группировка данных
- •2.8.1Полный синтаксис оператора select
- •2.8.2Упорядочивание результатов
- •2.8.3Устранение повторяющихся строк
- •2.8.4Агрегирующие функции
- •2.8.5Группировка данных
- •2.9Соединение таблиц и сложный анализ данных
- •2.9.1Соединение
- •2.9.2Внешнее соединение
- •2.9.3Операции над множествами (объединение, пересечение, разность)
- •2.10Структурированные запросы и подзапросы
- •2.10.1Подзапросы в предложении where
- •2.10.1.1Подзапросы, не возвращающие значений или возвращающие несколько значений
- •2.10.1.2Подзапросы, возвращающие единственное значение
- •2.10.1.3Подзапросы, выполняющие проверку на существование
- •2.10.2Подзапросы в предложении from
- •2.10.3Подзапросы в предложении select
- •3.1.3Ввод, удаление, и изменение значений полей
- •3.2Удаление строк из таблиц
- •3.3Изменение значений поля
- •3.4Использование подзапросов с командами модификации
- •4Создание таблиц
- •4.1Команда создания таблицы
- •4.2Создание индекса
- •4.3Удаление индексов
- •4.4 Изменение таблицы после создания
- •4.5Удаление таблиц
- •4.6Ограничение значений данных
- •4.6.1Ограничение таблиц
- •4.6.2Объявление ограничений
- •4.6.2.1Уникальность как ограничение столбца
- •4.6.2.2Уникальность как ограничение таблицы
- •4.6.2.3Ограничение первичных ключей
- •4.6.2.4Проверка значений полей
- •4.6.2.5Установка значений по умолчанию
2.7Поиск по подстрокам (like)
Если при поиске данных известен только образец, где-то встречающийся в столбце, и с его помощью нужно извлечь всю или часть соответствующей ему строки, то используется ключевое слово LIKE.
<имя столбца> [NOT] LIKE <образец> [ESCAPE <ключевой символ>]
Образец должен заключаться в кавычки и может содержать один или несколько символов подстановки – символов, замещающих в образце пропущенные буквы или строки.
Стандарт SQL предусматривает использование двух символов подстановки вместе с ключевым словом LIKE:
% – любая строка с любым количеством символов;
_ – любой одиночный символ.
Ключевое слово ESCAPE используется в том случае, если в образце содержится один из символов подстановки, но его нужно рассматривать как простой литерал.
note LIKE ‘q%%q%’ ESCAPE ‘q’
Символ q – обозначен как управляющий. Поэтому пара символов ‘q%’ трактуется как единственный литеральный символ %. С указанным образцом будут совпадать любые строки поля note, в начале и в конце которых располагается символ %.
2.8Сортировка данных и другие методы выбора. Группировка данных
2.8.1Полный синтаксис оператора select
SELECT [ALL| DISTINCT] <список выбора>
FROM <имя таблицы/имя представления>
[WHERE <условия>]
[GROUP BY <список группировки> ]
[HAVING <условия> ]
[ORDER BY <список сортировки>]
2.8.2Упорядочивание результатов
Порядок сортировки может определяться значениями нескольких атрибутов: вначале кортежи упорядочиваются по значениям компонентов первого атрибута; кортежи, совпадающие в компонентах первого атрибута, упорядочиваются по значениям второго атрибута и т.д.
Сортировка допускается по позиции выражения в списке SELECT, позиция представлена числом и по заголовку вывода выражения.
ORDER BY <атрибут1> [ASC|DESC][,<атрибут2>[ASC|DESC][,…[,<атрибутN> [ASC|DESC]]]]
По умолчанию значения каждого атрибута, упомянутого в списке, сортируется по возрастанию –ASC. Чтобы изменить порядок сортировки на обратный, следует указать после имени атрибута служебное слово DESC.
В стандарте SQL-92 определено, что при сортировке неопределенных значений последние должны быть либо больше, либо меньше всех «обычных» значений. Порядок сортировки зависит от диалекта SQL.
2.8.3Устранение повторяющихся строк
Ключевое слово DISTINCT вводят для устранения повторяющихся кортежей.
Ключевое слово ALL возвращает все кортежи, удовлетворяющие условиям запроса (этот режим используется по умолчанию).
Предложение DISTINCT подчиняется следующим правилам:
в списке SELECT указывается только один раз;
в списке SELECT должно располагаться на первом месте;
после предложения запятая не ставится.
Нельзя в одном запросе вывести ВСЕХ сотрудников и НЕПОВТОРЯЮЩИЕСЯ лаборатории.
2.8.4Агрегирующие функции
Агрегирующие (обобщающие) функции всегда имеют аргумент.
Агрегирующая функция |
Результат |
SUM ([DISTINCT] выражение) |
Сумма (различных) значений |
AVG ([DISTINCT] выражение) |
Средняя величина (различных) значений |
COUNT ([DISTINCT] выражение) |
Количество (различных) ненулевых значений |
COUNT(*) |
Количество выбранных строк |
MAX(выражение) |
Максимальное значение |
MIN(выражение) |
Минимальное значение |
Функции SUM, AVG можно применять только к числовым полям. Функции MIN, MAX, COUNT, COUNT(*) работают со всеми типами данных. Например, MIN для поиска в символьном столбце самого первого значения в алфавитном порядке.
Агрегирующие функции используют в <списке выбора> и в <условиях> предложения HAVING. Предложение WHERE используется в запросах с агрегирующими функциями для ограничения числа строк. Т.е. сначала выполняется предложение WHERE, затем к выбранным строкам применяются агрегирующие функции.
Если в столбце к которому применяется агрегирующая функция имеются NULL-значения, то они просто игнорируются. Исключением является функция COUNT(*), которая всегда подсчитывает общее количество строк.