Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fondovi-lekcii.doc
Скачиваний:
20
Добавлен:
10.11.2018
Размер:
4.09 Mб
Скачать

ЗМІСТ

ЗМІСТ 2

Вступ 3

МОДУЛЬ 1 5

Тема 1. Вступ до SQL. Синтаксис SQL. Типи даних. 5

Тема 2. Створення баз даних 19

Тема 3. Створення таблиць 21

Тема 4. Вставка стрічок з допомогою оператора INSERT. Вилучення стрічок з допомогою оператора DELETE, редагування стрічки з допомогою команди UPDATE. 24

Тема 5. Оператор SELECT 35

Тема 6. Комбінування умов з допомогою операторів AND, OR, NOT. Порівняння по шаблону. Порівняння з діапазоном. Сортування стрічок з допомогою речення ORDER BY. 39

Тема 7. Створення псевдонімів. З’єднання таблиці із собою. Вибір даних з кількох таблиць 45

Тема 8. Введення обмежень в базах даних 59

Тема 9. Використання збережуваних процедур в базах даних. Використання генераторів ключів у базах даних в InterBase. Використання тригерів у базах даних. 65

Тема 10. Безпека в базах даних 78

МОДУЛЬ 2 82

Тема 11. Оператор EXISTS. Сумування і групування даних. 82

Тема 12. З’єднання з базою даних. Використання збережуваних процедур в Delphi 99

Тема 13. Використання механізму транзакцій компонента Database. 104

Тема 14. Сервер баз даних InterBase і компоненти InterBase Express. 107

Тема 15. Виконання запитів за допомогою компонента TIBDataSet 110

Тема 16. Підпорядковані запити в таблицях 114

Література 116

Вступ

Багато хто вважає, що поєднання трьох букв S-Q-L є абревіатура, яка розшифровується як Structured Query Language (Структурована мова запитів). Так от, SQL означає SQL, і більш нічого. Чому? Так тому, що так прийнято в ANSI. Офіційна назва SQL – Database Language SQL (Мова баз даних SQL). Особливу увагу на дану помилку звертають лише тому, що вона створює помилки. Якщо програмісти, початківці, будуть вважати, що SQL і справді означає “мова структурованих запитів”, це стане їм у поганій пригоді, оскільки саме ця мова є найгіршою зі всіх можливих описів канонічного SQL, хоча живучість даного опису здається академікам і професіоналам забавною із наступних причин:

  • SQL не структурована мова, оскільки його не можна розбити на блоки або процедури;

  • SQL не обмежується тільки запитами, оскільки в ньому є багато інших команд крім SELECT;

  • SQL не є повною мовою за визначенням Тюрінга.

SQL нікому не належить. Це означає, що на права власності ніхто не претендує. SQL – це відкритий стандарт, що розроблявся одним із комітетів в Американському національному інституті стандартизації (ANSI). У свою чергу, ANSI – це не приватна фірма, а орган уряду США, покликаний сприяти розвитку національних стандартів. Більше того, SQL є не тільки американським, але і міжнародним стандартом ISO/IEC 9075:1992, оскільки в 1992 році був включений в число стандартів Міжнародної організації по стандартизації (ISO). В цьому зв'язку хотілося б зазначити, що справжнє видання засновано на стандарті ANSI SQL 1992. Таким чином, коли ви зустрінете позначення ANSI SQL, SQL-92 або просто SQL, їх слід розглядати як синоніми, якщо додатково не вказано нічого іншого. Положення дещо ускладнюється тим, що з'явився стандарт ANSI SQL-99. Проте на нього поки можна не звертати уваги, оскільки до його впровадження пройде ще декілька років і він буде сумісний із стандартом SQL-92. Тобто, програма, що відповідає стандарту SQL-92, буде працювати під будь-якою СУБД, що відповідає стандарту SQL-99.

Слід зазначити, що всі постачальники СУБД по-різному вносять свої доповнення в канонічний ANSI SQL, щоб зробити його більш могутнім. Частіше всього такими розширеннями є додаткові команди, ключові слова, функції, типи даних і конструкції управляючої логіки. Іноді, правда, цих розширень виявляється дуже багато. Зокрема, Oracle і Microsoft вже внесли так багато доповнень, що з'явилися PL/ SQL і Transact-SQL – самостійні повноправні мови, а не підмножини SQL. Проте звичайно розширення одного постачальника несумісні з розширеннями іншого.

Хронологія розвитку SQL:

1970 р. – Кодд опублікував статтю про реляційну модель.

1974 р. – мова SEQUEL.

1979 р. – реляційна СУБД Oracle.

1986 р. – організація ANSI прийняла SQL1.

1987 р. – організація ISO прийняла SQL1.

1989 р. – SQL1 (SQL-89).

1992 р. – ANSI впровадила SQL2 (SQL-92).

1992 р. – SQL3.

2002 р. – IBM створила СУБД DB2.

Модуль 1 Тема 1. Вступ до sql. Синтаксис sql. Типи даних.

  1. Вступ до SQL.

  2. Синтаксис SQL.

  3. Типи даних.

1. Вступ до sql.

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

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

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

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

Будучи формальною мовою, SQL, як інша мова цього типу, має свої синтаксис і семантику. Синтаксис включає власне слова і символи, а також правила, по яких ці слова і символи можна використовувати при створенні команд і програм. Семантика допомагає з'ясувати реальне значення, значення будь-якої синтаксично правильної команди. Ви цілком можете написати на SQL яку-небудь команду, відповідну синтаксису мови, яка, проте, буде виражати невірне значення (тобто буде правильною синтаксично, але невірною семантично).

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

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

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

Якщо ви включаєте команди SQL як елементи в які-небудь програми, написані на процедурних мовах, вважається, що ви застосовуєте так званий вбудований SQL, а ті процедурні мови, на яких написані ці більш великі або, точніше, несучі програми, називають базовими. Такою мовою на практиці частіше всього виявляється будь-яка мова програмування загального призначення, зокрема С, Java або COBOL, або яка-небудь мова сценаріїв, наприклад Perl, PHP або Python.

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

Всі команди SQL прийнято ділити на дві основні групи - мова маніпулювання даними (DML) і мова визначення даних (DDL).

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

Команди групи DDL створюють, модифікують і знищують такі об'єкти бази даних, як таблиці, індекси і погляди.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]