Материал: tbd2

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

ЛАБОРАТОРНАЯ РАБОТА №2

по дисциплине «ТЕХНОЛОГИИ БАЗ ДАНЫХ»

Кафедра ИСУиА

Выполнил:

МОСКВА, 2018 г.

Цель работы

Построить таблицы, заполнить их информацией и сформировать по 2 запроса следующих типов:

  • выборка всех данных;

  • запрос с условием;

  • запрос с использованием синонимов;

  • с использованием подзапроса;

  • с использованием сортировки;

  • с использованием группировки;

  • с использованием конкатенации;

  • выборка неповторяющихся записей;

  • с использованием агрегатных функций;

  • с использованием NOT;

  • с использованием WHERE.

Запросы сохранить в виде представлений

Выполнение.

Создадим таблицы, к которым будут написаны запросы, и заполним их записями. Для этого создадим файл Tables.sql со следующим содержанием:

CREATE TABLE FRESHMEN_STD(

id INT PRIMARY KEY,

name VARCHAR(20) NOT NULL,

surname VARCHAR(20) NOT NULL,

birthdate DATE NOT NULL,

pointsumm INT NOT NULL);

CREATE TABLE FAC_PTS(

id INT PRIMARY KEY,

name VARCHAR(10) NOT NULL,

min_pts INT NOT NULL);

INSERT INTO FRESHMEN_STD VALUES (1,'KIRILL','SIMONOV','04-08-1997',231);

INSERT INTO FRESHMEN_STD VALUES (2,'JOHN', 'SMITH','12-01-1997',220);

INSERT INTO FRESHMEN_STD VALUES (3,'OLOF', 'MEISTER','29-10-1997',181);

INSERT INTO FRESHMEN_STD VALUES (4,'MARIA', 'DISH','05-06-1998',238);

INSERT INTO FRESHMEN_STD VALUES (5,'FILTHY', 'ROBOT','05-11-1996',225);

INSERT INTO FRESHMEN_STD VALUES (6,'GOOD', 'GUY','30-12-1997',190);

INSERT INTO FRESHMEN_STD VALUES (7,'FELIX','KJELBERG','29-10-1997',399);

INSERT INTO FAC_PTS VALUES (1,'BST', 210);

INSERT INTO FAC_PTS VALUES (2,'BVT', 215);

INSERT INTO FAC_PTS VALUES (3,'IB', 190);

INSERT INTO FAC_PTS VALUES (4,'BAP', 200);

INSERT INTO FAC_PTS VALUES (5,'BRT', 215);

В ыведем результаты выполнения данных команд (рисунок 1):

Рисунок 1 – Таблицы FRESHMEN_STD и FAC_PTS

Напишем запросы, которые требуются по заданию. Для этого создадим файл Queries.sql и заполним его:

CREATE VIEW all_students AS

SELECT * FROM FRESHMEN_STD;

CREATE VIEW all_faculties AS

SELECT * FROM FAC_PTS;

CREATE VIEW john AS

SELECT * FROM FRESHMEN_STD WHERE NAME='JOHN';

CREATE VIEW good_pts AS

SELECT * FROM FRESHMEN_STD WHERE POINTSUMM > 230;

CREATE VIEW full_names AS

SELECT std_p.NAME, std_p.SURNAME FROM FRESHMEN_STD std_p;

CREATE VIEW bst_accepted AS

SELECT ID FROM FRESHMEN_STD WHERE POINTSUMM >= (SELECT MIN_PTS FROM FAC_PTS WHERE NAME='BST');

CREATE VIEW maria_accepted AS

SELECT NAME FROM FAC_PTS WHERE MIN_PTS<= (SELECT POINTSUMM FROM FRESHMEN_STD WHERE NAME='MARIA');

CREATE VIEW min_to_max AS

SELECT NAME FROM FAC_PTS ORDER BY MIN_PTS ASC;

CREATE VIEW std_age AS

SELECT NAME, SURNAME FROM FRESHMEN_STD ORDER BY BIRTHDATE;

CREATE VIEW birthdate_count AS

SELECT BIRTHDATE, COUNT(pointsumm) "POINTSUMM" FROM FRESHMEN_STD GROUP BY BIRTHDATE;

CREATE VIEW min_pts_count AS

SELECT MIN_PTS, COUNT(name) "NAME" FROM FAC_PTS GROUP BY MIN_PTS;

CREATE VIEW alot_of_points AS

SELECT 'Student HAS MORE THEN 220 POINTS:' || SURNAME "SURNAME" FROM FRESHMEN_STD WHERE POINTSUMM > 200;

CREATE VIEW pass_points AS

SELECT MIN_PTS || ' points is needed for faculties: ' || COUNT(NAME) "NAME" FROM FAC_PTS GROUP BY MIN_PTS;

CREATE VIEW distinct_birthdate AS

SELECT DISTINCT BIRTHDATE FROM FRESHMEN_STD;

CREATE VIEW deistinct_min_pts AS

SELECT DISTINCT MIN_PTS FROM FAC_PTS;

CREATE VIEW avg_pts AS

SELECT AVG(POINTSUMM) "POINTSUMM" FROM FRESHMEN_STD;

CREATE VIEW max_pts AS

SELECT MAX(min_pts) "MIN_PTS" FROM FAC_PTS;

CREATE VIEW not_leo AS

SELECT * FROM FRESHMEN_STD WHERE BIRTHDATE NOT BETWEEN '23-07-1997' AND '22-08-1997';

CREATE VIEW not_accepted AS

SELECT * FROM FRESHMEN_STD WHERE POINTSUMM IS NOT BETWEEN 190 AND 250;

Выполним данный файл и посмотрим результаты представлений (Рисунки 2-5):

Рисунок 2 – Результаты запросов

Рисунок 3 – Результаты запросов

Рисунок 4 – Результаты запросов

Р исунок 5 – Результаты запросов

Источник: https://studfile.net/preview/16470728/