Файл: Методическое пособие к выполнению самостоятельной и лабораторных работ и курсового проекта по дисциплине Организация баз данных для студентов направления подготовки бакалавров.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 257

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

Лабораторная работа № 1 «Построение структуры базы данных»

Лабораторная работа № 2 «Создание запросов с помощью построителя запросов в среде MS Access»

Лабораторная работа № 3 «Работа с формами»

Лабораторная работа № 4 «Работа с отчетами»

Лабораторная работа № 5 «Создание SQL- запросов» Тема:СозданиеSQL-запросов.Разделдисциплины:Реляционныеязыки.Цель работы: создать SQL-запросы на создание таблицы, на выборку с параметрами, на обновление записей, на удаление записей, на добавление данных, на удаление таблицы, на создание индексов.Основы SQL Запрос SQL — это запрос, создаваемый при помощи инструкций SQL. Язык SQL (Structured Query Language) используется при созда- нии запросов, а также для обновления и управления реляционными БД.В среде MS Access, когда пользователь создает запрос в режиме конструктора запроса (с помощью построителя запросов), MS Access автоматически создает эквивалентную инструкцию SQL. Фактически, для большинства свойств запроса, доступных в окне свойств в режиме конструктора, имеются эквивалентные предложения или параметры языка SQL, доступные в режиме SQL. При необходимости, пользова- тель имеет возможность просматривать и редактировать инструкции SQL в режиме SQL. После внесения изменений в запрос в режиме SQL его вид в режиме конструктора может измениться.Некоторые запросы, которые называют запросами SQL, невоз- можно создать в бланке запроса. Для запросов к серверу, управляю- щих запросов и запросов на объединение необходимо создавать ин- струкции SQL непосредственно в окно запроса в режиме SQL. Для подчиненного запроса пользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.Синтаксиса написания SQL-предложений: в описании команд слова, написанные прописными латински- ми буквами, являются зарезервированными словами SQL; фрагменты SQL-предложений, заключенные в фигурные скоб- ки и разделенные символом «», являются альтернативными. При формировании соответствующей команды для конкретного случая необходимо выбрать одну из них; фрагмент описываемого SQL-предложения, заключенный в квадратные скобки [ ], имеет необязательный характер и может не ис- пользоваться; многоточие …, стоящее перед закрывающейся скобкой, говорит о том, что фрагмент, указанный в этих скобках, может быть повторен; Описание команд SQL Выборка записей Инструкция SELECT. При выполнении инструкции SELECT СУБД находит указанную таблицу или таблицы, извлекает заданные столбцы, выделяет строки, соответствующие условию отбора, и сорти- рует или группирует результирующие строки в указанном порядке в виде набора записей.Синтаксис команды:SELECT [предикат] { * | таблица.* | [таблица.]поле_1[AS псевдоним_2] [, [таблица.]поле_2[AS псевдоним_2] [, ...]]} FROM выражение [, ...][WHERE... ][GROUP BY... ][HAVING... ][ORDER BY... ]где предикат — один из следующих предикатов отбора: ALL, DISTINCT, DISTINCTROW, TOP. Данные ключевые слова использу- ются для ограничения числа возвращаемых записей. Если они отсут- ствуют, по умолчанию используется предикат ALL;* указывает, что результирующий набор записей будет содержать все поля заданной таблицы или таблиц. Следующая инструкция отби- рает все поля из таблицы «Студенты»: SELECT * FROM Студенты;таблица — имя таблицы, из которой выбираются записи;поле_1, поле_2 — имена полей, из которых должны быть отобра- ны данные;псевдоним_1, псевдоним_2 — ассоциации, которые станут заго- ловками столбцов вместо исходных названий полей в таблице;выражение — имена одной или нескольких таблиц, которые со- держат необходимые для отбора записи;предложение GROUP BY в SQL-предложении объединяет записи с одинаковыми значениями в указанном списке полей в одну запись. Если инструкция SELECT содержит статистическую функцию SQL, например Sum или Count, то для каждой записи будет вычислено ито- говое значение;предложение HAVING определяет, какие сгруппированные запи- си, выданные в результате выполнения запроса, отображаются при использовании инструкции SELECT с предложением GROUP BY. По- сле того как записи результирующего набора будут сгруппированы с помощью предложения GROUP BY, предложение HAVING отберет теиз них, которые удовлетворяют условиям отбора, указанным в пред- ложении HAVING;предложение ORDER BY позволяет отсортировать записи, полу- ченные в результате запроса, в порядке возрастания или убыванияна основе значений указанного поля или полей.Следует отметить, что инструкции SELECT не изменяют данные в базе данных. Приведем минимальный синтаксис инструкции SELECT: SELECT поля FROM таблица.Если несколько таблиц, включенных в предложение FROM, со- держат одноименные поля, перед именем такого поля следует ввести имя таблицы и оператор « . » (точка). Предположим, что поле «Но- мер_группы» содержится в таблицах «Студенты» и «Группы». Следу- ющая инструкция SQL отберет поле «Номер_группы» и«ФИО_студента» из таблицы «Студенты» и «ФИО_куратора» из таб- лицы «Группы» при номере группы, равном 432-1:SELECT Группы.Номер_группы, Группы.ФИО_куратора, Сту- денты.ФИО_студентаFROM Группы, СтудентыWHERE Группы.Номер_группы = Студенты.Номер_группы AND На рисунке 17 приведен пример выполнения данного запроса.Таблицы БД СТУДЕНТЫ

