
лабораторная работа / SQL запросы для учебной базы данных
.doc
SQL запросы для учебной базы данных
Выполним запросы на языке SQL : извлечение данных - команда SELECT.
Запрос 1. SELECT NAME, SURNAME
FROM STUDENT;
Запрос1 |
|
NAME |
SURNAME |
Иван |
Иванов |
Петр |
Петров |
Вадим |
Сидоров |
Борис |
Кузнецов |
Ольга |
Зайцева |
Павел |
Котов |
Вадим |
Белкин |
Андрей |
Павлов |
Антон |
Петров |
Артем |
Лукин |
Запрос 2. SELECT *
FROM STUDENT;
Запрос2 |
|||||||
student_id |
surname |
name |
stipend |
kurs |
city |
birthday |
univ_id |
1 |
Иванов |
Иван |
150 |
1 |
Орел |
03.12.1982 |
10 |
3 |
Петров |
Петр |
200 |
3 |
Курск |
01.12.1980 |
10 |
6 |
Сидоров |
Вадим |
150 |
4 |
Москва |
07.06.1979 |
22 |
10 |
Кузнецов |
Борис |
0 |
2 |
Брянск |
08.12.1981 |
10 |
12 |
Зайцева |
Ольга |
250 |
2 |
Липецк |
01.05.1981 |
10 |
32 |
Котов |
Павел |
150 |
5 |
Белгород |
|
14 |
55 |
Белкин |
Вадим |
250 |
5 |
Воронеж |
07.01.1998 |
10 |
265 |
Павлов |
Андрей |
0 |
3 |
Воронеж |
05.11.1979 |
10 |
276 |
Петров |
Антон |
200 |
4 |
|
05.08.1981 |
22 |
654 |
Лукин |
Артем |
200 |
3 |
Воронеж |
01.12.1981 |
10 |
Запрос 3. SELECT CITY
FROM STUDENT;
Запрос3 |
CITY |
Орел |
Курск |
Москва |
Брянск |
Липецк |
Белгород |
Воронеж |
Воронеж |
|
Воронеж |
Запрос 4. SELECT DISTINCT CITY
FROM STUDENT;
Запрос4 |
CITY |
|
Белгород |
Брянск |
Воронеж |
Курск |
Липецк |
Москва |
Орел |
Запрос 5. SELECT SURNAME, NAME
FROM STUDENT
WHERE SURNAME='Петров';
Запрос5 |
|
SURNAME |
NAME |
Петров |
Петр |
Петров |
Антон |
Запрос 6. SELECT NAME, SURNAME
FROM STUDENT
WHERE KURS=3 And STIPEND>0;
Запрос6 |
|
NAME |
SURNAME |
Петр |
Петров |
Артем |
Лукин |
Запрос 7. SELECT *
FROM EXAM_MARKS
WHERE MARK In (4,5);
Запрос7 |
||||
exam_id |
student_id |
subj_id |
mark |
exam_date |
145 |
12 |
10 |
5 |
12.01.2000 |
34 |
32 |
10 |
4 |
23.01.2000 |
75 |
10 |
10 |
5 |
05.01.2000 |
43 |
6 |
22 |
4 |
18.01.2000 |
Запрос 8. SELECT *
FROM EXAM_MARKS
WHERE MARK Not In (4,5);
Запрос8 |
||||
exam_id |
student_id |
subj_id |
mark |
exam_date |
238 |
265 |
22 |
3 |
17.06.1999 |
Запрос 9. SELECT *
FROM SUBJECT
WHERE HOUR BETWEEN 30 AND 40;
Запрос9 |
|||
subj_id |
subj_name |
hour |
semester |
22 |
Физика |
34 |
1 |
56 |
История |
34 |
4 |
73 |
Физкультура |
34 |
5 |
Запрос 10. SELECT *
FROM STUDENT
WHERE SURNAME LIKE 'П*';
Запрос10 |
|||||||
student_id |
surname |
name |
stipend |
kurs |
city |
birthday |
univ_id |
3 |
Петров |
Петр |
200 |
3 |
Курск |
01.12.1980 |
10 |
265 |
Павлов |
Андрей |
0 |
3 |
Воронеж |
05.11.1979 |
10 |
276 |
Петров |
Антон |
200 |
4 |
|
05.08.1981 |
22 |
Выполним запросы на языке SQL: SELECT-запросы-агрегирование и групповые функции.
Запрос 1. SELECT AVG(MARK)
FROM EXAM_MARKS;
Запрос1 |
Expr1000 |
4,2 |
Запрос 2. SELECT COUNT(*)
FROM EXAM_MARKS;
Запрос2 |
Expr1000 |
6 |
Запрос 3. SELECT DISTINCT COUNT(SUBJ_ID)
FROM SUBJECT;
Запрос3 |
Expr1000 |
6 |
Запрос 4. SELECT STUDENT_ID, MAX(MARK)
FROM EXAM_MARKS
GROUP BY STUDENT_ID;
Запрос4 |
|
STUDENT_ID |
Expr1001 |
6 |
4 |
10 |
5 |
12 |
5 |
32 |
4 |
55 |
|
265 |
3 |
Запрос 5. SELECT STUDENT_ID, SUBJ_ID, MAX(MARK)
FROM EXAM_MARKS
GROUP BY STUDENT_ID, SUBJ_ID;
Запрос5 |
||
STUDENT_ID |
SUBJ_ID |
Expr1002 |
6 |
22 |
4 |
10 |
10 |
5 |
12 |
10 |
5 |
32 |
10 |
4 |
55 |
22 |
|
265 |
22 |
3 |
Запрос 6. SELECT SUBJ_NAME, MAX(HOUR)
FROM SUBJECT
GROUP BY SUBJ_NAME
HAVING MAX(HOUR)>34;
Запрос6 |
|
SUBJ_NAME |
Expr1001 |
Английский |
56 |
Информатика |
56 |
Математика |
56 |
Запрос 7. SELECT *
FROM SUBJECT
ORDER BY SUBJ_NAME;
Запрос7 |
|||
subj_id |
subj_name |
hour |
semester |
94 |
Английский |
56 |
3 |
10 |
Информатика |
56 |
1 |
56 |
История |
34 |
4 |
43 |
Математика |
56 |
2 |
22 |
Физика |
34 |
1 |
73 |
Физкультура |
34 |
5 |
Запрос 8. SELECT *
FROM SUBJECT
ORDER BY SUBJ_NAME DESC;
Запрос8 |
|||
subj_id |
subj_name |
hour |
semester |
73 |
Физкультура |
34 |
5 |
22 |
Физика |
34 |
1 |
43 |
Математика |
56 |
2 |
56 |
История |
34 |
4 |
10 |
Информатика |
56 |
1 |
94 |
Английский |
56 |
3 |
Запрос 9. SELECT *
FROM SUBJECT
ORDER BY SEMESTER, SUBJ_NAME;
Запрос9 |
|||
subj_id |
subj_name |
hour |
semester |
10 |
Информатика |
56 |
1 |
22 |
Физика |
34 |
1 |
43 |
Математика |
56 |
2 |
94 |
Английский |
56 |
3 |
56 |
История |
34 |
4 |
73 |
Физкультура |
34 |
5 |
Запрос 10. SELECT SUBJ_NAME, SEMESTER, MAX(HOUR)
FROM SUBJECT
GROUP BY SEMESTER, SUBJ_NAME
ORDER BY SEMESTER;
Запрос10 |
||
SUBJ_NAME |
SEMESTER |
Expr1002 |
Информатика |
1 |
56 |
Физика |
1 |
34 |
Математика |
2 |
56 |
Английский |
3 |
56 |
История |
4 |
34 |
Физкультура |
5 |
34 |
Запрос 11. SELECT SUBJ_ID, SEMESTER
FROM SUBJECT
ORDER BY 2 DESC;
Запрос11 |
|
SUBJ_ID |
SEMESTER |
73 |
5 |
56 |
4 |
94 |
3 |
43 |
2 |
22 |
1 |
10 |
1 |
Выполним запросы на языке SQL: ВЛОЖЕННЫЕ ПОДЗАПРОСЫ
Запрос 1.SELECT *
FROM EXAM_MARKS
WHERE STUDENT_ID=
(SELECT STUDENT_ID
FROM STUDENT
WHERE SURNAME ='Иванов');
exam_id |
student_id |
subj_id |
mark |
exam_date |
|
|
|
|
|
Запрос 2. SELECT *
FROM EXAM_MARKS
WHERE STUDENT_ID IN
(SELECT STUDENT_ID
FROM STUDENT
WHERE CITY = 'Воронеж');
Запрос2 |
||||
exam_id |
student_id |
subj_id |
mark |
exam_date |
238 |
265 |
22 |
3 |
17.06.1999 |
639 |
55 |
22 |
|
22.06.1999 |