Главная страница

Лекции SQL. Лекции по sql учебное пособие для студентов


Скачать 0.84 Mb.
НазваниеЛекции по sql учебное пособие для студентов
АнкорЛекции SQL
Дата16.10.2019
Размер0.84 Mb.
Формат файлаpdf
Имя файлаLekcii_po_SQL_CHupinNA.pdf
ТипЛекции
#90508
страница1 из 6
  1   2   3   4   5   6

Новосибирский государственный педагогический университет
Чупин Н.А.
Лекции по SQL
Учебное пособие для студентов
Новосибирск - 2013
[Выберите дату]

— 2 —
ББК 74.263.2
Ч 92
Печатается по решению …
Научный редактор:
Рецензенты:
Ч 92 Чупин, Н.А.
Лекции по SQL [Текст] : учебное пособие / Н.А. Чупин;
Новосибирский гос.пед.университет.

Новосибирск: ФГБОУ ВПО
НГПУ, 2013.

60 с. – ___ экз.
Краткий курс по языку SQL.
Для студентов, обучающихся по дисциплине «Информационные системы».
© Чупин Н.А., 2013.

— 3 —
Краткое содержание
Введение ........................................................................................................................... 6
1. Запросы на выборку данных из таблиц .......................................................... 13
2. Агрегатные функции .............................................................................................. 24
3. Запросы к нескольким таблицам ....................................................................... 30
4. Использование вложенных запросов............................................................... 33
5. Команды DML. Добавление записей, удаление и редактирование. ...... 36
6. Команды DDL. Определение структуры БД .................................................... 39
7. Определение прав доступа к данным .............................................................. 52
8. Некоторые особенности SQL в Interbase ......................................................... 53
Сокращения ................................................................................................................... 59
Термины.......................................................................................................................... 59
Литература ..................................................................................................................... 60
Подробное содержание
Введение ........................................................................................................................... 6
О языке SQL ................................................................................................................... 6
Обозначения ................................................................................................................. 9
Некоторые общие замечания по синтаксису SQL ........................................... 10
Основной пример....................................................................................................... 10
1. Запросы на выборку данных из таблиц .......................................................... 13
1.1. Простейший вариант запроса...................................................................... 13
1.2. Условия отбора записей WHERE ................................................................... 15
1.3. Логические связки AND OR NOT в WHERE .................................................... 16
1.4. Оператор IN в WHERE ...................................................................................... 17
1.5. Оператор BETWEEN в WHERE ......................................................................... 18
1.6. Оператор LIKE в WHERE .................................................................................. 18
1.7. Значение NULL в WHERE .................................................................................. 19
1.8. Оператор DISTINCT в SELECT ......................................................................... 20
1.9. Переименование полей .................................................................................... 21
1.10. Выражения в SELECT ...................................................................................... 21

— 4 —
1.11.Упорядочение выходных данных. ORDER BY. ........................................... 22
1.12. Итоги по первой главе. ................................................................................ 23
2. Агрегатные функции .............................................................................................. 24
2.1. Использование агрегатных функций. ........................................................ 24
2.2. Название поля агрегатной функции........................................................... 25
2.3. Использование * в COUNT. .............................................................................. 25
2.4. Использование DISTINCT в агрегатных функциях. .................................. 26
2.5. Использование выражений в агрегатных функциях. ............................. 26
2.6. Предложение GROUP BY ................................................................................... 27
2.7. Использование WHERE в запросах с агрегатными функциями ............ 28
2.8. Предложение HAVING ....................................................................................... 29
3. Запросы к нескольким таблицам ....................................................................... 30
3.1. Эквисоединения ................................................................................................. 30
3.2. Соединение таблицы со своей копией........................................................ 31
3.3. JOIN-соединения ................................................................................................ 31
3.4. Объединение запросов. Команда UNION. ................................................... 33
4. Использование вложенных запросов............................................................... 33
4.1.Как выполняются подзапросы....................................................................... 33
4.2. Использование агрегатных функций в подзапросах. ............................. 35
4.3. Оператор EXISTS. .............................................................................................. 35
5. Команды DML. Добавление записей, удаление и редактирование. ...... 36
5.1. Добавление записей. Команда INSERT. ....................................................... 36
5.2. Добавление множества записей. Вставка результатов запроса. .... 37
5.3. Удаление записей. Команда DELETE. ........................................................... 37
5.4. Редактирование записей. Команда UPDATE. ............................................ 38
6. Команды DDL. Определение структуры БД .................................................... 39
6.1. Создание базы данных .................................................................................... 39
6.2.Типы данных ....................................................................................................... 41
6.3. Простые варианты команд создания таблиц и изменения их
структуры ................................................................................................................. 42

