 
        
        
	
		 
		
| STUDENT | |
| 
 | № студента | 
| Fio | ПІП | 
| N zal | № заліковки | 
| 
 | № групи | 
| stip | стипендія | 
	
	

| DIS | |
| 
 | № | 
| n | Н | 
	
| 
 | |
| GRU | |
| 
 | № групи | 
| shifr | шифр | 
| name | Назва дисциплини | 
| kurs | курс | 
| OZENKA | |
| Nom_st | № студента | 
| data | дата | 
| Nom_dis | № дисциплини | 
| oz | оцінка | 
Кожна таблиця має свою власну назву. У таблиці стовпці називаються полями, а рядки- записами. Запис-це сукупність логічно пов’язаних різнотипних полів, а поле-елементарна одиниця структури БД.
Таблиця відомості про студентів
- 
			Прізвище Ім.’я № заліковки Морозов Олег 234 Шевченко Максим 459 
Зв’язки між таблицями встановлюються через поля таблиць. При цьому встановлюються і типи зв’язку. В системі ACCESS цей зв’язок здійснюється через ключове поле однієї таблиці та зовнішнього ключа іншої таблиці.
Ключове поле-це один або декілька слів таблиці, за яким виконується умова. При створенні такого поля структура таблиці доповнюється полем з іменним кодом та властивістю „индексирование”.
	Існує
	4 типи зв’язків між таблицями: один до
	одного (1:1), один до багатьох (1: ),
	багато до одного (М:1), багато до багатьох
	(М:Н).
),
	багато до одного (М:1), багато до багатьох
	(М:Н).
Зв’язок 1:1 передбачає, що кожний запис у таблиці А відповідає одному запису в таблиці В.
Таб.А Відомості про співробітників
| № | найменування | 
| 1 | Табельний № | 
| 2 | прізвище | 
| 3 | Дата народження | 
	

Таб. В Професійні відомості
| № | найменування | 
| 1 | Табельний № | 
| 2 | Посада | 
	
| 3 | зарплата | 
	Зв’язок
	1: одному запису таб.А відповідає кілька
	записів таб.В. При цьому кожний запис
	таб. В пов’язаний не більше як з одним
	записом таб. А.
одному запису таб.А відповідає кілька
	записів таб.В. При цьому кожний запис
	таб. В пов’язаний не більше як з одним
	записом таб. А.
Таб. А клієнтів
| № | Найменування | 
| 
 | Табельний№ | 
| 2 | Прізвище | 
| 3 | Дата народження | 
Таб. В замовлення
| № | Найменування | 
| 
 | Код клієнта | 
| 2 | Код товару | 
| 3 | Дата замовлення | 
Зв’язок багато до одного є зворотнім відносно попереднього.
Таб. А клієнти
| № | Найменування | 
| 
 | Код підприємства | 
| 2 | Прізвище | 
| 3 | Дата народження | 
Таб. В замовлення
| № | Найменування | 
| 
 | Код клієнта | 
| 2 | Код товару | 
| 3 | Дата замовлення | 
Зв’язок багато до багатьох реалізується, коли між записами двох таблиць Аі В одночасно підтримуються відношення вигляду : один до багатьох, багато до одного.
Основні оператори мови sql. Оператор select.
Команда SELECT-це основний оператор мови SQL, який виконує відбір необхідної інформації з таблиць.
Структура оператора:
SELECT [предикат] що_відбирається [AS псевдонім] (через кому)
FROM таблиці БД
[WHERE умова_відбору_з_таблиць, умова_з’єднання_таблиць]
[GROUP BY поля_об’єднання (через кому)] [ HAVING умова_об’єднання]
[ORDER BY поля_для_сортування [DESC] (через кому)];
Пояснення кожної частини цієї команди:
SELECT-ключове слово, яке повідомляє БД, що ця команда-запит;
що_відбирається [AS псевдонім]-список стовпчиків таблиці які будуть відібрані. Будь-які стовпчики не перераховані тут не будуть включені у результат команди. Це не значить, що вони будуть стерті з таблиць, тому що запит не впливає на інформацію в таблицях; він тільки показує дані на екрані. Якщо потрібно вказати всі поля всіх таблиць використовується символ *.
Псевдонім дозволяє задати нові імена, які будуть заголовками стовпчиків замість назв полів.
FROM-вказує ті таблиці, з яких відбирається інформація.
;-використовується у всіх інтерактивних командах SQL щоб повідомити, що команда готова до виконання.
SELECT* FROM STUDENT;
WHERE-дозволяє вибрати тільки ті рядки з таблиць, для яких виконується умова. Наприклад, ви хочете бачити шифри груп, які відносяться до будівельного факультету:
SELECT shifr AS [позначення групи]
FROM GRU
WHERE name=”Будівельний ф-т”;
Давайте спробуємо приклад із числовим полем в пропозиції WHERE. Ми можемо вибрати всіх студентів, які отримують стипендію 15 грн.
SELECT* FROM STUDENT
WHERE stip=15;
Лапки не використовуються тут тому, що стипендія-це не числове поле.
Можливі варіанти умов пошуку:
а) використання знаків порівняння =, >,<,>=,<=,<>
Припустимо, що ви хочете побачити всіх студентів з оцінкою вище 3
SELECT* FROM OZENKA
WHERE oz>3;
б) використання логічних операцій:AND, OR, NOT
AND-і, оцінює, чи вірні всі умови;
OR- або, оцінює, чи вірна одна з умов;
NOT – ні, заміняє значення умови на протилежне
Припустимо ви хочете відібрати усі групи приладобудівного факультету і менше 3 курсу:
	SELECT*
	FROM
	GRU
