
лаба 2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное
учреждение высшего образования
«Юго-Западный государственный университет»
Лабораторная работа №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, применяя основные команды для работы с базами данных. На примере данной работы, основное внимание было уделено следующим аспектам:
Заполнение базы данных: Используя вкладку «Изменить первые 200 строк», вручную заполнили таблицы нашей базы данных.
Создание запросов для выборки данных: познакомились с командой SELECT для выборки данных как из одного столбца, так и из нескольких, а также узнали, как выводить все столбцы таблицы, используя символ '*'.
Сортировка данных: использовали оператор ORDER BY для сортировки данных по определенным столбцам, а также применили ключевое слово DESC для сортировки по убыванию.
Фильтрация данных: при помощи оператора WHERE пробовали выводить только необходимые строки таблиц, что существенно оптимизирует обработку больших объемов данных.
Агрегатные функции: познакомились с такими функциями как COUNT, SUM, AVG, MIN, MAX. Эти функции позволяют быстро проводить расчетные операции над группами строк, что делает работу с данными более эффективной.
Операции с данными: рассмотрели команды INSERT для добавления новых данных, UPDATE для изменения существующих записей, и DELETE для удаления строк, которые более не требуются в базе данных.
Соединение таблиц: Операторы INNER JOIN, LEFT JOIN и RIGHT JOIN дали возможность объединять данные из нескольких таблиц на основе ключевых полей.
Вложенные запросы: познакомились с созданием сложных запросов, используя подзапросы в конструкциях WHERE и других операторов. Это позволило нам более гибко извлекать данные, основываясь на множестве условий и связей.
Таким образом, данная работа позволила нам познакомиться с ключевыми аспектами управления и манипуляции с базами данных в среде MS SQL Server.