— 5 —
6.4. Добавление ограничений на таблицу ........................................................ 43
6.5. Определение домена ........................................................................................ 44
6.6. Изменение структуры домена ..................................................................... 46
6.7. Создание таблиц .............................................................................................. 47
6.8. Изменение структуры таблицы ................................................................. 51
7. Определение прав доступа к данным .............................................................. 52
8. Некоторые особенности SQL в Interbase ......................................................... 53
8.9. Генераторы ........................................................................................................ 54
8.10. Хранимые процедуры .................................................................................... 55
8.11. Триггеры ........................................................................................................... 57
Сокращения ................................................................................................................... 59
Термины.......................................................................................................................... 59
Литература ..................................................................................................................... 60

— 6 —
Введение
О языке SQL
Важнейшей функцией автоматизированной информационной системы является предоставление пользователю средств для ввода, обработки и выдачи данных.
На раннем этапе развития систем управления базами данных(СУБД) в условиях низких технических характеристик ЭВМ основное внимание разработчиков СУБД было направлено на проблемы размещения информации в базе и обмена данными между дисковой памятью и оперативной памятью, поскольку это в первую очередь определяло эффективность функционирования СУБД. При этом функции ввода, обработки и выдачи данных в каждой СУБД реализовались по-своему. Это приводило к тому, что для каждой конкретной СУБД требовались квалифицированные программисты, знающие особенности ее структуры и способа размещения данных, которые разрабатывали программу-интерфейс пользователя на специфичном языке данной СУБД.
Такой квалифицированный программист выступал посредником между информационными потребностями пользователя и базой данных.
Необходимость в таком специалисте как обязательном элементе информационной системы приводило к дополнительным затратам при создании и эксплуатации баз данных, снижало эффект от внедрения автоматизированных информационных систем и сдерживало их распространение в процессах информационного обеспечения деятельности предприятий и организаций.
Язык SQL (Structured Query Language, структурированный язык запросов) был создан в 1974г. на основании теоретических идей Кодда. Благодаря удачной концептуальной основе быстро стал стандартным языком, используемым в реляционных СУБД. В 1986г. был признан Американским национальным институтом стандартов (ANSI) и Международной организацией по стандартам
БД пользовател ь информационные потребности программист разработка и запуск программы обработки

— 7 —
(ISO) в качестве стандартного языка описания и обработки данных в реляционных базах данных.
Первоначально SQL задумывался как язык общения (взаимодействия)
пользователя (непрограммиста) с базами данных. Идея такого языка сводилась к набору из нескольких фраз-примитивов английского языка
(«выбрать»,
«обновить»,
«вставить»,
«удалить»), через которые пользователь-непрограммист ставил бы «вопросы» к СУБД, реализуя свои информационные потребности. В этом случае дополнительной функцией
СУБД должна быть интерпретация этих «вопросов» на низкоуровневый язык машинных кодов для непосредственной обработки данных и предоставление результатов пользователю. Так родилась идея понятие «машины данных», то есть такой части СУБД, которая разделяет собственно данные и задачи по их обработке.
В качестве альтернативы языку SQL некоторое время выступал еще один реляционный язык QBE (Query By Example, язык запросов по образцу). В дальнейшем он уступил первенство языку SQL, но на его основе были впоследствии построены многочисленные визуальные конструкторы запросов к БД. Большинство из этих визуальных конструкторов ныне предполагают возможность в любой момент получить текст SQL на основе визуального конструирования, и, наоборот, по тексту SQL получить визуальный вид запроса.
Пример. СУБД Microsoft Access. Один и тот же запрос в режиме конструктора запросов по образцу и (ниже) в режиме SQL.

— 8 —
Следует заметить, что первоначальная идея создать язык, на котором пользователи-непрограммисты стали бы обращаться к СУБД, не удалась.
Дело в том, что, начиная примерно с 1990 года, с внедрением графических операционных систем требования к квалификации пользователя резко понизились, и поэтому даже такой упрощенный язык рядовые пользователи осваивать не стали. Вместо него разработчики стали предлагать визуальные конструкторы запросов. Однако главная роль языка SQL состоит сегодня в том, что он позволяет отделить низкоуровневые функции по организации
структуры и обработке данных от высокоуровневых функций, позволяя
при эксплуатации банков данных сосредоточиться на смысловом, а не
техническом аспекте работы с данными.
Удачная идея универсального промежуточного языка для всех СУБД дала дополнительный импульс широкому внедрению СУБД и особенно реляционных СУБД, на долгие годы закрепив их лидирующие позиции по сравнению с другими СУБД.
Язык SQL включает в себя три раздела: DDL (Data Definition Language, язык определения данных), DML (Data Manipulation Language, язык манипуляции данными) и собственно язык запросов. Впрочем, иногда еще отдельно выделяют язык безопасности данных, то есть те команды DDL, которые позволяют разграничить права отдельных пользователей и групп пользователей в доступе к объектам БД.
Язык SQL относится к декларативным языкам программирования. Для понимания этого следует вспомнить, что в процедурных языках (С, Паскаль,
Бейсик) программа есть запись последовательности команд, описывающая,
БД пользовател ь информационные потребности интерпретация на язык машинных кодов, запуск программы обработки машина данных яз ы
к
SQL

