
- •Язык запросов 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)
Именование объектов
В соответствии со стандартом SQL, имена объектов базы данных могут состоять из прописных и строчных букв латинского алфавита, цифр и символа подчеркивания (_), причем первым символом должна быть буква. Если нужно использовать имя, не отвечающее указанным правилам, его следует заключать в двойные кавычки.
Однако многие СУБД расширяют набор допустимых символов, включая в них, например, символы национальных алфавитов.
Комментарии
В текстах на языке SQL можно использовать комментарии, которые предоставляют возможность указывать авторство, приводить объяснения и любую другую полезную информацию. Комментарий может содержать любые печатаемые символы. На выполнение команд SQL комментарии не влияют и могут располагаться между ключевыми словами, параметрами и в любом другом месте, где в соответствии с правилами языка должен быть разделитель.
Имеются два типа комментариев:
многострочныйначинается с символов /*, за которыми следует одна или несколько строк комментария, и завершается символом *;
однострочныйрасполагается в конце строки и начинается с символов -- за которыми следует текст комментария.
Предложение SQL может содержать комментарии обоих типов.
Итоги лекции
На лекции студенты изучили:
краткую историю развития SQL;
основные возможности SQL;
основные синтаксические правила SQL;
понятия ключевое слово, фраза и предложение;
типы данных SQL;
правила написания литералов;
операторы и выражения SQL;
правила именования объектов;
использование комментариев.
Простейшие запросы (0-0)
Аннотация к лекции
В этой лекции мы приступаем к изучению возможностей SQLпо выборке данных из базы. В подавляющем большинстве случаевSQLиспользуют именно для поиска информации в базе, а не для чего-нибудь другого. В этой лекции мы начнем с самых простых возможностей и последовательно переходя к все более сложным конструкциям в следующих лекциях, мы изучим практически все указанные в стандарте SQL средства поиска и выборки данных.
Что мы будем подразумевать под словом «запрос»? Запрос – это команда, которой вы сообщаете СУБД, что она должна найти и показать определенную информацию из базы данных. Эта информация обычно посылается непосредственно на экран компьютера, хотя в большинстве случаев ее можно также послать на принтер, сохранить в файле, представить как исходную информацию для другой команды или процесса или вернуть назад в программу, из которой было инициировано выполнение запроса.
О предложении select
Все запросы в SQL состоят из единственной команды или, как принято говорить в SQL, предложения. Структура этого предложения проста, элегантна, однако оно обладает внушительными возможностями по выборке данных из базы. Это предложение называется SELECT. По отношению к нему мы также будем применять термин «команда», подразумевая, что это предложение выполняет определенные действия. Предложение SELECT может состоять из многих фраз и в упрощенном виде имеет следующий синтаксис:
SELECT {* | [DISTINCT | ALL] список_выражений_выбора}
[INTO список переменных]
FROMсписок_спецификаций_таблиц
[WHEREусловие]
[GROUPBYсписок_выражений_группировки [HAVINGгрупповое_условие]]
[ORDERBYсписок_выражений_упорядочения];
В этой лекции мы рассмотрим фразы SELECTиFROM, в следующей лекции рассмотрим фразуWHERE. ФразыGROUPBY,HAVINGиORDERBYрассмотрим позднее.
В самой простой форме предложение SELECT инструктирует СУБД о необходимости извлечь информацию из таблицы базы данных. Например, можно вывести всю таблицу FACULTY, сформулировав следующий запрос:
SELECT FacPK. Name. Dean. Building. Fund
FROMFACULTY;
Этот запрос содержит следующие компоненты.
SELECT — ключевое слово, сообщающее СУБД, что эта команда является запросом. Все запросы начинаются этим словом. Указанные за ним FacPK, Name, Dean, Building, Fund являются списком столбцов, которые выбираются запросом из таблицы. Любые ее столбцы, не перечисленные здесь, не будут включены в вывод команды. Это не значит, что сами столбцы или их данные будут удалены – запрос не воздействует на информацию в таблицах; он только выводит ее.
FROM – ключевое слово, за которым следует указать имя таблицы, используемой в качестве источника. В данном случае это таблица FACULTY.
Запрос, указанный в примере, не будет упорядочивать выходные данные. Тот же запрос, но выполненный повторно, может вывести те же данные в другом порядке. Строки обычно отбираются в том порядке, в котором они найдены в таблице. Поскольку этот порядок произволен, последовательность выведенных строк необязательно будет соответствовать порядку их ввода. Упорядочивать вывод можно фразой ORDER BY предложения SELECT, и позже мы покажем, как это делать.
В общем случае результатом выполнения предложения SELECT является другая таблица. К этой новой (временной или промежуточной) таблице может быть снова применена команда SELECT и т. д., то есть такие операции могут быть вложены друг в друга. Представляет интерес тот факт, что именно благодаря возможности включения одного предложения SELECT внутрь другого в названии SQL использовали слово «структурированный».