Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет вказівки до лаб з SQL.doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
811.01 Кб
Скачать

Завдання для самостійної роботи

1. Напишіть запит, що вибирає дані про назви університетів, рейтинг яких дорівнює або перевищує рейтинг Вінницького державного університету.

2. . Напишіть запит, що використає ANY або ALL, що виконує вибірку даних про студентів, у яких у місті їхнього постійного місця проживання немає університету.

3. Напишіть запит, що вибирає з таблиці EXAM_MARKS дані про назви предметів навчання, для яких значення отриманих на іспиті оцінок (поле MARK) перевищує будь-яке значення оцінки для предмета, що має ідентифікатор, рівний 105.

4. Напишіть цей же запит з використанням МАХ.

3.10. Лабораторна робота № 10

Тема: Команди маніпулювання даними

Мета роботи: набути практичні навички використання команд маніпулювання даними при роботі з реляційною базою даних.

Порядок виконання роботи

1. Ознайомитися з теоретичними положеннями до лабораторної роботи.

2. Виконати всі наведені приклади в середовище СУБД ACCESS.Для цього необхідно:

  • завантажити СУБД ACCESS;

  • виконати режим відкриття бази даних «ВНЗ SQL»;

  • у вікні БД «ВНЗ SQL» вибрати вкладку «Запити»;

  • в діалоговому вікні вказати режим «Додати таблицю» і вибрати необхідні дані;

  • на панелі інструментів вибрати пункт меню «Вид» і вказати режим роботи SQL;

  • в поточному діалоговому вікні ввести текст запиту в форматі SQL;

  • виконати введений запит, для чого натиснути кнопку «Запуск» (!) на панелі інструментів;

  • отриманий результат виконання запиту занести в звіт та перевірити на відповідність умовам прикладу;

  • зберегти створений запит, надавши йому власне ім’я.

3. Виконати індивідуальне завдання (дивись завдання для самостійної роботи). Номери індивідуальних завдань видаються викладачем.

4. Результати виконання індивідуальних завдань занести у звіт.

5. Захистити звіт.

Теоретичні відомості

Команди маніпулювання даними

В SQL для виконання операцій уведення даних у таблицю, їх корегування й видалення призначені три команди мови маніпулювання даними (DML). Це команди INSERT (вставити), UPDATE (обновити), DELETE (видалити).

Команда INSERT здійснює вставку в таблицю нового рядка. У найпростішому випадку вона має вигляд:

INSERT INTO <ім'я таблиці> VALUES (<значення>, <значення>,);

При такому записі зазначені в дужках після ключового слова VALUES значення вводяться в поля доданого в таблицю нового рядка в тім порядку, у якому відповідні стовпці зазначені при створенні таблиці, тобто в операторі CREATE TABLE.

Приклад 1. Введення нового рядка в таблицю STUDENT може бути здійснено у такий спосіб:

INSERT INTO STUDENT

VALUES (101,'Іваненко','Олександр', 200, 3,'Миколаїв',

'6/10/1984', 15);

Щоб така команда могла бути виконана, таблиця із зазначеним у ній ім'ям (STUDENT) повинна бути попередньо визначена (створена) командою CREATE TABLE. Якщо в яке-небудь поле необхідно вставити NULL-значення, то воно вводиться як звичайне значення:

INSERT INTO STUDENT

VALUES (101, 'Іваненко', NULL, 200, 3, 'Миколаїв', '6/10/1984', 15);

У випадках, коли необхідно ввести значення полів у порядку, відмінному від порядку стовпців, заданого командою CREATE TABLE, або потрібно ввести значення не в усі стовпці, варто використати наступну форму команди INSERT:

INSERT INTO STUDENT (STUDENT_ID, CITY, SURNAME, NAME)

VALUES (101, 'Миколаїв', 'Іваненко', 'Сашко');

Стовпцям, найменування яких не зазначені в наведеному в дужках списку, автоматично привласнюється значення за замовчуванням, якщо воно призначено при описі таблиці (команда CREATE TABLE), або значення NULL.

Приклад 2. За допомогою команди INSERT витягти значення з однієї таблиці й розмістити його в іншій:

INSERT INTO STUDENT1

SELECT *

FROM STUDENT

WHERE CITY = 'Миколаїв';

При цьому таблиця STUDENT1 повинна бути попередньо створена командою CREATE TABLE і мати структуру, ідентичну таблиці STUDENT.

Видалення рядків з таблиці здійснюється за допомогою команди DELETE.

Наступний вираз видаляє всі рядки таблиці EXAM_MARKSI.

DELETE FROM EXAM_MARKS1;

У результаті таблиця стає порожньою (після цього вона може бути вилучена командою DROP TABLE).

Для видалення з таблиці відразу декількох рядків, що задовольняють деякій умові, можна скористатися конструкцією WHERE.

Приклад 3.

DELETE FROM EXAM_MARKS1

WHERE STUDENT_ID = 103;

Можна видалити групу рядків:

DELETE FROM STUDENT1

WHERE CITY = 'Миколаїв';

Команда UPDATE дозволяє змінювати, тобто обновляти значення деяких або всіх полів в існуючому рядку або рядках таблиці.

Приклад 4. Для всіх університетів, відомості про які перебувають у таблиці UNIVERSITY1, змінити рейтинг на значення 200. Можна використати наступну конструкцію:

UPDATE UNIVERSITY1

SET RATING = 200;

Для вказівки конкретних рядків таблиці, значення полів яких повинні бути змінені, у команді UPDATE можна використати предикат, що вказується в пропозиції WHERE:

UPDATE UNIVERSITY1

SET RATING = 200

WHERE CITY = 'Миколаїв';

У результаті виконання цього запиту буде змінений рейтинг тільки для університетів, розташованих у Миколаїві.

Команда UPDATE дозволяє змінювати не тільки один, але й множину стовпців. Для визначення конкретних стовпців, значення яких повинні бути модифіковані, використовується конструкція SET.

Приклад 5. Замінити найменування предмета навчання 'Математика' (для нього SUBJ_ID = 43) на назву 'Вища математика', при цьому ідентифікаційний номер необхідно зберегти, але у відповідні поля рядка таблиці ввести нові дані про цей предмет навчання. Запит буде виглядати в таким чином:

UPDATE SUBJECT1

SET SUBJ_NAME = ‘Вища математика’, HOUR = 36, SEMESTER = 1

WHERE SUBJ_ID = 43;

В конструкції SET команди UPDATE можна використати скалярні вирази, що вказують спосіб зміни значень поля, у які можуть входити значення змінюваного й іншого полів.

UPDATE UNIVERSITY1

SET RATING = RATING*2;

Приклад 6. Збільшити в таблиці STUDENT1 значення поля STIPEND у два рази для студентів з Миколаєва. Використати запит:

UPDATE STUDENT1

SET STIPEND = STIPEND*2

WHERE CITY = 'Миколаїв';

Конструкція SET не є предикатом, тому в ній можна вказати значення NULL у такий спосіб:

UPDATE UNIVERSITY1

SET RATING = NULL

WHERE CITY = 'Миколаїв';