— 9 — как из исходных данных получить нужный результат. В отличие от этого, инструкции SQL указывают, «что нужно получить», но не «как это сделать».
Как раз «машина данных» по инструкции SQL производит машинный код, выполнение которого обеспечит результат, задаваемый SQL-инструкцией.
Мы в настоящем пособии приводим некоторый урезанный вариант SQL, не упоминая все второстепенные детали, имеющиеся в SQL. При этом мы ориентируемся на тот диалект, который используется в СУБД InterBase.
Выбор данной СУБД обусловлен несколькими причинами: 1) наличие бесплатного аналога СУБД – СУБД FireBird разрабатывается группой программистов, работа которых оплачивается из благотворительного фонда и является бесплатной для всех пользователей; 2) наличие отличной инструментальной программы для работы с данной СУБД – программа
IBExpert разработана российскими программистами и бесплатна для граждан
РФ; 3) СУБД Interbase является собственностью Borland и поэтому отлично интегрирована в среду программирования Delphi; 4) СУБД InterBase является, можно сказать, классической реляционной СУБД – в ней есть практически все, что «положено» иметь реляционным СУБД, и, в то же время, нет «ничего лишнего», что делает ее удобным примером для преподавания различных аспектов теории реляционных БД.
Обозначения
В тексте мы выделяем следующие фрагменты:
?
обозначает проблему, которую следует решить
!
обозначает, как эта проблема решается

обозначает подробности определений, пояснения, а также дополнительные замечания, особые случаи и т.п.
При объяснении синтаксиса команд SQL мы будем использовать традиционные для информатики соглашения. Квадратные скобки [ ] указывают, что этот элемент может и отсутствовать. Фигурные скобки { } указывают, что следует выбрать один вариант из тех, которые перечислены в этих скобках, при этом возможные варианты разделены вертикальной чертой |. Многоточие … означает возможность многократного повторения описанных элементов. Угловые скобки <> указывают, что в этой позиции должна быть вписана синтаксически правильная конструкция, смысл которой расшифровывается далее по тексту.

— 10 —
Некоторые общие замечания по синтаксису
SQL
SQL использует типичные для многих языков программирования правила – имена должны записываться латинскими буквами, цифрами и символом подчеркивания, причем на первой позиции не допускается цифра. Впрочем, некоторые СУБД допускают отступления от этих правил, например, в СУБД
Microsoft Access разрешаются и русские имена полей.
Стандартный SQL не различает заглавные и строчные буквы. Поэтому мы используем регистры символов в методических целях - в командах для лучшего понимания служебные слова SQL написаны заглавными буквами, а то, что определяется текущей ситуацией (имена таблиц, полей и т.п.), записано строчными буквами.
Стандартный SQL никак не использует, то есть игнорирует переходы на новую строку, а также избыточные пробелы. Иначе говоря, команду SQL можно записывать в одну строку или в несколько строк – результат будет один и тот же. Поэтому разбиение на строки мы будем выполнять из соображений обеспечения лучшей читаемости или (реже) из соображений экономии строк.
Заметим также, что многие СУБД (либо инструментальные программы для работы с СУБД) в командах SQL при работе с текстовыми данными допускают использование как и одинарных апострофов ‘ ‘ (по стандарту SQL), так и двойных кавычек “ “.
В некоторых книгах команды SQL заканчиваются символом ; <точка с запятой>. Однако на самом деле этот символ необходим только, если вы взаимодействуете с СУБД с помощью такой инструментальной программы, которая позволяет выполнить сразу несколько последовательных команд
SQL. Такие тексты называются «скриптами на языке SQL», а инструментальные программы (или один из инструментов в «большой» программе для работы с СУБД), позволяющие их записывать и выполнять –
«редакторами скриптов». При выполнении одиночной команды символ
<точка с запятой> в конце команды необязателен.
Основной пример
Для описания большинства примеров мы будем использовать базу данных из двух таблиц - Fakultety и Spisok.
  1   2   3   4   5   6


написать администратору сайта