Розвиток туризму

Автор: Пользователь скрыл имя, 04 Ноября 2012 в 20:11, реферат

Описание работы

SQL: мова структурованих запитів
Мова запитів SQL (Structured English Query Language — Структурована англійська мова запитів) була створена фірмою ІВМ у межах роботи над проектом побудови системи управління інфляційними базами даних на початку 70-х років XX ст.
Робота щодо стандартизації, яка здійснювалася ANSI (Національним інститутом стандартизації США), призвела до створ

Работа содержит 1 файл

Документ Microsoft Office Word (4).docx

— 184.55 Кб (Скачать)

Самостійна робота №9

SQL: мова структурованих запитів

Мова  запитів SQL (Structured English Query Language — Структурована англійська мова запитів) була створена фірмою ІВМ у межах роботи над проектом побудови системи управління інфляційними базами даних на початку 70-х років XX ст.

Робота  щодо стандартизації, яка здійснювалася  ANSI (Національним інститутом стандартизації США), призвела до створення de facto стандарту запитів для реляційних БД. Немає "універсального" SQL, існує загальний знаменник. Ядром існуючого нині стандарту SQL-86, який часто називають SQL-2 чи SQL-92, є функції, що реалізовані практично в усіх відомих комерційних варіантах мови.

Крім  стандарту SQL-86, існує комерційний стандарт мови SQL, який розроблений консорціумом виробників баз даних — SQL Access Group. Варіант мови, створений цією групою, використовується більшістю систем і дозволяє їм "розуміти" одна одну. Для всіх основних варіантів мови SQL було розроблено стандартний інтерфейс мови CLI (Common Language Interface). Фірмою Microsoft цей інтерфейс було формалізовано і він отримав назву ODBC (Open Data Basse Connectiviti — відкритий доступ до даних). ODBC — це драйвер,   що забезпечує інтерфейс доступу до даних, які зберігаються, під управлінням різних СКБД. За допомогою ODBC вирішується проблема розуміння СКБД одна одною.

Крім  SQL, поширеною є також мова запитів QBE (Query Bу Example) — це реалізація запитів за зразком у вигляді таблиці, Для визначення запиту до БД користувач повинен заповнити таблицю QBE, яка надається системою, і визначити в ній критерії пошуку, вибору та перетворення даних.

Ядром мови SQL є інструкція Select (Що вибирати?). Вона використовується для відбору стовпчиків із реляційних таблиць і містить три основні речення: from  (звідки вибирати?), where (За якою умовою?), order by (Як сортувати?).

При формуванні запиту на SQL обов’язковим у використанні є Select і from. Програмний модуль закінчується знаком „;” .

Розглянемо  деякі конструкції мови SQL.

SELECT <перелік атрибутів>

FROM <ім'я залежності>

WHERE <умова> [і\ або <умова> ]*.

Приймемо  деякі обмеження:

— припустимо наявність лише однієї таблиці / залежності в БД1,

— припустимо, що атрибути SELECT (вибрати) є підсукупністю атрибутів у схемі "залежність — ім'я" у реченні FROM (з);

— згідно з домовленістю, астерікс (*) є неофіційним загальним знаком оператора, що означає нуль або більше.

Приклад 1

SELECT*

FROM КАДРИ

Одержимо (маючи БД КАДРИ):

 

 

 

Приклад 2


 

SELECT ім'я, прізвище

FROM КАДРИ

 

 

Для наступного оператора необхідно зробити  перелік лише тих рядків, які задовольняють  умову.

SELECT <атрибут> AS <назва колонки>

FROM <таблиця>

Для наступного оператора необхідно зробити  перелік лише тих рядків, які задовольняють  умову 

 

SELECT <перелік атрибутів> (AS) | *>

FROM <таблиця>

WHERE <текст порівняння: <, <=, <>, =...>

 

Приклад 4

SELECT*

FROM КАДРИ

WHERE табельний номер <2015>

Результатом виконання запиту буде таблиця:

 

Тепер розглянемо математичні вирази.

