Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_ответы.doc
Скачиваний:
27
Добавлен:
27.08.2019
Размер:
3.25 Mб
Скачать

10. Мова sql: основні можливості по формуванню запитів до бази даних, приклади запитів.

SQL (англ. Structured query language - мова структурованих запитів) - мова програмування для взаємодії користувача з базами даних, що застосовується для запитів, поновлення і керування реляційними БД. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом. Не будучи мовою програмування в тому розумінні, як C або Pascal, SQL спроможна формувати інтерактивні запити або, будучи вмонтованою в аплікації, виступати в якості інструкцій для керування даними. Стандарт SQL, крім того, вміщує функції для визначення зміни, перевірки і захисту даних.

Можна застосовувати:

В інтерективному режимі: SQL-транслятор-код

Застосування в прикладній програмі:базова мова+ SQL – препроцесор – базова мова+виклики функцій – компілятор базової мови – код

Приклади запитів:

  • Щоб отримати інформацію ,яка міститься в бд використовується запит SELECT.

'select * from city where cc in (select cc from country where cn=:n1)');

<вибрати з city , де cc знаходиться у множині , а саме – вибрати cc з country ,де cn=:n1>

  • Запит INSERT використовується для створення нового рядку даних.для оновлення вже існуючих даних або порожніх полей рядкутреба використовувати запит UPDATE.

INSERT INTO table_name (column1, column2, column3)

VALUES (‘data1’, ‘data2’, ‘data3’);

Запрос UPDATE и условие WHERE

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

UPDATE table_name SET column1 = ‘data1’, column2 = ‘data2’

WHERE column3 = ‘data3’;

  • Будьте обережні! Запит DELETE знищує цілі рядки.Запит DELETE повністю знищує рядок з бд.Якщо ві бажаете видалити 1 єдине поле ,тоді необхідно використовувати запит UPDATE та встановити для цього поля значення,яке буду аналогом NULL у вашій програмі.Запит DELETE неоюхідно обмежувати умовою WHERE,у іншому вииадку ві можете втратити весь вміст таблиці..

DELETE FROM table_name WHERE column1 = ‘data1’;

Запит – певна операція над відношеннями, результатом якої є також певне відношення. Мова запитів – це штучна мова для опису запитів, організації пошуку в БД. Структурована мова записів SQL – це непроцедурна мова, яка базується на реляційному обчисленні кортежів. Вона не має команд для відображення інф-ї, а також команд управління, у цій мові не оголош змінні.

Існує два варіанти мови SQL – інтерактивний і вбудований. Інтерактивний SQL використовується для виконання дій безпосередньо у БД з метою отримання необхідного результату. Вбудований SQL складається з команд SQL, які включені у програму, написану на будь-якій іншій мові програмування. Мова SQL складається з трьох категорій операторів:команд мови визначення (опису) даних (DDL),

команд мови маніпулювання даними (DML),

команд мови запитів (DQL).

Основні елементи мови SQL:

Будь-який запит складається з речень:

SELECT – визначається набором стовпців результуючого набору даних

FROM – імена таблиць джерел інформації

WHERE – виконується фільтрація рядків об’єкту у відповідності з заданими вимогами

GROUP BY – утворюються групи рядків, які мають одне й теж значення у вказаному стовпчику

HAVING – задає умову, яка накладається на групи рядків набору данних

UNION – дозволяє об’єднати результати виконання декількох запитів (ці результати повинні мати однакові атрибути)

ORDER BY – дозволяє відсортувати результуючий набір даних за вказаним полем або групою полів

EXISTS-перетин

DISTINCT- проекція

Порядок речень і фраз в операторі SELECT не може бути змінений. Тільки вирази SELECT і FROM є обов’язковими, всі інші речення і фрази можуть не застосовуватись. Результатом дії оператора SELECT є таблиця.

Прості запити стосуються однієї таблиці, складні-декількох.

Викладач (Teacher) Спеціальність (Speciality)

Дисципліна

Прізвище викладача

NS

ST

Дисципліна

К-сть годин

NS

VH


  • Визначити всі дисципліни, який викладає щербина

SELECT NS

FROM Teacher

WHERE ST='Щербина'

  • Проекція. Визначити прізвища всіх викладачів

SELECT ST

FROM Teacher

SELECT DISTINCT ST (не включає дубльовані рядки)

FROM Teacher

  • Операція об’єднання. Визначити назви всіх дисциплін, які зустрічаються 1-му і 2-му відношенні.

SELECT NS

FROM Teacher

Union

SELECT NS

FROM Speciality

  • Перетин. Визначити назви всіх дисциплін, які одночасно зустрічаються і в 1-му і 2-му відношенні.

SELECT NS

FROM Teacher

(SELECT NS

FROM Speciality

WHERE Teacher . NS = Speciality. NS)

  • Різниця. Визначити назви всіх дисциплін, які зустрічаються в 1-му і не зустрічаються в 2-му відношенні

SELECT NS

FROM Teacher

WHERE NOT EXISTS

(SELECT NS

FROM Speciality

WHERE Teacher . NS = NS)

  • З’єднання. Визначити назви дисциплін і прізвищ викладачів, для яких назва дисципліни зустрічаються і в 1-му і 2-му відношенні.

SELECT Teacher*

FROM Teacher, Speciality

WHERE Teacher . NS = Speciality. NS)