Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет icon

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет




НазваКонспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет
Сторінка5/19
Дата04.06.2013
Розмір1.62 Mb.
ТипКонспект
1   2   3   4   5   6   7   8   9   ...   19
^

2.3 Оператори SQL


Основу мови SQL становлять оператори, умовно розбиті на кілька груп за виконуваними функціями.

Можна виділити такі групи операторів (перераховані не всі оператори SQL):

^ Оператори DDL (Data Definition Language) - оператори визначення об'єктів БД:

  • CREATE SCHEMA - створити схему БД;

  • DROP SHEMA - видалити схему БД;

  • CREATE TABLE - створити таблицю;

  • ALTER TABLE - змінити таблицю;

  • DROP TABLE - видалити таблицю;

  • CREATE DOMAIN - створити домен;

  • ALTER DOMAIN - змінити домен;

  • DROP DOMAIN - видалити домен;

  • CREATE COLLATION - створити послідовність;

  • DROP COLLATION - видалити послідовність;

  • CREATE VIEW - створити подання;

  • DROP VIEW - видалити подання.

Оператори DML (Data Manipulation Language) - оператори маніпулювання даними:

  • SELECT - відібрати рядок із таблиць;

  • INSERT - додати рядок у таблицю;

  • UPDATE - змінити рядок у таблиці;

  • DELETE - видалити рядок у таблиці;

  • COMMIT - зафіксувати внесені зміни;

  • ROLLBACK - відкотити внесені зміни.

Оператори захисту й керування даними:

  • CREATE ASSERTION - створити обмеження;

  • DROP ASSERTION - видалити обмеження;

  • GRANT - надати привілею користувачеві або додатку на маніпулювання об'єктами;

  • REVOKE - скасувати привілею користувача або додатка.

Крім того, є групи операторів установки параметрів сеансу, одержання інформації про БД, оператори статичного SQL, оператори динамічного SQL.

Найбільш важливими для користувача є оператори маніпулювання даними (DML).

Приклади використання операторів маніпулювання даними

INSERT - вставка рядків у таблицю

^ Приклад. Вставка одного рядка в таблицю:

INSERT INTO

P (PNUM, PNAME)

VALUES (4, "Іванов");

Приклад. Вставка в таблицю декількох рядків, обраних з іншої таблиці (у таблицю TMP_TABLE уставляються дані про постачальників з таблиці P, що мають номери, більші 2):

INSERT INTO

TMP_TABLE (PNUM, PNAME)

SELECT PNUM, PNAME

FROM P

WHERE P.PNUM>2;

^ UPDATE - відновлення рядків у таблиці

Приклад. Відновлення декількох рядків у таблиці:

UPDATE P

SET PNAME = "Пушников"

WHERE P.PNUM = 1;

DELETE - видалення рядків у таблиці

Приклад. Видалення декількох рядків у таблиці:

DELETE FROM P

WHERE P.PNUM = 1;

^ Приклад. Видалення всіх рядків у таблиці:

DELETE FROM P;

Приклади використання оператора SELECT

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

Оператор SELECT завжди виконується над деякими таблицями, що входять у БД.

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

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

Відбір даних з однієї таблиці

Приклад. Вибрати всі дані з таблиці постачальників (ключові слова SELECTFROM…):

SELECT*

FROM P;

У результаті одержимо нову таблицю, що містить повну копію даних із вихідної таблиці P.

^ Приклад. Вибрати всі рядки з таблиці постачальників, що задовольняють деякій умові (ключове слово WHERE…):

SELECT*

FROM P

WHERE P...PNUM>2;

Як умову в розділі WHERE можна використовувати складні логічні вирази, що використовують поля таблиць, константи, порівняння (>, <, = і т.д.), дужки, союзи AND й OR, заперечення NOT.

Приклад. Вибрати деякі колонки з вихідної таблиці (вказівка списку колонок, що відбирають):

SELECT P.NAME

FROM P;

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

^ Приклад. Вибрати деякі колонки з вихідної таблиці, видаливши з результату повторювані рядки (ключове слово DISTINCT):

SELECT DISTINCT P.NAME

FROM P;

Використання ключового слова DISTINCT призводить до того, що у результуючій таблиці будуть вилучені всі повторювані рядки.

^ Приклад. Використання скалярних виразів і перейменувань колонок у запитах (ключове слово AS…):

SELECT TOVAR...TNAME, TOVAR.KOL,

TOVAR.PRICE, "="AS EQU,

TOVAR.KOL*TOVAR.PRICE AS SUMMA

FROM TOVAR;

У результаті одержимо таблицю з колонками, яких не було у вихідній таблиці TOVAR:


TNAME

KOL

PRICE

EQU

SUMMA

Болт

10

100

=

1000

Гайка

20

200

=

4000

Гвинт

30

300

=

9000



^ Приклад. Упорядкування результатів запиту (ключове слово ORDER BY…):

SELECT PD...PNUM, PD.DNUM, PD.VOLUME

FROM PD

ORDER BY DNUM;

В результаті одержимо наступну таблицю, впорядковану по полю DNUM:


PNUM

DNUM

VOLUME

1

1

100

2

1

150

3

1

1000

1

2

200

2

2

250

1

3

300


^ Приклад. Упорядкування результатів запиту по декількох полях зі зростанням або убуванням (ключові слова ASC, DESC):

SELECT PD.PNUM, PD.DNUM, PD.VOLUME

FROM PD

ORDER BY DNUM ASC, VOLUME DESC;

У результаті одержимо таблицю, у якій рядки йдуть у порядку зростання значення поля DNUM, а рядки з однаковим значенням DNUM ідуть у порядку убування значення поля VOLUME:


PNUM

DNUM

VOLUME

