Содержание
-
РЕЛЯЦІЙНІ БАЗИ ДАНИХ
SQL ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 1
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 2 База даних (БД) – це впорядкований набір логічно взаємопов’язаних даних, призначених для задоволення інформаційних потреб певної предметної області. Доступ до даних БД здійснюється різними програмами через посередництво систем керування базами даних (СКБД). Система керування базами даних (СКБД) — сукупність програмних засобів, що забезпечують керування створенням та використанням баз даних. СКБД, розміщена на одному комп’ютері називається локальноюСКБД. СКБД, частини якої можуть розміщатися на декількох комп’ютерах називається розподіленою.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 3 Дані в БД можна представляти по-різному, в залежності від методів опису типів та логічних структур даних в БД, методів маніпуляції даними, методів опису та підтримки цілісності БД (того, що дані не будуть змінені при виконанні таких операцій над ними, як то представлення, збереження, передача, представлення). Модель даних– це абстрактне, самодостатнє представлення об‘єктів, операторів та інших елементів, які в сукупності складають абстрактну машину доступу до даних, з якими взаємодіє користувач. Ці об’єкти дозволяють моделювати структуру даних, а оператори – поведінку даних.
-
Моделі даних (МД):
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 4 Виділяють наступні моделі даних (МД): Ієрархічна МД – представляє БД у вигляді ієрархічної (деревовидної) структури. Об’єкти знаходяться у відношенні «нащадок» – «предок». Перші СКБД використовували ієрархічну модель представлення даних. Мережева МД – представляє БД у вигляді вузлів (елементів), зв’язків між ними на різних рівнях. Мережева МД є розширенням ієрархічної шляхом введення вказівників, що з’єднують споріднену інформацію в обох напрямках.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 5 Реляційна МД – представляє БД у вигляді таблиць, що надає можливість використання формального апарата алгебри відношень та реляційного числення для обробки даних. Реляційна модель передбачає, що кожен елемент таблиці є одним елементом даних, кожен стовпчик має унікальне ім’я та містити дані одного типу, відсутність однакових рядків в таблиці, довільний порядок рядків та стовпчиків. Об’єктно-орієнтована МД – розглядає дані як абстрактні наділені певними властивостями об’єкти, що використовують методи взаємодії з іншими об’єктами предметної області. Об’єктно-реляційна МД – реляційна модель МД, яка підтримує деякі технології об’єктно-орієнтованих моделей.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 6 Відповідно до МД СКБД поділяють на ієрархічні, мережеві, реляційні, об’єктно-орієнтовані та об’єктно-реляційні СКБД. На сьогоднішній день найбільшого розповсюдження набули об’єктно-реляційні СКБД. Прикладами таких СКБД є OracleDatabase, Informix, DB2, PostgreSQL. Спільною для усіх перерахованих СКБД є реляційна складова.
-
Реляційні БД
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 7 Реляційна моделі даних– це модель в якій дані організуються у вигляді набора таблиць. Використанняреляційних БД булозапропоноване Едгаром Коддом в 1970-і роки.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 8 Реляція (таблиця) позначається, як R(A1,...An), деR - ім'я реляції. A1,...An - імена атрибутів (полів). Вони мають бути унікальними в межах однієї реляції. Порядок атрибутів несуттєвий, через унікальність імен. Приклад: КНИГА(ІД, НАЗВА, ОПИС). Інші терміни Кортеж - рядок, запис. Атрибут - стовпець, поле. Степінь - кількість стовпців. Кардинальність - кількість рядків. Первинний ключ - ідентифікатор запису. Домен - область допустимих значень. Тип даних. Над цією структурою даних існує реляційна алгебра.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 9 Атрибути A і B називають порівнюваними, якщо до будь-якої пари значень з доменів цих атрибутів можна застосувати предикат порівняння. Набори атрибутів L та M називають порівнюваними, якщо можна встановити таку бієкцію між атрибутами, що кожна пара буде порівнювана. Для зручності вважатимемо, що зіставлені атрибути порівнюваних відношень повинні мати однакові імена.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 10 Над реляційною структурою даних будується реляційна алгебра. Її елементами є реляції (таблиці). Сигнатура реляційної алгебри містить наступні операції: об’єднання, перетин, різниця, вибірка (обмеження), проекція, декартів добуток, з’єднання, ділення, переіменування. Результатами виконання цих операцій є реляції (замкненість реляційної алгебри). R = f((, , …), (, , …), …) Декартів добуток. Отношение (A1, A2, …, Am, B1, B2, …, Bm), яке є зціпленнямвідношень A(A1, A2, …, Am) и B(B1, B2, …, Bm) : (a1, a2, …, am, b1, b2, …, bm)таких, что (a1, a2, …, am)∈ A,(b1, b2, …, bm)∈ B.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 11 Вибірка(обмеження). Узагальнена вибірка це унарний оператор, що записується як , де φ є формулою числення висловлювань, що складається із атомів, дозволених у звичайній вибірці та логічних операторів (кон’юнкції), (диз’юнкції) та (заперечення). Така вибірка вибирає всі кортежі для яких значення φ істина. Проекція.Проекція — це унарна операція , де є множиною назв атрибутів. Результат проекції визначається, як множина, що отримується із всіх кортежів із R, що обмежуються { }. Переіменування.Перейменування є унарним оператором . Результат застосування оператора ідентичний за винятком того, що поле в усіх кортежах перейменовується на поле.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 12 Об’єднання.Відношення з тимже заголовком, щоіу сумісних за типом відношень A та B, та тілом, щоскладається з кортежів, що належать Aчи B, чиобомвідношенням: AUB. Перетин. Відношення з тим же заголовком, що і у сумісних за типом відношень A та B, та тілом, щоскладається з кортежів, що належать Aта B: AB. Різниця.Відношення з тим же заголовком, що і у сумісних за типом відношень A та B, та тілом, щоскладається з кортежів, що належать A та Bне належать B: AB. З’єднання. Pезультат послідовного застосування операцій декартового добутку та вибірки. Якщо в відношеннях є атрибути з одинаковиминаіменуваннями, то перед виконанням з’єднанняїхнеобхіднопереіменувати. Ділення. Відношення з заголовком (X1, X2, …, Xn) та тілом, щоміститьмножинукортежів (x1, x2, …, xn), таких, щодля усіхкортежів (y1, y2, …, ym) ∈ B у відношенні A(X1, X2, …, Xn, Y1, Y2, …, Ym) знайдетьсякортеж (x1, x2, …, xn, y1, y2, …, ym).
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 13 У кожної таблиці є унікальне ім’я. В кожній таблиці є один, або більше стовпчиків, кожен з яких має визначений тип та своє унікальне (в межах таблиці) ім’я. В кожній таблиці є нуль, або більше рядків, кожен з яких містить одне значення даних в кожному стовпчику, при чому це значення має тип свого рядка. Рядки в таблиці не впорядковані. Відношення між таблицями реалізуються за первинних та зовнішніх ключів.
-
Первинний ключ
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 14 В правильно побудованій реляційній БД в кожній таблиці є один, або декілька стовпчиків, значення яких в усіх рядках унікальні. Цей стовпчик (чи стовпчики) називається первинним ключемтаблиці. На практиці, в якості первинного ключа, як правило, слід обирати ідентифікатори, такі як номер рейсу, номер потягу, тощо.
-
Зовнішні ключі
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 15 Стовпчик однієї таблиці, значення в якому співпадає зі значенням стовпчика, що є первинним ключем іншої таблиці, називається зовнішнім ключем. Зовнішній ключ, як і первинний, може являти собою комбінацію декількох стовпчиків. Зовнішні ключі слугують для зв’язування кількох таблиць. Якщо таблиця пов’язана з кількома іншими таблицями, то вона може мати декілька зовнішніх ключів. Пара «первинний ключ – зовнішній ключ» задає відношення предок/нащадок між таблицями, що їх містять.
-
SQL. Стандарти SQL
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 16 SQL. Мовою реляційних, а відповідно і об’єктно-реляційних БД є мова SQL. Ця мова базується на численні кортежів. Стандарти SQL. Одним з найважливіших кроків з визнання SQL на ринку стала його стандартизація. Перший стандарт SQL-86, прийнятий інститутом ANSI та підтриманий ISO з’явився в 1986 році. Після цього світ побачили наступні стандарти: SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008.
-
Рівні відповідності
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 17 Рівні відповідності.Починаючи з SQL:1999 стандарт має модульну структуру. Основна частина стандарту внесена в розділ «SQL/Foundation», всі інші його частини винесені в окремі модулі. Таким чином, усі СКБД повинні підтримувати основну частину (Core), а інші частини стандартів підтримуються на розгляд виробника СКБД. Далі, розглянемо лише можливості SQL/Foundation.
-
Короткий огляд мови SQL
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 18 Для часто виконуваних запитів, або як для допомоги в написанні складних запитів зручно зберігати його як збережений запит, яка складається з результатів цього запиту. Такий запит називається представленням (View). Представлення (View) – це збережений запит, доступний як віртуальна динамічна таблиця, що складається з результатів запиту. Зміна даних в таблицях БД змінює їх у відповідних представленнях.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 19 Транзакція– це декілька послідовних операторів SQL, які розглядаються як єдине ціле. В транзакції кожен оператор розв’язує частину загальної задачі, але для розв’язання усієї задачі, потрібно, щоб усі ці оператори були виконані. У випадку виникнення проблеми виникає відкат транзакції, тобто не виконується вся послідовність операторів.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 20 Часто, при настанні певних подій в БД (наприклад, додавання чи оновлення видалення) потрібно виконувати певні процедури. Наприклад, при видаленні певного товару в магазині, можливо потрібно видалити всі не виконані замовлення на цей товар. Для таких дій використовуються тригери. Тригер– це збережена процедура, використання якої обумовлено настанням визначеної події у БД, як: додавання, вилучення чи зміна даних. Тригери застосовуються для забезпечення цілісності даних. Тригер запускається сервером автоматично при настанні події з якою він пов’язаний. Всі здійснені ним модифікації даних розглядаються як виконані в транзакції.
-
Основні типи даних, визначені в стандаритах SQL
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 21
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 22
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 23 Рядкові та символьні константи повинні міститися в одинарних чи подвійних лапках. УВАГА!!! Назви типові даних в різних СКБД не завжди співпадають між собою та з рекомендаціями стандарту SQL.
-
Вирази в SQL
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 24 Вирази в SQL використовуються для виконання операцій над значеннями, прочитаними з БД чи тими, що використовуються для пошуку в БД. Вирази можуть включати в себе дужки, арифметичні операції +, -, *, / та деякі функції:
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 25 Крім цього, використовуються агрегатні функції, які дозволяють отримувати різні види статистичної інформації, використовуючи в якості аргументу деякий стовпчик повністю, а повертаючи одне значення.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 26 Для складних виразів використовуються дужки.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 27 Нехай маємо базу даних бібліотеки:
-
Деякі оператори SQL
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 28
-
Запит на створення таблиці CREATE TABLE
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 29 ::= CREATE TABLE () [] [] [] [] Розглянемо більш детально секції запиту
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 30 складається із визначень стовпчиків через кому. ::= [DEFAULT значення] [DEFAULT значення] – означає значення по замовчуванню, а [NOT NULL] – означає, що відповідне значення не може бути не порожнім. ::= PRIMARY KEY()
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 31 ::= [] () REFERENCE [MATCH FULL | PARTIAL ] [ON DELETE CASCADE | SET NULL | SET DEFAULT | NO ACTION ] [on UPDATE ` CASCADE | SET NULL | SET DEFAULT | NO ACTION ]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 32 Тут, REFERENCE задає таблицю-предок з якою відбувається зв’язування. [ON DELETE CASCADE | SET NULL | SET DEFAULT | NO ACTION ] та [on UPDATE CASCADE | SET NULL | SET DEFAULT | NO ACTION ] – задають правила поведінки при видаленні чи оновленні даних, ::= UNIQUE() ::= CHECK()
-
Приклад 1 (MS SQL Server)
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 33 CREATE TABLE [AUTHORS]( [AU_ID] [int] IDENTITY(1,1) NOT NULL, [AU_NAME] [nvarchar](50) NOT NULL, [AU_INFO] [ntext] NULL, CONSTRAINT [PK_AUTHORS_1] PRIMARY KEY CLUSTERED ( [AU_ID] ASC )) CREATE TABLE [DIC_CATEGORIES]( [DC_ID] [int] IDENTITY(1,1) NOT NULL, [DC_NAME] [nvarchar](50) NOT NULL, [DC_INFO] [text] NULL, CONSTRAINT [PK_DIC_CATEGORIES] PRIMARY KEY CLUSTERED ( [DC_ID] ASC ))
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 34 CREATE TABLE [DIC_STATUSES]( [DS_ID] [int] NOT NULL, [DS_NAME] [nvarchar](20) NOT NULL, CONSTRAINT [PK_DIC_STATUSES] PRIMARY KEY CLUSTERED ([DS_ID] ASC)) CREATE TABLE [READERS]( [RD_ID] [int] IDENTITY(1,1) NOT NULL, [RD_NAME] [nvarchar](50) NOT NULL, [RD_ADDRESS] [ntext] NULL, [RD_INFO] [ntext] NULL, CONSTRAINT [PK_READERS] PRIMARY KEY CLUSTERED ([RD_ID] ASC))
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 35 CREATE TABLE [BOOKS]( [BK_ID] [int] IDENTITY(1,1) NOT NULL, [BK_NAME] [nvarchar](50) NOT NULL, [BK_INFO] [ntext] NULL, [BK_DC] [int] NOT NULL, CONSTRAINT [PK_BOOKS] PRIMARY KEY CLUSTERED ([BK_ID] ASC), CONSTRAINT [FK_BOOKS_DIC_CATEGORIES] FOREIGN KEY([BK_DC]) REFERENCES [DIC_CATEGORIES] ([DC_ID])) CREATE TABLE [AUTHORS_BOOKS]( [AB_BK] [int] NOT NULL, [AB_AU] [int] NOT NULL, CONSTRAINT [PK_AUTHORS_BOOKS] PRIMARY KEY CLUSTERED ([AB_BK] ASC,[AB_AU] ASC), CONSTRAINT [FK_AUTHORS_BOOKS_AUTHORS] FOREIGN KEY([AB_AU]) REFERENCES [AUTHORS] ([AU_ID]), CONSTRAINT [FK_AUTHORS_BOOKS_BOOKS1] FOREIGN KEY([AB_BK]) REFERENCES [BOOKS] ([BK_ID]))
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 36 CREATE TABLE [READERS_BOOKS]( [RB_ID] [int] IDENTITY(1,1) NOT NULL, [RB_RD] [int] NOT NULL, [RB_BK] [int] NOT NULL, [RB_ISSUE] [date] NOT NULL, [RB_PLAN_RETURN] [date] NOT NULL, [RB_DS] [int] NOT NULL, [RB_FACT_RETURN] [date] NULL, CONSTRAINT [PK_READERS_BOOKS] PRIMARY KEY CLUSTERED ([RB_ID] ASC), CONSTRAINT [FK_READERS_BOOKS_BOOKS1] FOREIGN KEY([RB_BK]) REFERENCES [BOOKS] ([BK_ID]), CONSTRAINT [FK_READERS_BOOKS_DIC_STATUSES] FOREIGN KEY([RB_DS])REFERENCES [DIC_STATUSES] ([DS_ID]), CONSTRAINT [FK_READERS_BOOKS_READERS] FOREIGN KEY([RB_RD]) REFERENCES [READERS] ([RD_ID]))
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 37 Створимозайвутаблицю: CREATE TABLE [BOOKS1]( [BK1_ID] [int] IDENTITY(1,1) NOT NULL, [BK1_INFO] [ntext] NULL, CONSTRAINT [PK_BOOKS1] PRIMARY KEY CLUSTERED ([BK1_ID] ASC))
-
ЗАПИТ НА ЗМІНУ СТРУКТУРИ ІСНУЮЧОЇ ТАБЛИЦІ ALTER TABLE
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 38 ::= ALTER TABLE ADD | ALTER SET DEFAULT | DROP DEFAULT |DROP CASCADE|RESTRICT | ADD [] [] [] [] |DROP CONSTRAINT CASCADE|RESTRICT Секції аналогічні до секцій запиту на створення таблиці.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 39 Змінимо структуру таблиці BOOKS, додавши до неїновийстовпчик: Приклад 2. ALTER TABLE [BOOKS1] ADD [BK1_NAME] [nvarchar](50) NOT NULL
-
ЗАПИТ НА ВИДАЛЕННЯ ТАБЛИЦІ DROP TABLE
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 40 ::= DROP TABLE [CASCADE | RESTRICT] Розглянемо більш детально секції запиту Якщо задано параметр CASCADE, і в БД існують об’єкти, які містять посилання на видаляємо таблицю (містять відповідний зовнішній ключ), то видалення не відбудеться. Для видаленнятаблиціBOOKS1 з базиданихбібліотекистворимонаступний запит. Приклад 3. DROP TABLE [BOOKS1]
-
ЗАПИТ НА ДОДАВАННЯ НОВИХ РЯДКІВ INSERT
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 41 ::= INSERT INTO [()] VALUES () ::= | | , |,
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 42 Виконаємо послідовно наступні запити на додавання нових записів. INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES ('ЗубенкоВ.В.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES ('Омельчук Л.Л.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES ('Нікітченко М.С.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES ('Шкільняк С.С.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES ('Лавріщева К.М.', '')
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 43 [AUTHORS]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 44 INSERT INTO [DIC_CATEGORIES] ([DC_NAME]) VALUES ('Програмування') INSERT INTO [DIC_CATEGORIES] ([DC_NAME]) VALUES ('Логіка')
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 45 [DIC_CATEGORIES]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 46 INSERT INTO [BOOKS] ([BK_NAME], [BK_INFO], [BK_DC]) VALUES ('Програмування', 'ІНФОРМАЦІЯ Програмування',1) INSERT INTO [BOOKS] ([BK_NAME], [BK_INFO], [BK_DC]) VALUES ('Програмнаінженерія', 'ІНФОРМАЦІЯ Програмна інженерія', 1) INSERT INTO [BOOKS] ([BK_NAME], [BK_INFO], [BK_DC]) VALUES ('Математична логіка та теорія алгоритмів', 'ІНФОРМАЦІЯ Математична логіка та теорія алгоритмів', 2)
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 47 [BOOKS]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 48 INSERT INTO [AUTHORS_BOOKS] ([AB_AU], [AB_BK]) VALUES (1, 1) INSERT INTO [AUTHORS_BOOKS] ([AB_AU], [AB_BK]) VALUES (2, 1) INSERT INTO [AUTHORS_BOOKS] ([AB_AU], [AB_BK]) VALUES (3, 3) INSERT INTO [AUTHORS_BOOKS] ([AB_AU], [AB_BK]) VALUES (4, 3) INSERT INTO [AUTHORS_BOOKS] ([AB_AU], [AB_BK]) VALUES (5, 2)
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 49 [AUTHORS_BOOKS]
-
ЗАПИТ НА ПОШУК SELECT
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 50 ::= SELECT [ALL | DISTINCT | DISTINCTROW] | * FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 51 Секція | * “*” означає, що повернути потрібно всі стовпчики із заданого списка таблиць секції FROM; – перераховує через кому імена стовпчиків, що містяться в таблицях, які перераховані в секції FROM. Стовпчики в результуючій таблиці будуть розміщені в порядку перерахування іх в. У випадку, якщо стовпчику в результуючій таблиці потрібно присвоїти нове ім’я, то можна зазначати імена стовпчиків наступним чином: AS . Крім того, в якості елементів цього списку можуть бути обчислювані значення елементів деяких із стовпчиків. Для отримання значення таких стовпчиків потрібно вказати виразйого обчислення із значень, що зберігаються в БД.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 52 Секція FROM Задає список таблиць, перерахованих через кому, які беруть участь в запиті. У випадку, якщо в декількох таблицях секції FROMприсутнє однакове ім’я (або за бажанням) можна зазначати імена стовпчиків наступним чином:., тут повинно належати списку секції FROM. Секція WHERE Для визначення умови відбору рядків, слід використати секцію WHERE. Рядок відбирається, якщо результат предиката, заданого в має результат TRUE.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 53 Розглянемо основні умови пошуку: = > >= Перевірка на належність діапазону значень [NOT] BETWEEN AND Перевірка на належність множині [NOT] IN ()
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 54 Перевірка на відповідність шаблону [NOT] LIKE [ESCAPE ] Перевірка на рівність значенню NULL IS [NOT] NULL Для побудови складних умов пошуку використовуються дужки та AND, OR та NOT.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 55 Секція GROUP BY Надає командугрупувати рядки, що мають спільне значення елементів зазначених стовпчиків таким чином, щоб функція агрегації могла бути застосована до кожної групи. Секція HAVING Для визначення умови відбору груп рядків, слід використати секцію HAVING. Відбирається група, яка задовольняє умові. Умова аналогічна умові в секції WHERE. Секція HAVING майже завжди використовується разом з секцією GROUP BY.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 56 Секція ORDER BY Використання цієї секції дозволяє відсортувати результати запиту. Тут з перерахування через кому . ::= [] [ASC | DESC] Тут ASC – сортування в лексико-графічному порядку за зростанням, а DESC – за спаданням.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 57 Приклад 4. Додамов таблицю авторів послідовнонаступні записи: INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES (‘Пушкін О.С.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES (‘Шевченко Т.Г.', '') Тепер знайдемо авторів у яких немає книжок в нашій бібліотеці: DELETE FROM [AUTHORS] WHERE [AU_ID] NOT IN (SELECT [AB_AU] FROM [AUTHORS_BOOKS]) ■
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 58 Додамо книгу: INSERT INTO [BOOKS] ([BK_NAME],[BK_INFO],[BK_DC]) VALUES ('Теорія алгоритмів', '', 2) Та автора ційкнизі: INSERT INTO [AUTHORS_BOOKS] ([AB_BK], [AB_AU]) VALUES (5,4)
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 59 Знайдемовсіх авторів та їх кількість книг в бібліотеці, і відсортуємо список за алфавітом: SELECT [AU_NAME], COUNT([AB_BK]) AS [COUNT_BOOKS] FROM [AUTHORS], [AUTHORS_BOOKS] WHERE ([AU_ID] = [AB_AU]) GROUP BY [AU_ID], [AU_NAME] ORDER BY [AU_NAME]
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 60 Результат виконаннязапиту:
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 61 INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES (‘Пушкін О.С.', '') INSERT INTO [AUTHORS] ([AU_NAME], [AU_INFO])VALUES (‘Шевченко Т.Г.', '')
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 62 Тепер знайдемо авторів у яких немає книжок в нашій бібліотеці: SELECT [AU_ID], [AU_NAME] FROM [AUTHORS] WHERE [AU_ID] NOT IN ( SELECT [AB_AU] FROM [AUTHORS_BOOKS] )
-
ЗАПИТ НА ВИДАЛЕННЯ РЯДКІВ DELETE
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 63 ::= DELETE FROM [WHERE ] Секція [WHERE ] аналогічна до такої секції в запиті на пошук.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 64 Для йоговидаленнядостатньовиконати один з наступнихзапитів: DELETE FROM [AUTHORS]WHERE (([AU_ID] = 20) OR([AU_ID] = 21)) Або DELETE FROM [AUTHORS]WHERE (([AU_NAME] = 'Пушкін О.С.‘) OR ([AU_NAME] = ‘Шевченко Т.Г.’))
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 65 Нехай потрібновидалитиавторів, книжокяких в бібліотецінемає: DELETE FROM [AUTHORS] WHERE [AU_ID] NOT IN (SELECT [AB_AU] FROM [AUTHORS_BOOKS])
-
ЗАПИТ НА ОНОВЛЕННЯ ІСНУЮЧИХ ДАНИХ UPDATE
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 66 ::= UPDATE SET [WHERE ] Секція [WHERE ] аналогічна до такої секції в запиті на пошук.
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 67 Помістимо в поле DA_INFO таблиці DIC_AUTHOR для авторів книги 1 відповідну інформацію: Приклад ?.2. UPDATE [AUTHORS] SET [AU_INFO]= 'АВТОР КНИГИ Програмування' WHERE [AU_ID]IN ( SELECT [AB_AU]FROM [AUTHORS_BOOKS]WHERE [AB_BK]=1 )
-
ПРОГРАМУВАННЯ 2 курс, ф-т КІБЕРНЕТИКИ Омельчук Л. Л. 68 Після виконання цього запиту маємо наступні дані в таблиці AUTHORS:
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.