Слайд 1Введення в структуровану мову запитів - SQL
Засоби пошуку даних.
Засоби маніпулювання
даними.
3. Операції над схемою БД.
4. Віртуальні таблиці та індекси.
5. Транзакції.
6.
Додаткові можливості мови.
Слайд 2SQL
SQL (Structured Query Language) - структурована мова запитів.
Міжнародні стандарти ANSI
та ISO займаються підтримкою мови.
Результатом дії мовного оператора є таблиця,
яка містить множину даних, тобто особливістю реляційних СКБД є те, що вони надають множинно-орієнтовану мову маніпулювання базою даних.
Слайд 3Властивості SQL
SQL надає наступні властивості:
створювати й видаляти таблиці БД,
змінювати заголовки таблиць;
вставляти, замінювати й видаляти рядки у таблицях;
виконувати пошук
даних у багатьох таблицях та впорядковувати результати пошуку;
описувати процедури підтримки цілісності;
визначати та змінювати інформацію про захист даних тощо
Слайд 4Засоби пошуку даних
Основна конструкція, призначена у мові SQL для
вибирання даних складається із фраз SELECT i FROM. Фраза FROM
вказує, з якої таблиці треба вибрати дані, а фраза SELECT - які саме атрибути (стовпці) мають бути вибрані.
SELECT Назва
FROM ФАКУЛЬТЕТ
SELECT Курс, Кількість
FROM ГРУПА
Запит здійснює виведення назв факультетів
Запит здійснює виведення списку імен стовпців, відповідно як вони розташовані у фразі
Слайд 5Засоби пошуку даних
Якщо необхідно вивести всі стовпці таблиці, то
у фразі SELECT використовується символ *:
SELECT *
FROM
КАФЕДРА
Щоб унаслідок виконання запиту одержати унікальні значення, потрібно використовувати оператор DISTRINCT (за замовчуванням ALL):
SELECT DISTRINCT Тип
FROM ЛЕКЦІЯ
виводиться лише один раз
Запит здійснює виведення всіх стовпців таблиці КАФЕДРА
Список усіх типів лекцій, які читаються у ВУЗі та кожен тип лекції
Слайд 6Припустимі типи даних
SELECT надає можливість перевизначити імена стовпців кінцевої
таблиці:
SELECT Назва AS Назва_факультету, Декан AS Декан_факультету
FROM ФАКУЛЬТЕТ
Вибір
даних за умовою WHERE:
вибрати рядок із таблиці;
перевірити його відповідність вказаній умові;
вивести значення стовпців, вказаних у фразі SELECT;
SELECT Прізвище
FROM ВИКЛАДАЧ
WHERE Посада = “професор”
Запит виводить список усіх професорів ВУЗу
Слайд 7Вирази, умови та оператори
У мові SQL існує багато різновидів
виразів, у яких використовуються дані різних типів: рядки, числа, логічні
значення тощо.
WHERE, SELECT, FROM – це вирази.
Умова – це вираз, що повертає логічне значення TRUE чи FALSE.
Оператори – це конструкції, що використовуються у виразах для означення певних дій над ними
Слайд 9Оператори
Приклади операторів: с.76-80
Слайд 10Оператори SQL
Оператори DDL (Data Definition Language) - оператори визначення
об'єктів БД:
CREATE TABLE - створити таблицю
ALTER TABLE - змінити
таблицю
DROP TABLE - видалити таблицю
CREATE DOMAIN - створити домен
ALTER DOMAIN - змінити домен
DROP DOMAIN - видалити домен
CREATE COLLATION - створити послідовність
DROP COLLATION - видалити послідовність
CREATE VIEW - створити подання
DROP VIEW - видалити подання
Слайд 11Оператори SQL
Оператори DML (Data Manipulation Language) - оператори маніпулювання
даними:
SELECT - відібрати рядок з таблиць
INSERT - додати рядок
в таблицю
UPDATE - змінити рядок в таблиці
DELETE - видалити рядок в таблиці
COMMIT - зафіксувати внесені зміни
ROLLBACK - відкотити внесені зміни
Слайд 12Оператори SQL
Оператори захисту й керування даними:
CREATE ASSERTION - створити
обмеження
DROP ASSERTION - видалити обмеження
GRANT - надати привілею
користувачеві або додатку на маніпулювання об'єктами
REVOKE - скасувати привілею користувача або додатка
Слайд 13Підзапити
Підзапит (вкладений запит) – це запит, результат виконання якого є
аргументом іншого запиту.
Для того щоб вкласти підзапит у запит, потрібно
зазначити його у фразі WHERE чи HAVING у правому аргументі одного з предикатів.
Простий (незалежний) підзапит – це підзапит, обчислення якого здійснюється незалежно від обчислення зовнішнього запиту.
Корельований (залежний, пов'язаний) підзапит - це підзапит, обчислення якого залежить від обчислення зовнішнього запиту.
Слайд 14Засоби маніпулювання даними
Дані можна вводити у БД, корегувати та
видаляти.
Оператор INSERT дає змогу вводити дані до БД.
INSERT…VALUES дає змогу
додати до таблиці один рядок. Наприклад:
INSERT INTO <ім'я таблиці> (<поле1>[, <поле2>]…)
VALUES (<Значення 1>[, <Значення 2>]…)
INSERT…SELECT дає змогу додати до таблиці множину рядків. Наприклад:
INSERT INTO <ім'я таблиці> (< список полів>)
SELECT <список полів>
FROM <ім'я таблиці>
WHERE <умова пошуку>
Слайд 15Засоби маніпулювання даними
UPDATE – надає можливість змінювати значення у наявних
рядках.
UPDATE
= <вираз 1>
WHERE <умова пошуку>
Наприклад, встановити фонд факультету інформатики рівним 250300 :
UPDATE <ФАКУЛЬТЕТ>
SET <ФОНД = 250300>
WHERE <НАЗВА = “інформатики”>
Слайд 16Засоби маніпулювання даними
DELETE - видалення рядків у таблиці.
DELETE FROM
суботу та неділю:
DELETE FROM ЛЕКЦІЯ
WHERE День IN (“субота”, “неділя”)
Наприклад, видалити всі рядки з реляційного відношення предмет:
DELETE FROM ПРЕДМЕТ
Слайд 17Операції над схемою бази даних
Оператор CREATE DATABASE – оператор створення
бази даних.
CREATE DATABASE
DATABASE дає змогу виконати такі основні дії:
делегувати повноваження на створення бази даних іншим користувачам;
визначити місце, де розташовується БД;
зарезервувати певний обсяг дискового простору для подальшого зберігання рядків таблиці тощо.
Слайд 18Оператори SQL
Оператор CREATE TABLE – створення таблиці.
CREATE TABLE
таблиці>
( [NOT NULL]
< поле 2
> <тип даних 2> [NOT NULL]…)
Після ключових слів CREATE TABLE задаються ім'я таблиці та імена стовпців з типами даних та іншими характеристиками. Специфікатор NOT NULL забороняє введення у стовпець NULL-значень і застосовується зокрема для ключових полів.
Слайд 20Типи даних Oracle
Наприклад:
Створити таблицю ФАКУЛЬТЕТ:
CREATE TABLE ФАКУЛЬТЕТ
(#F NUMBER (10).
Назва CHAR
(50) NOT NULL.
Декан CHAR (25).
Корпус CHAR (5).
Фонд NUMBER (6.2))
Слайд 21Віртуальні таблиці та індекси
Віртуальна таблиця – це таблиця з іменем,
одержана в результаті виконання оператора SELECT з можливою заміною імен
стовпців.
Віртуальна таблиця застосовується для створення складних запитів. Вона може використовуватись в операторах SELECT, INCERT, INPUT, UPDATE, DELETE, хоча фізично не займає місця в БД. Синтаксис:
CREATE VIEW <віртуальна таблиця> [(список полів)] AS
SELECT <список полів>
FROM <імена таблиць>
[WHERE…]
[WITH CHECK OPTION]
Слайд 22Віртуальні таблиці
Наприклад: проста віртуальна таблиця:
CREATE VIEW КОПІЯ_ФАКУЛЬТЕТУ AS
SELECT *
FROM
ФАКУЛЬТЕТ
У результаті створюється віртуальна таблиця КОПІЯ_ФАКУЛЬТЕТУ, що є точною
копією таблиці ФАКУЛЬТЕТ
Наприклад: копіювання окремих стовпців:
CREATE VIEW ДЕКАНИ_ФАКУЛЬТЕТІВ (Назва, Декан) AS
SELECT *
FROM ФАКУЛЬТЕТ
Слайд 23Використання індексів
Індекси – це перелік стовпців таблиці, за значеннями яких
записи логічно впорядковуються.
Індекси – об'єкти Б.Д., що створені з метою
підвищення ефективності виконання запитів.
Індекси забезпечують:
задоволення вимог унікальності записів;
оптимізацію виконання запитів;
підтримка логічної упорядкованості даних, відповідно до значень одного або декількох полів.
Слайд 24Використання індексів
Базовий синтаксис оператора визначення індексу:
CREATE INDEX
таблиці> (, []…)
Наприклад:
CREATE INDEX КАФЕДРА_ЗАВІДУВАЧ_НАЗВА
ON КАФЕДРА (#ЗАВІДУВАЧ, Назва) -
створює індекс у таблиці КАФЕДРА за полями ЗАВІДУВАЧ і Назва
Використання фрази UNIQUE:
CREATE UNIQUE INDEX ГРУПА_ІД
ON ГРУПА (#G) - вимагає, щоб у таблиці група значення #G були неповторюваними
Слайд 25Транзакції
Транзакції (у БД) – сукупність операцій з маніпулювання БД, що
являють собою логічну одиницю роботи з даними.
Наприклад:
BEGIN TRANSACTION [
[TRANSACTION ]
Слайд 26Тригери
Тригери (у БД) – це SQL- оператор, що активізується під
час виконання певних операцій над об'єктами бази даних.
Об'єкти БД -
…
Операції БД – додавання, видалення та заміна рядків.
Тригери – один із механізмів підтримки цілісності БД.
Наприклад:
CREATE TRIGGER <ім'я тригера>
{BEFORE|AFTER} <операції над таблицею> [OF <список полів>] ON <ім'я таблиці>
[WHEN (<умова>)]
<оператори SQL>