SELECT табельний номер, прізвище, ім'я, оклад/25

FROM КАДРИ

Одержимо: КАДРИ

Ми розраховували  середньоденні заробітки, враховуючі, що місяць має 25 робочих днів. Зауважимо, що стовпець із розрахованими значеннями середньоденних заробітків не матиме назви. Щоб назвати новостворений  стовпець, необхідно використати  таку конструкцію запиту:

SELECT табельний номер, прізвище, ім'я, оклад/25 AS ceредьоденний заробіток

FROM КАДРИ

WHERE оклад /25 < 30,00

 

Результатом виконання запиту буде таблиця:

 

Треба зауважити, що не можна використовувати ім'я  змінної в окремому реченні.

Запит  входу (in) можна сконструювати так:

SELECT прізвище

FROM КАДРИ

WHERE Рік народження IN ('1941','1942')

Одержимо  такий результат:

Мовою SQL можна сконструювати запит з операціями агрегування, до яких відносять COUNT (підрахунок), Мах, Міn, Sum (сума)... для таблиць або для деяких підгруп таблиці.

Конструкція запиту з операціями агрегування  така:

SELECT [операція агрегування] (<атрибут>)

FROM <таблиці>

WHERE ** немає груп

Зауважимо, що

COUNT (атрибут) — обчислює кількість рядків, що містять, (атрибут)

COUNT (*) — обчислює всі рядки (включаючи нулі).

Приклад 5

SELECT SUM (Оклад)

FROM КАДРИ

Одержимо: суму всіх окладів по таблиці

Але не можна  одночасно вибрати агрегати та одиничні значення. Наступна конструкція запиту є неприпустимою:

SELECT табельний номер, прізвище, SUM (Оклад)

FROM КАДРИ

 

Важливою  мовою структурованих запитів SQL є конструкція GROUP BY (групувати за):

SELECT <перелік [атрибут | операція агрегування (<атрибут>)]>

FROM <перел0ік таблиці (ь)>

[WHERE<yмови>]

GROUP BY <перелік атрибутів>

 

 

Приклад 6

Нехай є  база даних ПОСТАЧАЛЬНИКИ:

Надано  запит для агрегування за групами "Назва постачальника, назва товару" з підрахунком суми поставки за кожною назвою товару.

SELECT назва постачальника, назва товару, SUM (Сума поставки)

FROM постачальники

GROUP BY назва постачальника, назва товару

Результат запиту буде таким:

 

І, нарешті, розглянемо конструкцію запиту HAVING (маємо). Загалом такий запит мовою SQL можна записати так:

SELECT <перелік [атрибут | операція агрегування (<атрибут>)]>

FROM <перелік таблиці (ь)>

[WHERE <умови>]

GROUP BY <перелік атрибутів>

HAVING <умову за групами>

 

Приклад 7

Необхідно одержати інформацію про поставки товарів  однієї назви на суму більшу ніж 3000,00 грн у розрізі постачальників (крім постачальника ЗАТ "Карпати").

Запит до бази даних ПОСТАЧАЛЬНИКИ буде таким:

 

SELECT назва постачальника, назва товару, SUM (Сума поставки)

FROM ПОСТАЧАЛЬНИКИ

GROUP BY назва постачальника, назва товару

HAVING назва постачальника <> "ЗАТ Карпати"

AND SUM (сума поставки) > 3000,00

Результат запиту буде таким:

Абсолютно неправильною буде конструкція запиту типу:

SELECT назва постачальника, назва товару, SUM (Сума па ставки)

FROM ПОСТАЧАЛЬНИКИ

GROUP BY назва постачальника, назва товару

HAVING дата поставки <> '8.11.ХХ',

 

оскільки, як уже зазначалося раніше, не можна  використовувати ім'я змінної  в окремому реченні.

Наведені  конструкції запитів не охоплюють  усього діапазону можливостей мови структурованих запитів SQL, які є значно потужнішими і ширшими, але формують уявлення про SQL як універсальний інструмент спрощення процедур пошуку даних у БД.




Информация о работе Розвиток туризму