WHERE name=”Будівельний ф-т” AND kurs<3;
Цей запит відбере групи приладобудівного ф-ту, або 1,2 курсу
SELECT* FROM GRU
WHERE name=”Будівельний ф-т” OR kurs<3;
В цьому прикладі будуть відібрані групи всіх ф-тів крім будівельного і менше 3-го курсу
SELECT* FROM GRU
WHERE NOT name=”Будівельний ф-т” AND kurs<3;
в) Використання спеціальних операторів IN, BETWEEN, LIKE
Оператор IN визначає набір значень, з яких вибирається будь-яке
SELECT* FROM STUDENT
WHERE stip IN (12,14);
Оператор BETWEEN визначає діапазон значень від початкового до кінцевого
SELECT* FROM STUDENT
WHERE stip BETWEEN 15 AND 20;
Вибрати номери студентів, які отримували оцінки в першій половині 98 року:
SELECT nom_st FROM OZENKA
	WHERE
	data
	BETWEEN
	 
	 1-1-98
1-1-98
	
	 AND
	AND
	
	 6-30-98
6-30-98 ;
;
Вибрати всіх студентів, чиї прізвища потрапили у визначний алфавітний діапазон:
SELECT* FROM STUDENT
WHERE fio BETWEEN ‘A’ AND ‘D’;
Like застосовується тільки для текстових полів і шукає значення поля за зразком. В зразках можна використовувати такі символи:
?-заміщає любий один символ;
*-заміщає любу послідовність символів
Знайдемо всіх студентів, чиї прізвища починаються з літери Л:
SELECT* FROM STUDENT
WHERE fio Like „Л*”;
Після слова SELECT можна використовувати функції:
COUNT – повертає кількість рядків
SUM- повертає арифметичну суму всіх обраних значень даного поля
AVG-робить усереднення всіх обраних значень даного поля
MIN-повертає найменше з усіх обраних значень даного поля
MAX-повертає найбільше з усіх обраних значень даного поля
Тільки числові поля можуть використовуватись з SUM,AVG. З COUNT, MIN, MAX можуть використовуватися і числові або символьні поля.
SELECT SUM (stip) AS [сума стипендії]
FROM STUDENT;
SELECT AVG (oz) AS [середній бал]
FROM OZENKA;
GROUP BY-вказує поля, за яким однакові значення будуть об’єднані в один запис.
Знайти MAX оцінку для кожного студента
SELECT MAX (oz), Nom_st
FROM OZENKA
GROUP BY Nom_st ;
Слово HAVING задає додаткову умову групування.
Н. Знайти Суму стипендії по групам, в яких кількість студентів > 24 можна отримати:
SELECT SUM (stip), Nom_gr
FROM STUDENT
GROUP BY Nom_gr HAVING count (*)>24;
Команду ORDER BY використовують, щоб упорядкувати виведення даних. Записи можна вивести в порядку зростання (ASC) або в порядку зменшення (DESC) для кожного стовпчика.
SELECT fio, stip FROM STUDENT
ORDER BY stip DESC;


 Nom_st
Nom_st
 Nom_gr
Nom_gr
 Nom_dis
Nom_dis дисциплини
дисциплини ame
ame азва
				дисциплини
азва
				дисциплини

 Nom_gr
Nom_gr
 1
1 1
1
 1
1 1
1