- •Занятие 1. Безусловная выборка. Синтаксис запроса.
- •Простая выборка
- •Выборка уникальных значений
- •Задания. Базовый уровень:
- •Повышенный уровень
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
- •Выборка с условием
- •Выборка с использованием оператора between
- •Выборка с использованием оператора in (принадлежит)
- •Выборка с использованием шаблонов
- •Имя поля like строковая константа
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •11. Каким образом получить выборку вычисляемых значений? Занятие 3. Расширенные sql-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка
- •Выборка из связанных таблиц
- •Простое соединение
- •Соединение с дополнительным условием
- •Соединение трех таблиц
- •Использование группировки данных при организации запросов
- •Использование группировки данных совместно с условием
- •Использование having
- •Сортировка
- •Повышенный уровень
- •Занятие 4. Расширенные sql-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы
- •Использование квантора существования в запросах
- •Коррелированные и некоррелированные подзапросы
- •Задания (базовый уровень):
- •Вопросы. Базовый уровень:
- •Повышенный уровень
- •Занятие 5. Расширенные sql-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных
- •Модификация данных в таблицах
- •Удаление данных
- •Добавление записей
- •Insert into таблица [(поле [,поле] ...)] values (константа [,константа]...)
- •Insert into таблица [(поле [,поле] ...)] подзапрос
- •Целостность
- •Занятие 6. Объединение, пересечение и разность отношений. Операторы union, intersect, exept
- •Объединение множеств
- •Занятие 7. Соединение отношений. Виды соединений. Оператор join.
- •Задания (базовый уровень):
- •Задания (повышенный уровень)
- •Занятие 8. Администрирование бд. Привилегии. Представления
- •Предоставление доступа к отдельным таблицам
- •Представления
- •16.3. Поясните разницу между системными и объектными привилегиями.
- •Методические указания
- •355000, Ставрополь, пр. Кулакова, 8
|
МИНОБРНАУКИ РОССИИ |
Филиал федерального государственного бюджетного образовательного учреждения высшего образования «Московский технологический университет» в г. Ставрополе
Филиал МИРЭА в г. Ставрополе
|
Методические указания
к практическим занятиям и самостоятельной работе
по дисциплине
«Проектирование баз данных»
для студентов
направления подготовки:
09.03.03 «Прикладная информатика»
Профиль "Прикладная информатика в экономике"
Квалификация: бакалавр
Ставрополь, 2016
Методические указания, составлены в соответствии Федеральным государственным образовательным стандартом высшего образования для студентов направления: 09.03.03 «Прикладная информатика»
Квалификация: бакалавр
.
Составитель: В.И.Дроздова, д.ф.-м.н., профессор
Рецензент: В.П.Мочалов, д.т.н., профессор
Содержание
Занятие 1. Безусловная выборка. Синтаксис запроса. 4
Занятие 2. Расширенные SQL-запросы. Выборка с условием. Выборка вычисляемых значений 8
Выборка с условием 10
Выборка с использованием оператора BETWEEN 10
Выборка с использованием оператора IN (принадлежит) 11
Выборка с использованием шаблонов 12
11. Каким образом получить выборку вычисляемых значений? 14
Занятие 3. Расширенные SQL-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка 15
Выборка из связанных таблиц 15
Соединение с дополнительным условием 16
Использование группировки данных при организации запросов 17
Сортировка 19
Занятие 4. Расширенные SQL-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы 22
Использование квантора существования в запросах 22
Коррелированные и некоррелированные подзапросы 24
Занятие 5. Расширенные SQL-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных 25
Модификация данных в таблицах 25
Удаление данных 27
Добавление записей 28
Занятие 6. Объединение, пересечение и разность отношений. Операторы UNION, INTERSECT, EXEPT 31
Объединение множеств 31
Занятие 7. Соединение отношений. Виды соединений. Оператор JOIN. 35
Занятие 8. Администрирование БД. Привилегии. Представления 42
Предоставление доступа к отдельным таблицам 43
16.3. Поясните разницу между системными и объектными привилегиями. 46
Занятие 1. Безусловная выборка. Синтаксис запроса.
Цель занятия: изучение синтаксиса простого SQL-запроса.
Теоретическое обоснование
Классификация команд SQL
Команды sql для удобства работы разделяются на следующие группы: Команды определения данных (Data Definition Commands); Команды манипуляции данными (Data Мanipulation Commands); Команда выборки данных (Data Query Commands); Команды управления транзакциями (Transaction Control Commands); Команды управления данными (Data Control Commands). Приведем список команд языка sql для каждой из этих групп в таблицах 1.1 - 1.6.
Таблица 1.1 - Команды определения данных (DDL)
Команда |
Назначение |
ALTER TABLE |
Изменяет структуру таблицы |
CREATE INDEX |
Создает индекс |
CREATE TABLE |
Создает таблицу |
CREATE VIEW |
Создает представление |
DROP |
Удаляет таблицу, индекс, представление |
Таблица 1.2 - Команды манипуляции данными- DML
Команда |
Назначение |
DELETE |
Удаляет записи таблицы |
INSERT |
Добавляет записи в таблицу |
UPDATE |
Изменяет данные таблицы |
Таблица 1.3 - Команда выборки данных
Команда |
Назначение |
SELECT |
Выбирает данные из таблиц |
Таблица 1.4 - Команды управления транзакциями
Команда |
Назначение |
СOMMIT |
Делает изменения, проведенные с начала транзакции, постоянными |
ROLLBACK |
Откатывает все проведенные изменения к точке сохранения или к началу транзакции |
SAVEPOINT |
Устанавливает контрольную точку, к которой впоследствии можно будет выполнить откат |
Таблица 1.5 - Команды управления данными
Команда |
Назначение |
CHECK DATABASE |
Проверяет целостность базы данных |
GRANT |
Предоставляет привилегии |
REVOKE |
Удаляет предоставленные ранее привилегии |
LOCK/UNLOCK |
Блокирует данные и отменяет блокировку |
Таблица 1.6 - Программный SQL
Команда |
Назначение |
declare |
Определяет курсор для запроса, задает имя курсора, который соответствует виртуальному набору данных. |
open |
Открыть курсор. Формирует виртуальный набор данных, соответствующий описанию курсора и текущему состоянию БД. |
fetch |
Считать очередную строку, заданную параметром команды из набора данных, соответствующего открытому курсору. |
close |
Закрыть курсор |
prepare |
Подготовить оператор SQL к динамическому выполнению |
execute |
Выполнить оператор, ранее подготовленный к динамическому выполнению |
Курсоры
Если запрос к таблице возвращает несколько строк (больше одной), то для их обработки используется курсор – указатель во множестве строк, выбранных оператором SELECT. Курсор – средство языка SQL, позволяющее получать построчный доступ к результату запроса. Термин «курсор» означает «текущий набор записей - current set of records». Оператором DECLARE в динамическом SQL объявляется курсор для запроса, оператором OPEN этот запрос выполняется и выбранные строки выделяются. Оператор FETCH позволяет перемещаться от одной строки результирующего множества к другой.
Для формирования запросов на языке SQL используется конструкция SELECT. Результатом выполнения запроса является таблица, которая хранится во временном буфере базы данных. Выбранные данные можно использовать для просмотра, формирования графиков или печати отчетов. Длина строки на языке SQL до 255 символов, регистр не имеет значения. Синтаксис команды SELECT:
SELECT [ALLDISTINCT] список выбираемых полей
FROM список таблиц
[WHERE условие выборки или соединения]
[GROUP BY список полей по условию группировки
[HAVING условие выборки группы]]
[ORDER BY список полей, по которым упорядочить вывод]
При формировании запросов можно использовать уточненные имена полей (например, CUSTOMER.CUSTOMERNO, т.е. Имя_таблицы. Имя_поля).
Ключевое слово ALL подразумевается по умолчанию.
Для выборки всех полей таблицы в том же порядке, что и в таблице, используется следующая форма запроса:
SELECT*FROM таблица.
Запрос вида
SELECT*FROM R1, R2
соответствует декартову произведению таблиц R1 и R2, т. е R=R1х R2.
Запрос
SELECT R1.А, R2.В FROM R1, R2
соответствует проекции декартова произведения таблиц R1 и R2 на столбцы A из таблицы R1 и B – из таблицы R2, то есть операции проекция реляционной алгебры.
|
|
