Мова SQL — типи даних та функції



Розвиток і загальна характеристика мови

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

Мова 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 за функціями можна поділити на наступні групи:

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, UTF, тощо.

SQL визначає два первинних символьних типи: із строго заданою кількістю символів (character) та змінною кількістю символів (character varying).

Для визначення даних символьного типу використовується наступний синтаксис:

CHARACTER VARYING (<довжина>) | VARCHAR (<довжина>)

та

CHARACTER (<довжина>) | CHAR (<довжина>)

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

Крім цього, у конкретних реалізаціях SQL існують типи для збереження текстових даних “необмеженої” (визначається архітектурою ЕОМ та особливістю ОС) довжини, наприклад MEMO чи TEXT . 

Бітовий тип даних

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

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

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

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

Синтаксис:

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

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

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

{ FLOAT | REAL } [(<точність>)]

DOUBLE PRECISION

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

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

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

{ DATE | TIME | 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; просмотров: 20; Мы поможем в написании вашей работы!

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






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