122.49K
Categories: informaticsinformatics databasedatabase

SQL-запросы

1.

SQL-запросы
Составить запросы на языке
SQL на выборку данных из
таблиц Работники, Работы,
Строения

2.

Два основных языка запроса
• 1.SQL-Structure Qvery Language - требует
программирования
• 2. QBE- Qvery By Example запросы по образцувизуальное формирование
Операторы SQL
DDL- язык описания данных (создание и удаление
таблиц, изменение структуры таблиц)
DML- язык манипулирования данными (выборка
данных, изменение записей, вставка, удаление
записей)

3.

Формат оператора select
Select all/distinct {имена столбцов
функции
выражения
FROM список таблиц
[WHERE условие отбора данных]
[ORDER BY список имен столбцов для сортировки]
[GROUP BY список имен столбцов для группировки]
[HAVING условие группировки]

4.

Функции
• MAX()
• MIN()
• SUM()- сумма значений указанного столбца
• COUNT()- количество записей
• AVG() среднее значение в указанном столбце
Like ‘ образец’ – выборка по образцу или
шаблону
Имя столбца IN(список значений)- выборка на
вхождение в список значений

5.

Кто из штукатуров получает > $12 в час?
SELECT РАБОТНИКИ.ФИО,
РАБОТНИКИ.ПОЧАС_СТАВКА,
РАБОТНИКИ.СПЕЦИАЛЬНОСТЬ
FROM РАБОТНИКИ
WHERE (РАБОТНИКИ.ПОЧАС_СТАВКА >12) AND
(РАБОТНИКИ.СПЕЦИАЛЬНОСТЬ = ‘Штукатур’);
РАБОТНИКИ.ФИО
РАБОТНИКИ.СПЕЦИАЛЬНОСТЬ
РАБОТНИКИ.ПОЧАС_СТАВКА
НЕМО
ШТУКАТУР
13,75

6.

У кого почасовая ставка от
$10 до $ 12 в час?
SELECT РАБОТНИКИ.ФИО,
РАБОТНИКИ.ПОЧАС_СТАВКА
FROM РАБОТНИКИ
WHERE (РАБОТНИКИ.ПОЧАС_СТАВКА between
10 and 12);

7.

Какое среднее число дней работы на
строении с № 111?
SELECT AVG(РАБОТЫ.Кол-во_дней) AS
Среднее_кол_дней
FROM РАБОТЫ
WHERE РАБОТЫ.Номер_строения = 111;
Среднее_кол_дней
8,7

8.

На каких типах строений работает КОЛУМБ?
SELECT СТРОЕНИЯ.ТИП
FROM РАБОТНИКИ,РАБОТЫ,СТРОЕНИЯ
WHERE (РАБОТНИКИ.ТАБ_НОМЕР =
РАБОТЫ.ТАБ_НОМЕР) And
(РАБОТЫ.[№ СТРОЕНИЯ]=СТРОЕНИЯ.[№ Строения])
And (РАБОТНИКИ.ФИО = “КОЛУМБ”);
ТИП
МАГАЗИН
СКЛАД

9.

Каковы специальности рабочих,
назначенных на строительство МАГАЗИНА?
SELECT РАБОТНИКИ.СПЕЦИАЛЬНОСТЬ
FROM РАБОТНИКИ, РАБОТЫ, СТРОЕНИЯ
WHERE (РАБОТНИКИ.Таб_номер =
РАБОТЫ. Таб_номер) And (РАБОТЫ.
[№СТРОЕНИЯ]=СТРОЕНИЯ.[№СТРОЕНИЯ] )
And (СТРОЕНИЯ.ТИП = « МАГАЗИН»);
СПЕЦИАЛЬНОСТЬ
КРОВЕЛЬЩИК
ШТУКАТУР
ЭЛЕКТРИК

10.

Определить максимальную недельную
зарплату(рабочая неделя 40 часов)
SELECT МАХ(РАБОТНИКИ.ПОЧАС_СТАВКА*40)
AS МАКС_НЕДЕЛЬНАЯ_СТАВКА
FROM РАБОТНИКИ
МАКС_НЕДЕЛЬНАЯ_СТАВКА
696

11.

Какова минимальная почасовая ставка ?
SELECT MIN(РАБОТНИКИ.Почас_ставка) AS
Минимальная_ставка
FROM РАБОТНИКИ
Минимальная_ставка
8,20

12.

Какое общее число дней плотницких работ
на строении с №111?
SELECT SUM(РАБОТЫ.[Кол-во дней]) AS
Общее_число_дней
FROM РАБОТНИКИ, РАБОТЫ
WHERE (РАБОТНИКИ.Таб_номер = РАБОТЫ.Таб_номер)
And (РАБОТНИКИ.Cпециальность = ’Плотник’) And
(РАБОТЫ.№Строения=111);
Общее_число_дней
22

13.

Какова средняя почасовая ставка ?
SELECT AVG(РАБОТНИКИ.ПОЧАС_СТАВКА) AS
Средняя_почасовая_ставка
FROM РАБОТНИКИ
Cредняя_почасовая_ставка
12,7

14.

Сколько строений имеют
уровень качества > 3?
SELECT COUNT(СТРОЕНИЯ.№Строения) AS
Кол-во_строений
FROM СТРОЕНИЯ
WHERE СТРОЕНИЯ.УРОВЕНЬ_КАЧЕСТВА>3
Кол-во_строений
1

15.

Получить список работников, строящих
ЖИЛ_ДОМ?
SELECT DISTINCT РАБОТНИКИ.ФИО
FROM РАБОТНИКИ, РАБОТЫ, СТРОЕНИЯ
WHERE (РАБОТНИКИ.Таб_номер =
РАБОТЫ.Таб_номер) And
(РАБОТЫ.[№Строения]=СТРОЕНИЯ.[№Строения])
And (СТРОЕНИЯ.ТИП=’ЖИЛ_ДОМ’);
ФИО
РИКОВЕР
НЕМО
ФАРАДЕЙ

16.

Кто из штукатуров получает > $12 в час?
SELECT РАБОТНИКИ.ФИО,
РАБОТНИКИ.ПОЧАС_СТАВКА
FROM РАБОТНИКИ
WHERE (РАБОТНИКИ.ПОЧАС_СТАВКА >12) AND
( РАБОТНИКИ.СПЕЦИАЛЬНОСТЬ = ‘Штукатур’)
РАБОТНИКИ.ФИО
РАБОТНИКИ.ПОЧАС_СТАВКА
НЕМО
13,75

17.

Выполнить нормализацию
универсального отношения ПРОЕКТЫ
ФИО
Должность
Лахова С.А.
инженер
Светлов А.Ю
гл.инженер
Соловьева О.С.
программист
Тимофеева Е.В.
программист
Светлов А.Ю
гл.инженер
Трофимов
программист
Проект
Разработка АС
«Кадры»
Разработка АС
«Кадры»
Разработка АС
«Зарплата»
Разработка АС
«Зарплата»
Разработка АС
«Судоремонт»
Разработка АС
«Судоремонт»
Срок
окончания
работ
Оклад
01.06.07
10000
01.06.07
20000
10.07.07
15000
10.07.07
15000
01.08.07
20000
01.08.07
15000

18.

Составной ключ – ФИО, ПРОЕКТ
Функциональные зависимости:
Частичная: ФИО→ Должность
ПРОЕКТ → СРОК ОКОНЧАНИЯ РАБОТ
Транзитивная : ФИО→ Должность, ОКЛАД
ФИО→ Должность
Должность → ОКЛАД
ПРОЕКТ
ФИО*
Лахова С.А.
Светлов А.Ю
Соловьева О.С.
Тимофеева Е.В.
Светлов А.Ю
Трофимов А.А.
3НФ
Проект*
Разработка АС «Кадры»
Разработка АС «Кадры»
Разработка АС «Зарплата»
Разработка АС «Зарплата»
Разработка АС «Ремонт судов»
Разработка АС «Ремонт судов»
Разработка АС
«Кадры»
Разработка АС
«Зарплата»
Разработка АС
«Судоремонт»
3НФ
ФИО*
Должность
Лахова С.А.
Светлов А.Ю
инженер
гл.инженер
Соловьева О.С.
программист
Тимофеева Е.В.
программист
ОКЛАД
3НФ
Срок окончания работ
Должность*
ОКЛАД
01.06.07
инженер
гл.инженер
программист
10000
20000
15000
СРОК ОКОНЧАНИЯ
Проект*
ДОЛЖНОСТЬ
3НФ
10.07.07
01.08.07

19.

Выполнить нормализацию универсального отношения
СУДОВОЕ ДОНЕСЕНИЕ
Бортовой
номер
ФИО капитана
МИ 0085
Калинин А.В.
МИ 0085
Калинин А.В.
МИ 0085
Калинин А.В.
АИ 1594
Дубов В.И.
АИ 1594
Дубов В.И.
АИ 1594
Дубов В.И.
МИ 0085
Калинин А.В.
МИ 0085
Калинин А.В.
МИ 0086
Mалинин И.С.
Численность
экипажа
32
32
32
33
33
33
32
32
30
Район
промысла
Объект
Дата
промысла составления
Ян – Майен
Путассу
Ян – Майен
Сельдь
Ян – Майен
Треска
Шпицберген
Сайка
Шпицберген
Пикша
Шпицберген
Путассу
Ян – Майен
Скумбрия
Ян – Майен
Треска
СЗА
Треска
Вылов
(т)
18.10.02
10
18.10.02
5
18.10.02
5
20.10.02
30
20.10.02
2
20.10.02
7
25.10.02
12
25.10.02
15
26.10.02
2

20.

Составной ключ – БОРТОВОЙ НОМЕР, ОБЪЕКТ
ПРОМЫСЛА, ДАТА СОСТАВЛЕНИЯ
Функциональные зависимости:
Полная : БОРТОВОЙ НОМЕР , ОБЪЕКТ
ПРОМЫСЛА, ДАТА СОСТАВЛЕНИЯ → Вылов(т)
Частичная: БОРТОВОЙ НОМЕР →ФИО капитана,
Численность экипажа, Район промысла

21.

СУДОВОЕ ДОНЕСЕНИЕ
Бортовой
номер*
Объект
промысла*
МИ 0085
Путассу
МИ 0085
Сельдь
МИ 0085
Треска
АИ 1594
Сайка
АИ 1594
Пикша
АИ 1594
Путассу
МИ 0085
Скумбрия
МИ 0085
Треска
МИ 0086
Треска
Дата
составления*
Вылов (т)
18.10.02
10
18.10.02
5
18.10.02
5
20.10.02
30
20.10.02
2
20.10.02
7
25.10.02
12
25.10.02
15
26.10.02
2

22.

СУДНО
3НФ
Бортовой номер *
ФИО капитана
Численность
экипажа
Район
промысла
МИ 0085
Калинин А.В.
32
Ян – Майен
АИ 1594
Дубов В.И.
33
Шпицберген
МИ 0086
Mалинин И.С.
30
СЗА

23.

Выполнить нормализацию универсального отношения
ЗАРАБОТНАЯ ПЛАТА
ФИО
Разряд Оклад Вид доплаты преподавателю
Сумма
доплаты
Клочков С.В.
13
2300
Классное руководство
300
Клочков С.В.
13
2300
Заведование кабинетом
150
Бреус И.В.
11
2100
Заведование кабинетом
150
Некрасов А.Г.
10
2000
Проф. вредность
100
Шугуров Е.П.
14
2500
Проф. вредность
100
Хайров А.Г.
12
2200
Заведование кабинетом
150
Хайров А.Г.
12
2200
Проф. вредность
100
Михайлин И.К.
9
1700
Классное руководство
300
Четчуев Г.В.
10
2000
Проф. вредность
100
Четчуев Г.В.
10
2000
Проверка тетрадей
200
Данько И.К.
14
2500
Заведование кабинетом
150

24.

1. Составной ключ – ФИО, Вид доплаты
преподавателю
2. Функциональные зависимости:
Частичная : Ф.И.О → Разряд
Вид доплаты преподавателю → Сумма
доплаты
Транзитивная : Ф.И.О→ Разряд→Оклад
Устранение транзитивной зависимости
Ф.И.О→ Разряд
Разряд → Оклад

25.

ПРЕПОДАВАТЕЛЬ
ФИО*
3НФ
Разряд
Клочков С.В.
13
Бреус И.В.
11
Некрасов А.Г.
10
Шугуров Е.П.
14
Хайров А.Г.
12
Михайлин И.К.
9
Четчуев Г.В.
10
Данько И.К.
14
ВИД ДОПЛАТЫ
3НФ
Вид доплаты
преподавателю*
Сумма
доплаты
Классное руководство
300
Заведование кабинетом
150
Проф. вредность
100
Проверка тетрадей
200
ОКЛАД
3НФ
Разряд*
Оклад
13
2300
11
2100
10
2000

26.

Выполнить нормализацию универсального отношения
СТУДЕНТ. УСПЕВАЕМОСТЬ
ФИО студента
Дата
сдачи
предмета
111
Иванов А.А.
28.01.08
Базы
данных
неудовлетворительно
21.11.88
120
111
Иванов А.А.
30.01.08
Базы
данных
удовлетворительно
21.11.88
120
112
Моряков В.Н.
29.01.08
Базы
данных
хорошо
22.01.89
120
112
Моряков В.Н.
29.01.08
Философия
хорошо
22.01.89
60
112
Моряков В.Н.
30.01.08
Математика
удовлетворительно
22.01.89
140
113
Лосев К.А.
30.01.08
Базы
данных
отлично
01.02.89
120
№ студ.
билета
Предмет
Оценка
Дата
рождения
Кол-во
часов по
предмету

27.

Первичный ключ: № студ.билета , Дата сдачи
предмета, Предмет
Полная ФЗ: № студ.билета , Дата сдачи
предмета, Предмет → Оценка
Частичная ФЗ: № студ.билета → ФИО
студента, Дата рождения.
Предмет → Количество часов по предмету

28.

УСПЕВАЕМОСТЬ
3НФ
№ студ.
Билета*
Дата сдачи
предмета*
Предмет*
111
28.01.08
Базы данных
неудовлетворительно
111
30.01.08
Базы данных
удовлетворительно
112
29.01.08
Базы данных
хорошо
112
29.01.08
Философия
хорошо
112
30.01.08
Математика
удовлетворительно
113
30.01.08
Базы данных
отлично
Оценка

29.

СТУДЕНТ
КОЛИЧЕСТВО ЧАСОВ
ФИО студента
Дата
рождения
Предмет*
Кол-во часов
по предмету
111
Иванов А.А.
21.11.88
Базы данных
120
112
Моряков В.Н.
22.01.89
Философия
60
113
Лосев К.А.
01.02.89
Математика
140
№ студ.
Билета*
English     Русский Rules