Особливості та переваги мови SQL



Лекції

 

 

Мова запитів SQL

 

 

К.п.н. доц. Дрінь Б.М.

 

Зміст

1. Загальна характеристика. 2

2. Особливості та переваги мови SQL.. 4

3. Групи команд мови SQL.. 6

4. Стандарт мови SQL.. 8

Типи даних SQL.. 8

Операції та агрегатні функції. 10

Вибірка даних. 12

Оператор SELECT. 12

Операція JOIN.. 19

Вкладені підзапити. 20

Операція UNION.. 21

Оператор SELECT…INTO.. 22

Маніпулювання даними. 23

Оператор INSERT INTO.. 23

Оператор UPDATE.. 24

Оператор DELETE.. 25

Створення та знищення об’єктів БД.. 26

Створення бази даних. 26

Оператор CREATE TABLE.. 27

Оператор ALTER TABLE.. 29

Оператор DROP. 30

 

 

Загальна характеристика

Будь-яка мова роботи з реляційними базами даних повинна надавати користувачеві наступні можливості:

· створювати бази даних у вигляді таблиць з повним описом їх структури;

· виконувати основні операції маніпулювання даними, зокрема, вставку, модифікацію і видалення даних з таблиць;

· виконувати прості і складні запити, що здійснюють перетворення даних.

Крім того, мова роботи з базами даних повинна вирішувати всі вказані вище завдання при мінімальних зусиллях з боку користувача та мати по можливості досить просту структуру і синтаксис. Вона має бути універсальною, тобто відповідати деякому визнаному стандарту, що дозволить використовувати один і той же синтаксис і структуру команд при переході від однієї СУБД до іншої. Мова яка задовольняє практично всім цим вимогам є мова SQL (Structured Query Language – мова структурованих запитів).

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

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

Мова SQL використовується в інших стандартах і навіть робить вплив на їх розробку як інструмент визначення (наприклад, стандарт Remote Data Access, RDA). Створення мови сприяло не лише виробленню необхідних теоретичних основ, але і підготовці успішно реалізованих технічних рішень. Це особливо справедливо відносно оптимізації запитів, методів розподілу даних і реалізації засобів захисту. Почали з’являтися спеціалізовані реалізації мови, призначені для нових ринків: системи управління обробкою транзакцій (On-Line Transaction Processing, OLTP) і системи оперативної аналітичної обробки або системи підтримки прийняття рішень (On-Line Analytical Processing, OLAP). Вже відомі плани подальших розширень стандарту, що включають підтримку розподіленої обробки, об’єктно-орієнтованого програмування, розширень користувачів і мультимедіа.

SQL– це універсальна прикладна мова, яка застосовується для створення та зміни даних, а також керування ними у реляційних БД.

На початку 70-х років двадцятого століття працівниками компанії IBM була розроблена експериментальна СУБД «System R», основою якої була мова SEQUL (Structured English Query Language – структурована англійська мова запитів). Мова SEQUL з часом перейменована у SQL. У 1986 році був прийнятий ANSI (American National Standards Institute) перший стандарт мови SQL який називався «ANSI X3.115-1986». Метою розробки було створення простої, не процедурної мови, якою міг би скористатись будь-який користувач, що немає навиків програмування. Перша версія стандарту мови SQL-86 була прийнята ANSI і ISO (Міжнародна Організація Стандартів) і затверджена у 1987 році. У 1989 році вийшов стандарт SQL-89, де були внесені незначні зміни у порівнянні з попереднім. Із розвитком мови у 1992 році прийнято новий розширений стандарт зі скороченою назвою SQL-92 або SQL-2. У 1999 році вийшов стандарт SQL-99 (SQL-3), де додані регулярні вирази, рекурсивні запити, тригери, деякі об’єктно-орієнтовані нововведення. У 2003 році в SQL-99 (SQL-3) додані XML - залежні нововведення.

На даний час мова SQL реалізована трьома способами:

· інтерактивний або прямий виклик (набір операторів SQL передається безпосередньо програмі управління базами даних; ця програма відповідає на запит, відображаючи результат, якщо це можливо);

· модульність мов (програмістом створюється файл, що складається з операторів SQL, які можуть бути виконані додатком);

· вмонтований або вкладений SQL (команди SQL генеруються прикладною програмою або вмонтовуються у програмний код, що робить ці програми більш ефективними; такий варіант реалізації SQL використаний в СУБД ACCESS).

 

Особливості та переваги мови SQL

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

Основні переваги мови SQL:

· стандартність – використання мови SQL в програмах стандартизованих міжнародними організаціями;

· незалежність від конкретних СУБД – всі поширені СУБД використовують SQL, оскільки реляційну базу даних можна перенести з однією СУБД на іншу з мінімальними доопрацюваннями;

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

· реляційна основа мови – SQL є мовою реляційних БД;

· можливість створення інтерактивних запитів – SQL забезпечує користувачам негайний доступ до даних, при цьому в інтерактивному режимі можна отримати результат запиту за дуже короткий час без написання складної програми;

· можливість програмного доступу до БД – мову SQL легко використовувати в програмах, яким необхідно звертатися до баз даних. Одні і ті ж оператори SQL використовуються як для інтерактивного, так і програмного доступу, тому частини програм, що містять звернення до БД, можна спочатку перевірити в інтерактивному режимі, а потім вбудовувати в програму;

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

· можливість динамічної зміни і розширення структури БД – мова SQL дозволяє маніпулювати структурою БД, тим самим забезпечуючи гнучкість з точки зору пристосованості БД до вимог предметної області, що змінюються;

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

