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