Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба 2

.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
286.42 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное

учреждение высшего образования

«Юго-Западный государственный университет»

Лабораторная работа №2

По дисциплине: «Безопасность систем баз данных»

Тема: «Заполнение БД в среде MS SQL SERVER 2008 R2. Выборка данных с помощью запросов»

Выполнил: Рохтин Я.А.

студент группы ИБ-21б

Проверил: Посканный М.В.

Ассистент

Курск, 2024

Цель работы

Заполнить полученную базу данных в SQL Management Studio и сформировать SQL запросы на выборку данных из базы данных.

Ход работы

На основе созданной БД в предыдущей лабораторной работе, заполним таблицы необходимой информацией. Для этого перейдем на вкладку содержащей наши таблицы и выберем пункт “Изменить первые 200 строк”. В открывшемся окне заполним строчки необходимой информацией, важно соблюдать тип данных, во избежание возможных ошибок. Сделаем это для всех таблиц нашей базы данных (Рис. 1-3)

Рисунок 1 – таблица “KNIGI”

Рисунок 2 – таблица “JOURNAL”

Рисунок 3 – таблица “CHITATEL”

После того как мы заполнили наши таблицы данными, перейдём к следующему этапу — созданию скриптов для выборки данных.

Select, Insert, Update, Delete – основные скрипты SQL. Для создания нового запроса необходимо выбрать нужную таблицу, перейти в пункт “Создать сценарий для таблицы”, после выбрать интересующий нас запрос, в данном случае выберем – “Используя SELECT”. В открывшемся окне опробуем создание нового запроса при помощи команды “SELECT Название FROM KNIGI”, данное предложение при выполнении выведет все столбцы, удовлетворяющие условию (Рис. 4)

Рисунок 4 – результат выполнения запроса SELECT.

Точно таким же способом можно вывести несколько столбцов таблицы, разница лишь в том, что после ключевого слова Select необходимо ввести через запятую все интересующие нас элементы (Рис. 5)

Рисунок 5 – результат вывода нескольких столбцов.

Также, после ключевого слова select можно ввести символ *, что позволит вывести сразу все столбцы таблицы (Рис. 6)

Рисунок 6 – вывод всех столбцов таблицы.

Если мы хотим вывести результат не по такому порядку, как в таблице, нужно воспользоваться предложением ORDER BY. После указываем имя одного или нескольких столбцов, по которым необходимо отсортировать.

Рисунок 7 – результат выполнения с применением ORDER BY

Также можно использовать порядок сортировки по убыванию. Для этого необходимо указать ключевое слово DESC. В большинстве случаев для работы с таблицами SQL требуется не вся выводимая информация, а только ее часть. Чтобы выбрать только нужное используется слово WHERE, после которого пишется имя столбца и значение, по которому необходимо произвести поиск (Рис. 8)

Рисунок 8 – результат вывода с использованием WHERE.

Одним из полезных операторов SQL запросов является LIKE. Он позволяет при помощи логических конструкций сравнивать или находить нужные элементы таблицы БД (Рис. 9)

Рисунок 9 – результат поиска при помощи LIKE.

Попробуем использовать агрегатные функции, которые возвращают одно значение для группы строк. Основные функции: COUNT (считает строки), SUM (суммирует значения), AVG (считает среднее), MIN (находит минимум), MAX (находит максимум). Они применяются с ключевыми словами ALL (все значения) или DISTINCT (только уникальные). Попробуем использовать одну из функций:

Рисунок 10 – результат вывода с использованием COUNT.

Одной из немаловажных инструкций в SQL является INSERT, которая добавляет новые строки в таблицу. Формат использования: INSERT [INTO] table_or_view [(column_list)] data_values. Если список столбцов (column_list) не указан, данные вставляются во все столбцы таблицы. Если указаны не все столбцы, для пропущенных полей используются значения по умолчанию или NULL, если это возможно. Перейдем во вкладку “Создать сценарий для таблицы” и в ней выбираем “Используя INSERT”. Прописываем все необходимые команды и смотрим на результат выполнения (Рис. 11-12)