3

1

1000

2

1

150

1

1

100

2

2

250

1

2

200

1

3

300


Якщо явно не зазначені ключові слова ASC або DESC, то за замовчуванням береться впорядкування по зростанню (ASC).

Відбір даних із декількох таблиць

Приклад. Природне з'єднання таблиць (спосіб 1 - явна вказівка умов з'єднання):

SELECT P.PNUM, P.PNAME, PD.DNUM,

PD.VOLUME

FROM P, PD

WHERE P.PNUM = PD.PNUM;

У результаті одержимо нову таблицю, у якій рядки з даними про постачальників з'єднані з рядками з даними про поставки деталей:


PNUM

PNAME

DNUM

VOLUME

1

Іванов

1

100

1

Іванов

2

200

1

Іванов

3

300

2

Петров

1

150

2

Петров

2

250

3

Сидоров

1

1000


Таблиці, що з'єднуються, перелічені у розділі FROM оператора, умова з'єднання наведена у розділі WHERE. Розділ WHERE, крім умови з'єднання таблиць, може також містити й умови відбору рядків.

^ Приклад. Природне з'єднання таблиць (спосіб 2 - ключові слова JOIN…USING…):

SELECT PNUM, P.PNAME, PD.DNUM,

PD.VOLUME

FROM P JOIN PD USING PNUM;

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

^ Приклад. Природне з'єднання таблиць (спосіб 3 - ключове слово NATURAL JOIN):

SELECT P.PNUM, P.PNAME, PD.DNUM,

PD.VOLUME

FROM P NATURAL JOIN PD;

У розділі FROM не зазначено, по яких полях виробляється з'єднання. NATURAL JOIN автоматично з'єднує по всіх однакових полях у таблицях.

Приклад. Природне з'єднання трьох таблиць:

SELECT P.PNAME, D.DNAME, PD.VOLUME

FROM P NATURAL JOIN PD NATURAL JOIN D;

У результаті одержимо таку таблицю:


PNAME

DNAME

VOLUME

Іванов

Болт

100

Іванов

Гайка

200

Іванов

Гвинт

300

Петров

Болт

150

Петров

Гайка

250

Сидоров

Болт

1000


Приклад. Прямий добуток таблиць:

SELECT P.PNUM, P.PNAME, D.DNUM,

D.DNAME

FROM P, D;

У результаті одержимо таку таблицю:


PNUM

PNAME

DNUM

DNAME

1

Іванов

1

Болт

1

Іванов

2

Гайка

1

Іванов

3

Гвинт

2

Петров

1

Болт

2

Петров

2

Гайка

2

Петров

3

Гвинт

3

Сидоров

1

Болт

3

Сидоров

2

Гайка

3

Сидоров

3

Гвинт


Оскільки не зазначена умова з'єднання таблиць, то кожен рядок першої таблиці з'єднується з кожним рядком другої таблиці.

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


Таблиця 2.1 – Відношення P (Постачальники)


PNUM

PNAME

PSTATUS

1

Іванов

4

2

Петров

1

3

Сидоров

2


Таблиця 2.2 – Відношення D (Деталі)


DNUM

DNAME

DSTATUS

1

Болт

3

2

Гайка

2

3

Гвинт

1


Відповідь на запитання "які постачальники мають право поставляти певні деталі?" дає такий запит:

SELECT P.PNUM, P.PNAME,

P.PSTATUS,

D.DNUM, D.DNAME, D.DSTATUS

FROM P, D

WHERE P.PSTATUS >= D.DSTATUS;

У результаті одержимо таку таблицю:


PNUM

PNAME

PSTATUS

DNUM

DNAME

DSTATUS

1

Іванов

4

1

Болт

3

1

Іванов

4

2

Гайка

2

1

Іванов

4

3

Гвинт

1

2

Петров

1

3

Гвинт

1

3

Сидоров

2

2

Гайка

2

3

Сидоров

2

3

Гвинт

1



1   2   3   4   5   6   7   8   9   ...   19

Схожі:

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Сумський державний університет 2012 Міністерство освіти і науки, молоді та спорту України Сумський державний університет
Внутрішній економічний механізм підприємства: конспект лекцій / укладач Н. В. Мішеніна.– Суми : Сумський державний університет, 2012....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2010 міністерство освіти І науки україНи
Затверджено на засіданні кафедри фінансів як конспект лекцій з дисципліни "Інформаційні системи і технології у фінансах"
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет до друку та в світ дозволяю на підставі «Єдиних правил»
Методи прийняття управлінських рішень. Конспект лекцій / Укладач Д. О. Смоленніков. – Суми: Вид-во СумДУ, 2008. – 89 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Внутрішній економічний механізм підприємства: Конспект лекцій/ Укладач І. В. Новикова. – Суми: Вид-во СумДУ, 2009. – 185с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україНи Сумський державний університет Менеджмент персоналу
Менеджмент персоналу: конспект лекцій / Укладач: К. В. Ілляшенко. – Суми: Вид-во СумДУ, 2010. – 78с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет граматичні таблиці з української мови для студентів-іноземців підготовчого відділення Суми Видавництво СумДУ
Граматичні таблиці з української мови для студентів-іноземців підготовчого відділення / Уклад.: Н. О. Ворона, Т. О. Дегтярьова, Н....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет історія України
України: навчальні матеріали для студентів-іноземців підготовчого відділення / Укладачі: М. С. Казанджиєва, О. П. Коньок, Н. О. Тубол,...
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет медичний інститут кафедра інфекційних хвороб І епідеміології
Методичні рекомендації до семінарських занять лікарів-інтернів спеціальності “Інфекційні хвороби” / Укладачі М. Д. Чемич, Н.І. Ільїна,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи