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

Функції sql:

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

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

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

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

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

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

Роль sql

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

Ядро бази даних – це серцевина СУБД. Воно відповідає за фізичне структурування даних, а також запис їх на диск та зчитування з диску. Ядро сприймає SQL-запити від інших компонентів СУБД. SQL використовує самі різні функції, зокрема: 1) SQL-мова інтерактивних запитів; 2) SQL-мова програмування бази даних; 3) SQL-мова адміністрування бази даних. Адміністратор бази даних використовує SQL для визначення структури бази даних та управління доступом до даних; 4) SQL – це мова створення клієнт-серверних програм; 5) SQL – це мова доступу до даних в Internet; 6) SQL – це мова розосереджених баз даних, тобто SQL дозволяє розподілити дані між різними обчислювальними системами і зв’язати відповідне програмне забезпечення; 7) SQL – мова шлюзів баз даних.

Переваги sql:

  1. незалежність від конкретних СУБД;

  2. міжплатформна переносимість;

  3. наявність стандартів;

  4. підтримка компаніями IBM та Microsoft;

  5. реляційна основа;

  6. високорівнева структура;

  7. можливість виконання інтерактивних запитів;

  8. забезпечення програмного доступу до бази даних;

  9. можливість різноманітного представлення даних;

  10. повноцінність, як мови опрацьовування баз даних;

  11. можливість динамічного визначення даних;

  12. підтримка архітектури клієнт-сервер;

  13. підтримка корпоративних прикладних програм;

  14. розширюваність та підтримка об’єктно-орієнтованого програмування;

  15. можливість доступу до даних в Internet;

  16. інтеграція з мовою Java (протокол JDBC);

  17. промислова інфраструктура.

  1. Синтаксис sql.

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

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

Речення. Будь-яка команда SQL включає не менш одну пропозицію. В найзагальнішому випадку всяка пропозиція SQL – це фрагмент команди SQL, який починається з якого-небудь ключового слова, є обов’язковим або необов’язковим і повинен бути записаний в певному порядку. В даному прикладі ми маємо чотири пропозиції, а саме: SELECT, FROM, WHERE, ОRDER.

Ключові слова. Довільне ключове слово, іноді зване зарезервованим, – це таке слово, яке в мові SQL має певне значення і застосування якого в SQL строго регламентовано. Слід мати на увазі, що використовування будь-якого ключового слова зовні контексту (наприклад, як ідентифікатора) буде вважатися помилкою. В 9таб. 1.1 перераховані ключові слова SQL, а в таб. 1.2 – потенційні слова SQL (які поки не є офіційно зарезервованими, але одного разу можуть ними стати).

Ідентифікатори. Довільний ідентифікатор – це таке слово, яке розробник бази даних застосовує для того, щоб іменувати об’єкти довільної бази даних, у тому числі таблиці, стовпці, псевдо імена (псевдоніми) і представлення. Ідентифікатор не може бути ключовим словом, і його довжина не може перевищувати 128 знаків. Знаком в SQL може бути будь-який символ алфавіту, включаючи символи латинського алфавіту і латинські ідеограми. В нашому прикладі іменами, зокрема, є au_fname, au_lname, authors і state.

Завершальна крапка з комою. Запис кожної команди SQL повинен закінчуватися крапкою з комою.

Приклад команди SQL:

--Retrieve authors from New York

SELECT au_fname, au_lname

FROM authors

WHERE state = 'Lviv'

ORDER BY au_lname;

Таблиця 1.1. Ключові слова SQL

ABSOLUTE

COMMIT

ELSE

INSERT

Null

ACTION

CONNECT

END

INT

ONLY

ADD

CONNECTION

END-EXEC

INTEGER

OPEN

ALL

CONSTRAINT

ESCAPE

INTERSECT

OPTION

ALLOCATE

CONSTRAINTS

EXCEPT

INTERVAL

OR

ALTER

CONTINUE

EXCEPTION

INTO

ORDER

AND

CONVERT

EXEC

IS

OUTER

ANY

CORRESPONDING

EXECUTE

ISOLATION

OUTPUT

ARE

COUNT

EXISTS

JOIN

OVERLAPS

AS

CREATE

EXTERNAL

KEY

PAD

ASC

CROSS

EXTRACT

LANGUAGE

PARTIAL

ASSERTION

CURRENT

FALSE

LAST

POSITION

AT

CURRENT DATE

FETCH

LEADING

PRECISION

AUTHORIZATION

CURRENT TIME

FIRST

LEFT

PREPARE

AVG

CURRENTJTIMESTAMP

FLOAT

LEVEL

PRESERVE

BEGIN

CURRENTJJSER

FOR

LIKE

PRIMARY

BETWEEN

CURSOR

FOREIGN

LOCAL

PRIOR

BIT

DATE

FOUND

LOWER

PRIVILEGES

BIT LENGTH

DAY

FROM

MATCH

PROCEDURE

BOTH

DEALLOCATE

FULL

MAX

PUBLIC

DEC

GET

MIN

READ

CASCADE

DECIMAL

