Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Короткі теоретичні відомості




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

SQL надає такі можливості:

- створювати й видаляти таблиці бази даних, а також змінювати заголовки таблиць;

- вставляти, змінювати й видаляти рядки в таблицях;

- виконувати пошук даних у багатьох таблицях та впорядковувати результати цього пошуку;

- описувати процедури підтримки цілісності;

- визначати та змінювати інформацію про захист даних.

Основні конструкції мови, призначені для вибирання даних. Основна конструкція, призначена у мові SQL для вибирання даних, складається з фраз SELECT і FROM. Фраза FROM вказує, з якої таблиці потрібно вибрати дані, а фраза SELECT - які саме атрибути (стовпці) з цієї таблиці мають бути вибрані. Запит

SELECT Назва (поле)

FROM  ФАКУЛЬТЕТ (таблиця)

здійснює виведення назв факультетів. Ці дві фрази обов'язково мають бути в будь-якому запиті.

Виведення окремих стовпців. У фразі SELECT можна зазначати список імен стовпців. Передбачається, що результат виведення буде впорядкований за стовпцями відповідно до того, як розташовані імена у фразі:

SELECT Номер, Курс, Кількість

FROM  ГРУПА

Виведення всіх стовпців. Якщо необхідно вивести всі стовпці таблиці, то у фразі SELECT використовується символ *:

SELECT *

FROM  КАФЕДРА

Неповторювані рядки. Хоча в реляційних відношеннях не має бути повторюваних рядків (дублікатів), у SQL за замовчуванням встановлено, що всі дублікати рядків у таблиці-результаті виводяться. Щоб унаслідок виконання запиту одержати унікальні (неповторювані) значення, потрібно використовувати модифікатор DISTINCT (за замовчуванням застосовується модифікатор ALL). Наприклад, щоб отримати список усіх типів лекцій, і щоб кожен тип виводився лише один раз, потрібно записати:

SELECT DISTINCT Тип

FROM ЛЕКЦІЯ 

Без модифікатора DISTINCT ми одержали б список із кількох сотень рядків (його довжина дорівнювала б кількості всіх лекцій). Весь запит можна розмістити в одному рядку.

Перевизначення імен стовпців. Фраза SELECT надає можливість перевизначити імена стовпців кінцевої таблиці. Для цього після імені стовпця вихідної таблиці необхідно зазначити ім'я стовпця кінцевої таблиці. Наприклад, у наведеному запиті перевизначаються імена обох стовпців:

SELECT Назва AS Назва_факультету, Декан AS Декан_факультету

FROM  ФАКУЛЬТЕТ

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

SELECT Група.Код_групи, Назва_Групи, Оцінки.Код_групи, ОЦ_Мат

FROM  ГРУПА, Оцінки

Умова вибирання. Для запису умови вибирання використовується фраза WHERE. У ній зазначено, якій умові мають відповідати вихідні дані. Алгоритм обробки запиту з фразою WHERE є таким:

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

- перевірити його відповідність вказаній умові;

- якщо рядок відповідає умові, то вивести значення стовпців, вказаних у фразі SELECT.

Цей запит виводить список усіх професорів вузу:

SELECT Прізвище

FROM ВИКЛАДАЧ

WHERE Посада = "професор"

Вирази, умови та оператори. У мові SQL існує багато різновидів виразів, у яких використовуються дані різних типів — рядки, числа, логічні значення.

Умова — це вираз, що повертає логічне значення — TRUE чи FALSE. Умовні вирази обов'язково використовуються у фразі WHERE, а також можуть застосовуватися в інших фразах, наприклад SELECT. Прикладом умовного виразу є конструкція Посада = <професор>.

Оператори — це конструкції, що використовуються у виразах для означення певних дій над даними. Є кілька типів операторів:

- арифметичні, +, -,*,/.

- оператори над рядками, Оператор зчеплення рядків ||.

- логічні, AN, OR, NOT  

- теоретико-множинні, UNION, INTERSECT, EXCEPT (або MINUS).

- оператори порівняння, >, <, =, <>, >=, <=.

Оператори порівняння, їхнє призначення та приклади наведено в табл. 1.

Табл. 1. Оператори порівняння