Рисунок 11 – результат выполнения Insert команды.

Рисунок 12 – создание новых элементов с использованием Insert.

Также мы можем обновить существующие данные, используя инструкцию UPDATE из меню “Создать сценарий для таблицы”. Попробуем изменить данные из таблицы KNIGI (Рис. 13-14)

Рисунок 13 – результат выполнения UPDATE.

Рисунок 14 – измененные данные таблицы KNIGI.

Соответственно, если можно обновить данные в таблице их также можно оттуда и удалить при помощи инструкции DELETE. Данный запрос удаляет ненужные строки целиком (Рис. 15-16)

Рисунок 15 – результат выполнения команды DELETE

Рисунок 16 – удаление всей строки по названию “Война и мир”

Оператор INNER JOIN возвращает записи, которые есть одновременно в обеих таблицах и соответствуют условию связи через ключи (primary/foreign). Если записи нет в одной из таблиц, она не включается в результат. То есть выдаются только связанные между собой данные, «одинокие» записи исключаются. Пример использования:

Рисунок 17 – результат выполнения INNER JOIN.

Оператор LEFT JOIN возвращает все записи из «левой» таблицы, даже если в «правой» таблице нет соответствий. Если записи в «правой» таблице не найдены, на их месте возвращаются NULL. В условии ON «левая» таблица указывается первой, и выборка строится относительно нее. (Рис. 18)

Рисунок 18 – результат выполнения команды LEFT JOIN.

Обратный предыдущему оператору - RIGHT JOIN возвращает все записи из «правой» таблицы, даже если в «левой» таблице нет соответствий. Если в «левой» таблице нет пары, для её полей возвращаются NULL. В этом случае основная таблица — «правая», и выборка строится относительно неё. (Рис. 19)

Рисунок 19 – результат выполнения команды RIGHT JOIN.

Вложенные запросы — это запросы, заключённые в скобки и используемые в конструкциях HAVING, WHERE, FROM, SELECT и WITH внешнего запроса. Они могут быть простыми (независимыми от внешнего запроса) и связанными. Пример: подзапросы в WHERE выбирают данные из других таблиц. В одном запросе может быть несколько подзапросов, но они могут возвращать только один столбец.

Заключение

В ходе выполнения лабораторной работы познакомились с процессом работы в среде MS SQL Server 2008 R2, применяя основные команды для работы с базами данных. На примере данной работы, основное внимание было уделено следующим аспектам:

  1. Заполнение базы данных: Используя вкладку «Изменить первые 200 строк», вручную заполнили таблицы нашей базы данных.

  2. Создание запросов для выборки данных: познакомились с командой SELECT для выборки данных как из одного столбца, так и из нескольких, а также узнали, как выводить все столбцы таблицы, используя символ '*'.

  3. Сортировка данных: использовали оператор ORDER BY для сортировки данных по определенным столбцам, а также применили ключевое слово DESC для сортировки по убыванию.

  4. Фильтрация данных: при помощи оператора WHERE пробовали выводить только необходимые строки таблиц, что существенно оптимизирует обработку больших объемов данных.

  5. Агрегатные функции: познакомились с такими функциями как COUNT, SUM, AVG, MIN, MAX. Эти функции позволяют быстро проводить расчетные операции над группами строк, что делает работу с данными более эффективной.

  6. Операции с данными: рассмотрели команды INSERT для добавления новых данных, UPDATE для изменения существующих записей, и DELETE для удаления строк, которые более не требуются в базе данных.

  7. Соединение таблиц: Операторы INNER JOIN, LEFT JOIN и RIGHT JOIN дали возможность объединять данные из нескольких таблиц на основе ключевых полей.

  8. Вложенные запросы: познакомились с созданием сложных запросов, используя подзапросы в конструкциях WHERE и других операторов. Это позволило нам более гибко извлекать данные, основываясь на множестве условий и связей.

Таким образом, данная работа позволила нам познакомиться с ключевыми аспектами управления и манипуляции с базами данных в среде MS SQL Server.

Соседние файлы в предмете Безопасность систем баз данных