Будь-яка мова роботи з базами даних повинна надавати користувачеві наступні можливості:

· створювати бази даних і таблиці з повним описом їх структури;

· виконувати основні операції маніпулювання даними, зокрема, вставку, модифікацію і видалення даних з таблиць;

· виконувати прості і складні запити, що здійснюють перетворення даних.

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

 

Групи команд мови SQL

Команди мови SQL за функціями можна поділити на наступні групи:

DQL (Data Query Language) – мова запиту даних, яка використовується для пошуку та вибору даних із БД та їх відображення (SELECT);

DDL (Data Definition Language) – мова опису даних, яка включає оператори, що описують структуру таблиць і режим відображення даних, команди для зміни структури таблиць, створення та вилучення індексів (CREATE TABLE, CREATE VIEW);

DML (Data Manipulation Language) – мова маніпулювання даними, команди якої дозволяють додавати та вилучати рядки з таблиць, вносити зміни значень полів (INSERT, DELETE, UPDATE);

TPL (Transaction Processing Language) – мова обробки транзакцій, що включає команди, які об’єднують декілька команд DML;

CCL (Cursor Control Language) – мова управління курсором, яка містить команди, що дозволяють виділити для обробки один рядок результатного набору записів;

DCL (Data Control Language) – мова управління даними, яка забезпечує виконання адміністративних функцій надання та відміни прав доступу до всієї бази, набору таблиць, спеціальним командам.

 

Стандарт мови SQL

Типи даних SQL

Дані – це сукупна інформація, що зберігається в базі даних у вигляді одного з декількох різних типів. За допомогою типів даних встановлюються основні правила для даних, що містяться в конкретному стовпці таблиці, у тому числі розмір пам’яті, що виділяється для них.

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

CHARACTER [VARYING][<довжина>] |
[CHAR | VARCHAR ] [<довжина>]

При визначенні стовпця із символьним типом даних параметр довжина застосовується для вказівки максимальної кількості символів, які можуть бути поміщені в даний стовпець (за замовчуванням набуває значення 1). Символьний рядок може бути визначений якщо має фіксовану або змінну (VARYING) довжину. Якщо рядок визначений із фіксованою довжиною значень, то при введенні в неї меншої кількості символів значення доповнюється до вказаної довжини пропусками, що додаються справа. Якщо рядок визначений із змінною довжиною значень, то при введенні в неї меншої кількості символів в базі даних будуть збережені тільки введені символи, що дозволить досягти певної економії зовнішньої пам’яті.

Бітовий тип даних використовується для визначення бітових рядків, тобто послідовності двійкових цифр (бітів), кожна з яких може мати значення або 0, або 1. Дані бітового типу визначаються за допомогою наступного формату:

BIT [VARYING][<довжина>]

Числові типи даних

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

NUMERIC[<точність>[,<масштаб>]]
| {DECIMAL | DEC}[ <точність> [,<масштаб>]]
| {INTEGER | INT} | SMALLINT

Типи NUMERIC і DECIMAL призначені для зберігання чисел в десятковому форматі. По замовчуванню довжина дробової частки дорівнює нулю, а точність, що приймається за умовчанням, залежить від реалізації. Тип INTEGER (INT) використовується для зберігання великих додатних або від’ємних цілих чисел. Тип SMALLINT – для зберігання невеликих додатних або від’ємних цілих чисел; в цьому випадку використання зовнішньої пам’яті істотно зменшується.

Тип дійсних чисел застосовується для опису даних, які не можна точно представити в комп’ютері, зокрема дійсних чисел. Дійсні числа або числа з плаваючою крапкою представляються в науковій нотації, при якій число записується за допомогою мантиси, помноженої на певний степінь десяти (порядок), наприклад: 10Е3, +5.2Е6, -0.2Е-4. Для визначення даних дійсного типу використовується формат:

FLOAT [<точність>] | REAL | DOUBLE PRECISION

Параметр точність задає кількість значущих цифр мантиси. Точність типів REAL і DOUBLE PRECISION залежить від конкретної реалізації.

Тип даних «дата/час»

Даний тип використовується для визначення часу з деякою встановленою точністю. Стандарт SQL підтримує наступний формат:

DATE | TIME [<точність>][WITH TIME ZONE]
 | TIMESTAMP [<точність>][WITH TIME ZONE]

Тип даних DATE використовується для зберігання календарних дат, що включають поля YEAR (рік), MONTH (місяць) і DAY (день). Тип даних TIME – для зберігання відміток часу, що включають поля HOUR (годинник), MINUTE (хвилини) і SECOND (секунди). Тип даних TIMESTAMP – для спільного зберігання дати і часу. Параметр точність задає кількість дробових десяткових знаків, що визначають точність збереження значення в полі SECOND. Якщо цей параметр опускається, за умовчанням його значення для стовпців типу TIME набуває рівним нулю (тобто зберігаються цілі секунди), тоді як для полів типу TIMESTAMP він приймається рівним 6 (тобто відмітки часу зберігаються з точністю до точністю до мілісекунд). Наявність ключового слова WITH TIME ZONE визначає використання полів TIMEZONE HOUR і TIMEZONE MINUTE, тим самим задаються година і хвилини зміщення зонального часу по відношенню до універсального координатного часу (час за Гринвічем). Дані типу INTERVAL використовуються для представлення періодів часу.


Дата добавления: 2022-01-22; просмотров: 25; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!