Лабораторная работа № 6 «Создание концепту- альной модели данных в среде Power Designer»

Лабораторная работа № 7 «Генерация физической модели в среде Power Designer и структуры базы данных в СУБД MS Access»

Указания к выполнению курсового проекта

Самостоятельная работа

Рекомендуемая литература

Приложение 1

Приложение 2


ГРУППЫ


Номер_Группы

ФИО_куратора

412-1

Самойлов С.С.

432-1

Авдеев Р.М

Результат выполнения запроса


Номер_группы

ФИО_куратора

ФИО_студента

432-1

Авдеев Р.М

Данилов О. В.

432-1

Авдеев Р.М

Раевский А. И.

432-1

Авдеев Р.М

Глазов О.А

Рисунок 17 Пример выполнения запроса на выборку

Помимо обычных знаков сравнения (=,<,>,<=,>=, <>) в языке SQL в условии отбора используются ряд ключевых слов:

Is not null выбрать только непустые значения; Is null — выбрать только пустые значения;

Between … And определяет принадлежность значения выражения указанному диапазону.

Синтаксис:

выражение [Not] Between значение_1 And значение_2 ,

где выражение — выражение, определяющее поле, значение которого проверяется на принадлежность к диапазону;

значение_1, значение_2 выражения, задающие границы диапа-

зона.

Если значение поля, определенного в аргументе выражение, по-

падает в диапазон, задаваемый аргументами значение_1 и значение_2 (включительно), то оператор Between...And возвращает значение True; в противном случае возвращается значение False. Логический опера- тор Not позволяет проверить противоположное условие: что выраже- ние находится за пределами диапазона, заданного с помощью аргумен- тов значение_1 и значение_2.

Оператор Between...And часто
используют для проверки: попадает ли значение поля в указанный диапазон чисел. В следующем примере выдается список студентов, получающих стипендию от 800 до 900 рублей:

SELECT ФИО_студента, Размер_стипендии FROM Студенты

WHERE Размер_стипендии Between 800 And 900

На рисунке 18 приведен результат выполнения запроса. СТУДЕНТЫ

Номер_зачетной книжки

ФИО_студента

Размер_стипендии

1992412-11

Карасев А.А.

900

1992432-11

Данилов О. В.

800

1992432-12