GLOBAL

MINUTE

REAL

CASCADED

DECLARE

GO

MODULE

REFERENCES

CASE

DEFAULT

GOTO

MONTH

RELATIVE

CAST

DEFERRABLE

GRANT

NAMES

RESTRICT

CATALOG

DEFERRED

GROUP

NATIONAL

REVOKE

CHAR

DELETE

HAVING

NATURAL

RIGHT

CHARACTER

DESC

HOUR

NCHAR

ROLLBACK

CHARJ.ENGTH

DESCRIBE

IDENTITY

NEXT

ROWS

CHARACTER LENGTH

DESCRIPTOR

IMMEDIATE

NO

SCHEMA

CHECK

DIAGNOSTICS

IN

NOT

SCROLL

CLOSE

DISCONNECT

INDICATOR

NULL

SECOND

COALESCE

DISTINCT

INITIALLY

NULLIF

SECTION

COLLATE

DOMAIN

INNER

NUMERIC

SELECT

COLLATION

DOUBLE

INPUT

OCTET LENGTH

SESSION

COLUMN

DROP

INSENSITIVE

SESSIONJJSER

SET

SUM

TRAILING

UPPER

WHENEVER

SIZE

SYSTEM USER

TRANSACTION

USAGE

WHERE

SMALLINT

TABLE

TRANSLATE

USER

WITH

SOME

TEMPORARY

TRANSLATION

USING

WORK

SPACE

THEN

TRIM

VALUE

WRITE

SQL

TIME

TRUE

VALUES

YEAR

SQLCODE

TIMESTAMP

UNION

VARCHAR

ZONE

SQLERROR

TIMEZONEJHOUR

UNIQUE

VARYING

SQLSTATE

TIMEZONE MINUTE

UNKNOWN

VIEW

SUBSTRING

TO

UPDATE

WHEN

Таблиця 1.2. Потенційні ключові слова SQL

AFTER

EQUALS

OLD

RETURN

TEST

ALIAS

GENERAL

OPERATION

RETURNS

THERE

ASYNC

IF

OPERATORS

ROLE

TRIGGER

BEFORE

IGNORE

OTHERS

ROUTINE

TYPE

BOOLEAN

LEAVE

PARAMETERS

ROW

UNDER

BREADTH

LESS

PENDANT

SAVEPOINT

VARIABLE

COMPLETION

LIMIT

PREORDER

SEARCH

VIRTUAL

CALL

LOOP

PRIVATE

SENSITIVE

VISIBLE

CYCLE

MODIFY

PROTECTED

SEQUENCE

WAIT

DATA

NEW

RECURSIVE

SIGNAL

WHILE

DEPTH

NONE

REF

SIMILAR

WITHOUT

DICTIONARY

OBJECT

REFERENCING

SQLEXCEPTION

EACH

OFF

REPLACE

SQLWARNING

ELSEIF

OID

RESIGNAL

STRUCTURE

SQL - це мова з вільним форматом речень. Будь-яка його команда може:

• бути надрукована як у верхньому, так і в нижньому регістрі (наприклад, ключові слова SELECT і select вважаються ідентичними);

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

• бути надрукована на одному рядку з будь-якими іншими командами;

• починатися на будь-якій позиції горизонтальної розмітки екрану/листа.

Проте вам слід дотримуватися певного стилю написання команд SQL, наприклад використовувати верхній регістр для ключових слів і нижній регістр для ідентифікаторів. Крім того, можна починати кожне речення з нового рядка з відповідним відступом. Питання стилю не можна ігнорувати, тому що його відсутність приводить до наступних помилок:

  • неправильна орфографія при написанні якого-небудь ідентифікатора або команди;

  • відсутність завершальної крапки з комою;

  • невірний порядок розміщення речень в тілі команди;

  • відсутність лапок у стрічкових констант (літералів) і констант дати і часу;

  • наявність лапок у цифровых констант;

  • невірне сумісне застосування імен таблиць і імен;

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

Оскільки вживати ключові слова як ідентифікатори заборонено, ви цілком можете вбудовувати будь-які ключові слова всередину ідентифікаторів як складову частину слова. Наприклад: group і max не можна використовувати як ідентифікатор, а ідентифікатор groups і max_price цілком допустимі.

select au fname,

AU_LNAME

FROM

authors WhErE state = 'NY' order

bY AU_lname;

Команда, приведена в прикладі еквівалентна попередній команді.

Застосовувати пропуски в іменах бази даних не рекомендується. Але якщо дуже хочеться, можна вставити пропуски в будь-який ідентифікатор, тоді його треба буде укласти в одинарні лапки, от так:' last name'. Проте підкреслимо ще раз: краще застосовувати не пропуски, а знак підкреслення (last name) або ідентифікатор, набраний заголовними і прописними буквами (LastName).

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

Комерційні СУБД накладають власні, обмеження на довжину ідентифікатора і на алфавіт. Тому має сенс проаналізувати документацію по вашій СУБД, використовуючи ключі пошуку „ідентифікатори” і „імена”.

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

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