Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_практика_проектирование БД.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
316.69 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Филиал федерального государственного бюджетного образовательного учреждения

высшего образования «Московский технологический университет» в г. Ставрополе

Филиал МИРЭА в г. Ставрополе

Методические указания

к практическим занятиям и самостоятельной работе

по дисциплине

«Проектирование баз данных»

для студентов

направления подготовки:

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, то есть операции проекция реляционной алгебры.