Раевский А. И.

950

1992432-22

Глазов О.А

850

Результирующий набор данных

ФИО_студента

Размер_стипендии

Карасев А.А.

900

Данилов О. В.

800

Глазов О.А

850

Рисунок 18 Результат выполнения запроса на выборку с использованием операторов Between...And

Если выражение, значение_1 или значение_2 имеет значение Null, оператор Between...And возвращает значение Null.

Оператор Like используется для сравнения строкового выражения с образцом.

Синтаксис: выражение Like «образец»,

где выражение выражение SQL, используемое в предложении WHERE; образец — строка, с которой сравнивается выражение.

Оператор Like используется для нахождения в поле значений,

соответ- ствующих указанному образцу. Для аргумента образец можно задавать полное значение (например, Like «Иванов») или использовать подстано- вочные знаки для поиска диапазона значений (например, Like "Ив*").

Приведем перечень подстановочных символов и пример их ис- пользования в языке Jet SQL согласно документации Microsoft (рису- нок 19).


Тип совпадения

Образец

Совпадение (True)

Несовпадение (False)

Несколько символов

a*a

aa, aBa, aBBBa

aBC




*ab*

abc, AABB, Xab

aZb, bac

Специальный символ

a[*]a

a*a

aaa

Несколько символов

ab*

abcdefg, abc

cab, aab

Одиночный символ

a?a

aaa, a3a, aBa

aBBBa

Одиночная цифра

a#a

a0a, a1a, a2a

aaa, a10a

Диапазон символов

[a-z]

f, p, j

2, &

Вне диапазона

[!a-z]

9, &, %

b, a

Не цифра

[!0-9]

A, a, &,

0, 1, 9

Комбинированное

выражение

a[!b-m]#

An9, az0, a99

abc, aj0

Рисунок 19 Параметры оператора
Like

Внутреннеесоединение

Операция INNER JOIN объединяет записи из двух таблиц, если связующие поля этих таблиц содержат одинаковые значения.

Синтаксис операции:

FROM таблица_1 INNER JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2

где таблица_1, таблица_2 — имена таблиц, записи которых подлежат объединению;

поле_1, поле_2 имена объединяемых полей. Поля должны иметь одинаковый тип данных и содержать данные одного рода,

однако эти поля могут иметь разные имена;

оператор — любой оператор сравнения: "=," "<," ">," "<=," ">=," или "<>".

Операцию INNER JOIN можно использовать в любом предложе- нии FROM. Это самые обычные типы связывания. Они объединяют записи двух таблиц, если связующие поля обеих таблиц содержат оди- наковые значения. Предыдущий пример использования команды SELECT можно записать с использованием конструкции INNER JOIN следующим образом:

SELECT Группы.Номер_группы, Группы.ФИО_куратора, Сту- денты.ФИО_студента

FROM Группы INNER JOIN Студенты

ON Группы.Номер_группы = Студенты.Номер_группы;
Внешнеесоединение

Операции LEFT JOIN, RIGHT JOIN объединяют записи исход- ных таблиц при использовании в любом предложении FROM.

Операция LEFT JOIN используется для создания внешнего со- единения, при котором все записи из первой (левой) таблицы включа- ются в результирующий набор, даже если во второй (правой) таблице нет соответствующих им записей.

Операция RIGHT JOIN используется для создания внешнего объ- единения, при котором все записи из второй (правой) таблицы вклю- чаются в результирующий набор, даже если в первой (левой) таблице нет соответствующих им записей.

Синтаксис операции:

FROM таблица_1 [ LEFT | RIGHT ] JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2

Например, операцию LEFT JOIN можно использовать с таблица- ми «Студенты» (левая) и «Задолженность_за_обучение» (правая) для отбора всех студентов, в том числе тех, которые не являются задолж- никами:

SELECT Студенты.ФИО_студента, Задолженность_за_обучение.Сумма_задолженности