
- •Язык запросов sql
- •Введение в sql(0-0)
- •Аннотация к лекции
- •Краткая история развития sql
- •Возможности языка
- •Основы sql
- •Типы данных sql
- •Литералы
- •Операторы и выражения
- •Именование объектов
- •Комментарии
- •Итоги лекции
- •Простейшие запросы (0-0)
- •Аннотация к лекции
- •О предложении select
- •Основные фразы – select и from
- •Фраза select
- •Синтаксис фразы select
- •Указание выводимых столбцов
- •Исключение повторяющихся строк
- •Использование вычисляемых выражений
- •Переопределение имен результирующих столбцов
- •Включение литералов в результат запроса
- •Вывод результатов в файл
- •Фраза from
- •Синтаксис фразы from
- •Синонимы таблиц
- •Запрос в качестве имени таблицы
- •Итоги лекции
- •Отбор строк по условию (0-0)
- •Аннотация к лекции
- •Простейшие условия
- •Операторы сравнения
- •Логические операторы
- •Использование выражений над столбцами
- •Специальные операторы
- •Проверка на принадлежность множеству
- •Проверка на принадлежность диапазону значений
- •Проверка на соответствие шаблону
- •Проверка на неопределенное значение
- •Итоги лекции
- •Многотабличные запросы (0-0)
- •Аннотация к лекции
- •Декартово произведение таблиц
- •Условие соединения
- •Соединение таблиц по равенству
- •Соединение таблиц по неравенству
- •Самосоединение таблицы
- •Внешнее соединение таблиц
- •Соединение с использованием фразы from
- •Итоги лекции
- •Использование функций (0)
- •Аннотация к лекции
- •Агрегатные функции
- •Однострочныефункции
- •Строковые функции
- •Числовые функции
- •Временные функции
- •Функции преобразования
- •Итогилекции(урока)
- •Группировка и сортировка (0)
- •Аннотация к лекции
- •Запросы с группировкой строк
- •Понятие группировки строк
- •Группировка по одному столбцу
- •Группировка по нескольким столбцам
- •Использование выражений
- •Условиеотборагрупп
- •Сортировка строк
- •Сортировка по столбцу или выражению
- •Сортировка по нескольким столбцам или выражениям
- •Итоги лекции
- •Множественные операции над таблицами (0-0)
- •Аннотация к лекции
- •Множественные операции в стандарте sql
- •Объединение таблиц
- •Пересечение таблиц
- •Разность таблиц
- •Дополнительные аспекты использования множественных операций
- •Множественные операции и группировка
- •Множественные операции и сортировка
- •Итоги лекции
- •Определение таблиц и представлений (0-0)
- •Аннотация к лекции
- •Создание таблицы
- •Изменениетаблицы
- •Возможности изменения таблиц
- •Добавление столбца
- •Изменение определения столбца
- •Удаление столбца
- •Переименование таблицы
- •Удаление таблицы
- •Определение индексов
- •Представления
- •Итоги лекции
- •Манипулирование данными (0-0)
- •Аннотация к лекции
- •Добавление новых строк
- •Варианты добавления строк
- •Вставка отдельных строк
- •Использование запроса при вставке строк
- •Вставка значений по умолчанию
- •Обновление существующих данных
- •Удаление существующих строк
- •Импорт и экспорт данных
- •Итоги лекции
- •Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)
- •Аннотация к лекции
- •Виды ограничений целостности
- •Ограничение на отсутствие значения
- •Ограничениеуникальности
- •Ограничение первичного ключа
- •Ограничение ссылочной целостности
- •Изменение ограничений целостности
- •Итоги лекции
- •Программирование бд (19)
Основные фразы – select и from
В данном разделе мы рассмотрим самые простые возможности языка запросов, обеспечивающие выборку данных из одной таблицы без условия отбора и упорядочения результатов. Для этого используются фразы SELECT и FROM, которые обязательны для всех запросов(все остальные фразы предложения SELECT – необязательные). Обратите внимание, что по отношению к ключевому слову SELECT мы употребляем термины и предложение, и фраза. Дело в том, что предложение, с помощью которого формулируется запрос, состоит из множества фраз, и первая из них — SELECT. В связи с этим и все предложение было названо SELECT.
Фраза FROM указывает, из какой таблицы следует выбрать данные, а фраза SELECT – какие именно столбцы из указанной таблицы должны быть выбраны. Следующий запрос приводит к выводу названий факультетов:
SELECT Name
FROM FACULTY;
Фраза FROM должна содержать имя хотя бы одной таблицы, а фраза SELECT – указание на вывод хотя бы одного ее столбца.
Фраза select
Синтаксис фразы select
Рассмотрим, как можно воспользоваться фразой SELECT для организации выдачи данных. Эта фраза имеет две синтаксические формы:
SELECT *
и
SELECT [DISTINCT | ALL]
выр_выбора [[AS] алиас][, выр_выбора [[AS] алиас]]...
Далее на примерах покажем все возможные варианты использования этой фразы.
Указание выводимых столбцов
Основное назначение фразы SELECT - указать, какие столбцы исходной таблицы должны быть выведены.
Вывод значений определенных столбцов
Можно вывести определенные столбцы таблицы, для чего следует перечислить во фразе SELECT их имена, разделяя запятой с возможным последующим пробелом. Столбцы выводятся в порядке их указания во фразе SELECT.
Запрос.Вывести из таблицы SGROUP столбцы номера группы, номера курса и количества студентов в группе.
SELECT Num, Year, Quantity
FROM SGROUP;
NUM |
YEAR |
QUANTITY |
505 |
5 |
27 |
504 |
5 |
31 |
307 |
3 |
33 |
408 |
4 |
27 |
201 |
2 |
35 |
Вывод всех столбцов
Также можно вывести все столбцы таблицы. Для этого следует либо все их перечислить во фразе SELECT, либо, если вас устраивает порядок расположения столбцов в исходной таблице, воспользоваться символом *.
Запрос.Вывести все столбцы таблицыDEPARTMENT.
SELECT DepPK, FacFK, Name, Head, Building, Fund
FROM DEPARTMENT;
либо
SELECT *
FROM DEPARTMENT;
DEPPK |
FACFK |
NAME |
HEAD |
BUILDING |
FUND |
1 |
1 |
базы данных |
Соколов |
6 |
26000 |
2 |
1 |
программирование |
Федоров |
б |
12000 |
3 |
1 |
интернет |
Стрельцов |
3 |
10000 |
4 |
2 |
теория языков |
Глущенко |
3 |
10000 |
5 |
2 |
лингвистика |
Коробов |
3 |
14100 |
6 |
2 |
базы данных |
Тараненко |
5 |
27000 |
В случае использования звездочки во фразе SELECTне могут быть указаны никакие имена столбцов.
Уточнение имен
Имена столбцов являются уникальными в пределах одной таблицы, поэтому при использовании в запросе только одной таблицы никаких коллизий имен столбцов быть не может. Однако при вычислении запроса может использоваться несколько таблиц, и если в них имеются столбцы с одинаковыми именами, при обращении к ним возникает неоднозначность. В связи с этим в SQLдействует правило, согласно которому имя любого столбца в любом месте запроса может быть уточнено именем таблицы:
имя_таблицы.имя_столбца
Уточнять имена столбцов можно всегда, даже когда в этом нет необходимости. Так, например, рассмотренный выше запрос может иметь следующий вид:
SELECTSGROUP.Num,SGROUP.Year.SGROUP.Quantity
FROM SGROUP;