Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
23.02.2016
Размер:
229.38 Кб
Скачать

2

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;