оператор призначення Приклад
= Перевірка на рівність SELECT * FROM КАФЕДРА  WHERE Фонд = 1500
!=, <> Перевірка на нерівність SELECT * FROM КАФЕДРА WHERE Фонд != 1500
>, < Перевірка, чи одне значення більше або менше іншого SELECT * FROM КАФЕДРА WHERE Фонд > 1500 SELECT * FROM КАФЕДРА WHERE Фонд < 1500
>=, <= Перевірка, чи одне значення не менше або не більше іншого SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд >= 1500 SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд <= 1500
IN Перевірка на належність множині SELECT * FROM ВИКЛАДАЧ WHERE Посада IN ("професор"."доцент") SELECT * FROM ВИКЛАДАЧ WHERE Посада IN (SELECT Посада FROM ВИКЛАДАЧ WHERE tel tel="5261815")
NOT IN Еквівалентний !=ALL. Перевірка на неналежність елементу множині SELECT * FROM ВИКЛАДАЧ WHERE Посада NOT IN (SELECT Посада FROM ВИКЛАДАЧ WHERE tel =”23456”)

 

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

Стовпці, що обчислюються. У фразі SELECT можна сформувати новий стовпець. У ньому записуватимуться результати обчислення виразу, в якому використовуються значення з інших стовпців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку частку становить фонд кафедри від загального фонду факультету.

SELECT d.Назва, d.Фонд, (d.Фонд / f.Фонд) * 100

FROM  ФАКУЛЬТЕТ f, КАФЕДРА d

WHERE f.F = d.F AND F.Назва = "інформатики"

Використання агрегатних функцій. Агрегатними називаються функції, які обчислюють різні статистичні характеристики. Розглянемо деякі з них:

COUNT – повертає кількість рядків у таблиці

SUM – повертає суму всіх значень у стовпці

AVG – повертає середнє арифметичне всіх значень у стовпці

MAX- повертає найбільше значення у стовпці

MIN - повертає найменше значення у стовпці

Окрім COUNT(*), кожна з цих функцій оперує як аргументом сукупністю значень стовпця певної таблиці та повертає єдине значення.

Приклад запиту: Знайти кількість рядків таблиці Дисципліна

SELECT COUNT(*)

FROM : Дисципліна

Приклад запиту: Знайти кількість рядків таблиці Дисципліна, код дисципліна яких менший 5

SELECT COUNT(*)

FROM : Дисципліна

WHERE Код_дисципліни<5

Стовпець –аргумент – це стовпець віртуальної таблиці, в якій можуть міститися дані не лише зі стовпця базової таблиці, але і отримані шляхом функціонального перетворення та-або зв’язування символами арифметичних операцій значень з одного або декількох стовпців. Вирази, що визначають стовпець такої таблиці, мають різний рівень складності, але не можуть містити інших агрегатних функцій. Функції можуть входити до складу виразів.

AVG(SUM(…)) не можна

AVG(а+в) можна

SUM( фонд)/COUNT(*) можна

Запит. Визначити кількість студентів груп ІТ-220 і ІТ-210

SELECT Sum(Група.ЧислоСтудентів) AS skmrscnm

FROM Група

where НазваГрупи="ТО-220" OR НазваГрупи="ТО-21"

Запит. Визначити середнє арифметичне кількості студентів груп ІТ-220 і ІТ-210

SELECT AVG (Група.ЧислоСтудентів) AS skmrscnm

FROM Група

where НазваГрупи="ТО-220" OR НазваГрупи="ТО-21"

Приклад запиту. Додати до таблиці ТИМЧАСОВА, що має стовпці Назва_факул, Назва_каф, Прізвище__викл, наявні в базі даних відомості про викладачів, а також про кафедри та факультети, де вони працюють.

INSERT INTO ТИМЧАСОВА (Назва_факул, Назва_каф, Прізаище_викл)

SELECT ФАКУЛЬТЕТ.Назва, КАФЕДРА.Назва, ВИКЛАДАЧ.Прізвище

FROМ ФАКУЛЬТЕТ, КАФЕДРА, ВИКЛАДАЧ

WHERE ФАКУЛЬТЕТ.F=КАФЕДРА.F AND КАФЕДРА.D=ВИКЛАДАЧ.D

Питання вхідного контролю

 

1 Що таке агрегатні функції? Перелічіть їх?

2 Яке призначення функції AVG?

3 В якій фразі формуємо стовпець, що обчислюється?

4 Як знаходиться кількість записів в таблиці?

 

Постановка завдання

 

1 Для бази даних Успішність з чотирьох таблиць: Група, Студенти, Дисципліни, Оцінки ввести по 5-10 базу даних.

2 Створити запити на мові SQL для варіанту, що відповідає порядковому номеру студента в журналі.










Последнее изменение этой страницы: 2018-05-29; просмотров: 176.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...