Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет вказівки до лаб з SQL.doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
811.01 Кб
Скачать

2.2. Відмінність sql від процедурних мов програмування

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

Це означає наступне: як вхідна інформація для сформульованого мовою SQL запиту до бази даних використовується множина кортежів-записів однієї або декількох таблиць-відношень. У результаті виконання запиту також утворюється множина кортежів результуючої таблиці-відношення. Інакше кажучи, в SQL результатом будь-якої операції над відношеннями також є відношення. Запит SQL задає не процедуру, тобто послідовність дій, необхідних для одержання результату, а умови, яким повинні задовольняти кортежі результуючого відношення, сформульовані в термінах вхідного (або вхідних) відношень.

2.3. Інтерактивний і вбудований sql

Існують і використовуються дві форми мови SQL: інтерактивний SQL і вбудований SQL.

Інтерактивний SQL використовується для завдання SQL-запитів користувачем і одержання результату в інтерактивному режимі.

Вбудований SQL складається з команд SQL, вбудованих усередину програм, звичайно написаних на якійсь іншій мові (Паскаль, С, C++ і ін. ). Це робить програми, що використовують такі мови, могутнішими, гнучкими й ефективними, забезпечуючи їхнє застосування для роботи з даними, що зберігаються в реляційних базах. При цьому, однак, потрібні додаткові засоби інтерфейсу SQL з мовою, у який він вбудовується.

2.4. Складові частини sql

І інтерактивний, і вбудований SQL підрозділяються на наступні складові частини.

Мова визначення даних — DDL (Data Definition Language) — надає можливість створення, зміни й видалення різних об'єктів бази даних (таблиць, індексів, користувачів і т.п.).

У число додаткових функцій DDL можуть бути включені й засоби обмеження цілісності даних, визначення порядку структур їхнього зберігання, опису елементів фізичного рівня зберігання даних.

Мова обробки даних - DML (Data Manipulation Language) - надає можливість вибірки інформації з бази даних і її перетворення.

Проте це не дві різні мови, а компоненти єдиного SQL.

2.5. Типи даних sql

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

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

2.5.1. Тип даних «рядок символів»

Стандарт підтримує тільки один тип подання тексту - CHARACTER (CHAR). Цей тип даних являє собою символьні рядки фіксованої довжини. Його синтаксис має вигляд:

CHARACTER [(довжина)] або

CHAR [(довжина)].

Текстові значення поля таблиці, визначеного як тип CHAR, мають фіксовану довжину, що визначається параметром «довжина». Цей параметр може приймати значення від 1 до 255, тобто рядок може містити до 255 символів. Якщо в текстовій константі, що вводиться в поле, фактичне число символів менше числа, визначеного параметром «довжина», то ця константа автоматично доповнюється праворуч пробілами до заданого числа символів.

Деякі реалізації мови SQL підтримують як тип дані рядки змінної довжини. Цей тип може позначатися ключовими словами VARCHAR (j, CHARACTER VARYING або CHAR VARYING (j . Він описує текстовий рядок, що може мати довільну довжину до визначеного конкретною реалізацією SQL максимуму . На відміну від типу CHAR у цьому випадку при введенні текстової константи, фактична довжина якої менше заданої, не створюється її доповнення пробілами до заданого максимального значення.

Константи, що мають тип CHARACTER і VARCHAR, у виразах SQL записуються в одиночних лапках, наприклад, 'текст'.

Наступні вирази еквівалентні:

VARCHAR [ (довжина) ] , CHAR VARYING [ (довжина) ] , CHARACTER VARYING [ (довжина) ] .

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

У порівнянні з типом CHAR тип даних VARCHAR дозволяє більш ощадливо використовувати пам'ять, виділену для зберігання текстових значень, і виявляється більш зручним при виконанні операцій, зв'язаних з порівнянням текстових констант.