- •Лабораторна робота № 1
- •Лабораторна робота № 2
- •Лабораторна робота № 3
- •Лабораторна робота № 4
- •Лабораторна робота № 5
- •Зміст роботи: створити запити мовою sql з використанням інструкцій insert, delete, update.
- •Лабораторна робота № 6
- •Зміст роботи: створити підпорядковані запити мовою sql.
- •Лабораторна робота № 7
- •Лабораторна робота № 8
Лабораторна робота № 5
Тема: «Додавання та знищення даних. Оновлення записів».
Мета: Навчити студентів створювати запити на модифікацію даних.
Зміст роботи: створити запити мовою sql з використанням інструкцій insert, delete, update.
Форма звіту:
створені запити
протокол лабораторної роботи
Теоретичні відомості
Інструкція INSERT INTO
Ця інструкція утворює запит на додавання одного записів в таблицю.
Синтаксис запиту на додавання одного запису:
INSERT INTO призначення [(поле_1[, поле_2[ ...]])]
VALUES (значення_1[, значення_2[ ...])
Тут:
призначення - ім'я таблиці або запиту, в який додаються записи;
поле_1, поле_2 - імена полів для додавання даних;
значення_1, значення_2 - значення, що додаються у вказані поля нового запису (кожне значення буде вставлене в поле, що займає те ж положення в списку: значення_1 вставляється в поле_1 в новому записі, значення_2 в поле_2 і т.д; кожне значення текстового поля слідує брати в лапки (' '); для розділення значень використовуються коми).
Потрібно визначити всі поля запису і значення для цих полів. Якщо не всі поля визначені, в бракуючі стовпці буде вставлене значення за умовчанням або значення NULL. Якщо список полів опущений, пропозиція VALUES повинна містити значення для кожного поля таблиці, інакше інструкція INSERT не буде виконана.
Нові записи додаються в кінець таблиці.
От як можна додати в таблицю «Дисципліни» новий запис:
INSERT INTO Дисципліни([Код дисципліни], Назва, Семестр)
VALUES (5, "Програмування", 2);
Оскільки стовпці таблиці «Дисципліни» вказані у повному складі і саме в тому порядку, в якому вони перераховані при створенні таблиці, оператор можна спростити:
INSERT INTO Дисципліни
VALUES (5, "Програмування", 2)
При виконанні запиту з інструкцією INSERT INTO з’являється вікно-повідомлення про успішність запиту або помилку в ньому. Вікно повідомлення про успішне додавання нового запису та результат виконання приведеного вище запиту представлено на рис.5.1.
Рисунок 5.1 - Вікно повідомлення про додавання нового запису та результат виконання запиту
Інструкцію INSERT INTO можна також використовувати для додавання набору записів з іншої таблиці або запиту за допомогою пропозиції SELECT ... FROM. Такий запит копіює записи з однієї або декількох таблиць в іншу таблицю.
Синтаксис запиту на додавання запису, який береться з іншої таблиці:
INSERT INTO призначення [(поле_1[, поле_2[ ...]])]
SELECT [джерело]поле_1[, поле_2[ ...]
FROM вираз
Аргументи призначення і поле_1, поле_2 в першому рядку синтаксису мають ті ж значення, що і в попередньому прикладі запиту. Аргументи джерело і поле_1, поле_2 визначають таблицю та назви полів, звідки будуть копіюватися дані. Таблиці, які містять записи, що додаються, не змінюються.
Далі приведено приклад всіх записів таблиці «Дисципліни» до нової таблиці «Дисципліни1».
INSERT INTO Дисципліни1([Код дисципліни], Назва, Семестр)
SELECT [Код дисципліни], Назва, Семестр
FROM Дисципліни
Інструкція UPDATE
Створює запит на оновлення записів в таблиці, який змінює значення полів вказаної таблиці на основі заданої умови відбору.
Синтаксис:
UPDATE таблиця
SET поле1=вираз1 [,поле2=вираз2 ,]
WHERE умова_відбору;
Тут:
таблиця - ім'я таблиці, дані в якій слід змінити;
поле1, поле2 - імена полів, значення яких повинні бути змінені;
вираз1, вираз2 - вирази, що визначають значення, які повинні бути вставлені в указані поля оновлених записів;
умова_відбору - вираз, що відбирає записи, які повинні бути змінені. При виконанні цієї інструкції будуть змінені тільки записи, що задовольняють вказаній умові.
Інструкцію UPDATE особливо зручно використовувати для зміни відразу багатьох записів. Одночасно можна змінити значення декількох полів.
Замінити шифр спеціальності на «1.203» для всіх записів з шифром «203» в таблиці «Спеціальності» можна таким чином:
UPDATE Спеціальності
SET Шифр = "1.203"
WHERE Шифр = "203"
Змінити значення поля «Бюджет\Контракт» зі значення «Бюджет» на «Контракт» для студента Ланова можна за допомогою наступного запиту:
UPDATE Студенти
SET [Бюджет\Контракт] ="Контракт"
WHERE Прізвище="Ланов"
Початковий стан таблиці, вікно повідомлення про зміни в таблиці та результат зміни даних в таблиці приведені на рисунку 5.2 та 5.2.
Рисунок 5.2 – Дані в таблиці «Студенти» до виконання запиту на оновлення таблиці
Рисунок 5.3 – Вікно з повідомленням про оновлення таблиці та результат виконання запиту
Інструкція DELETE
Створює запит на видалення записів. Призначений для видалення записів з однієї або декількох таблиць, перерахованих після FROM, які задовольняють умові WHERE. Синтаксис:
DELETE *
FROM таблиця
WHERE умоваВідбора
Тут: «*» - показує, що видаляються всі записи;
таблиця - ім'я таблиці, з якої віддаляються записи;
умова_відбору –вираз-умова, визначаючий записи, що видаляються.
При вживанні інструкції DELETE видаляються тільки дані. Структура таблиці і її властивості, такі як атрибути полів і індекси, зберігається.
Щоб видалити з таблиці «Студенти» всі записи про студентів чоловічої статі, що навчаються на третьому курсі, використовуємо оператор:
DELETE *
FROM Студенти
WHERE (Стать = "м") AND (Курс = 3)
При виконання запиту з’явиться вікно для підтвердження видалення даних, після чого дані в таблиці будуть змінені (рис.5.4).
Рисунок 5.4 – Вікно з повідомленням про видалення даних з таблиці та результат виконання запиту
Інструкцію DELETE можна використовувати для видалення записів з таблиць, зв'язаних відношенням "один-до-багатьох" з іншими таблицями. Операції каскадного видалення приводять до видалення записів з таблиць, що знаходяться на стороні відношення "багато", коли в запиті віддаляється відповідний їм запис на стороні "один".
Примітки:
Не можна відновити записи, видалені за допомогою запиту на видалення. Щоб узнати, які записи будуть видалені, необхідно проглянути спочатку результати запиту на вибірку, що використовує ті ж самі умова відбору, а потім тільки виконати запит на видалення.
Регулярно виконуйте резервування даних. Ненавмисно видалені записи можуть бути відновлені по резервній копії.
Контрольні питання
Який оператор використовується для додавання записів в таблиці?
Приведіть формат запису оператора INSERT?
Які існують особливості при додаванні записів текстового формату, дати, часу?
За допомогою якого оператора можна змінити записи в таблиці?
В якому випадку при виконанні оператора UPDATE будуть змінені всі записи таблиці?
Коли слід використовувати оператор DELETE?
Чим відрізняються оператори DROP та DELETE?
Виконання роботи
Створіть запити мовою SQL:
Додати інформацію про нову спеціальність
Змінити прізвище заданому студенту
Скопіювати в нову таблицю анкетні дані студентів 5-го курсу
Видалити інформацію про дисципліни 9-го семестру
Перевести всіх студентів 2-го курсу спеціальності СКС на 3-й курс
Зробити копію таблиці Спеціальності, видалити цю копію
Виконайте запити.
Збережіть запити в базі даних.
Зміст звіту:
Титульний лист
Постановка завдання
Запити мовою SQL
Результати виконання запитів
Відповіді на контрольні питання
Висновки
