Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабортаторные № 1-2

.docx
Скачиваний:
4
Добавлен:
06.02.2022
Размер:
433.32 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

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

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

«Московский технический университет связи и информатики»

Кафедра «Интеллектуальные системы в управлении и автоматизации»

Отчет по лабораторным работам №1-2

по дисциплине «Технологии баз данных»

Выполнил: Кондратьев И.В

Студент группы БСТ1851

Лабораторная работа №1

Цель работы: знакомство с возможностями проверки работоспособности ORACLE-сервер. Создание БД. Приобретение навыков работы в SQL* Plus. Создание пользователя и настройка прав доступа.

  1. Вход в систему.

  1. Проверка сервера

  1. Работа в командной строке SQL Plus

Лабораторная работа №2

Цель: создание таблиц и форматирование запросов в СУРБД Oracle.

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

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

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

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

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

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

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

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

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

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

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

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

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

Создание таблиц CUSTOMERRS и ORDERRS, создание последовательностей ORDER_ID и CUSTOMER_ID

Create table CUSTOMERRS

(CUSTOMER_ID number(10) NOT NULL

,CUST_FIRST_NAME varchar2(20) NOT NULL

,CUST_LAST_NAME varchar2(20) NOT NULL

,CITY varchar2(20)

,AGE varchar2(20)

);

ALTER TABLE CUSTOMERRS

ADD CONSTRAINT CustomerrsSPK PRIMARY KEY (CUSTOMER_ID);

-------------------------------------------------------

Create table ORDERRS

(ORDER_ID number(10) NOT NULL,

CUSTOMER_ID number(10) NOT NULL,

ORDER_TOTAL number(8,2),

ORDER_TIMESTAMP date

);

ALTER TABLE ORDERRS ADD CONSTRAINT CustomerrsFK

FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERRS;

--------------------------------------------------------

Create Sequence ORDER_ID Increment by 1 start with 1;

Create Sequence CUSTOMER_ID Increment by 1 start with 1;

------------------------------------------------------

Заполнение таблиц CUSTOMERRS и ORDERRS

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

VALUES

(CUSTOMER_ID.NextVal,'Adeline', 'West', 'LA', 18);

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

Values

(CUSTOMER_ID.NextVal,'Allegra', 'Soleil', 'LA', 23);

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

Values

(CUSTOMER_ID.NextVal,'Fleur', 'Elliot', 'NY', 16);

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

VALUES

(CUSTOMER_ID.NextVal,'Aurelia', 'West', 'NY', 32);

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

Values

(CUSTOMER_ID.NextVal,'Adeline', 'Sage', 'NY', 19);

INSERT INTO CUSTOMERRS

(CUSTOMER_ID, CUST_FIRST_NAME,CUST_LAST_NAME,CITY,AGE)

VALUES

(CUSTOMER_ID.NextVal,' Daisy', 'Primrose', 'NY', 25);

------------------------------------------------------------------

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,1, 1500, '16.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,2, 1800, '16.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,3, 1400, '17.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,4, 2900, '18.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,5, 18200, '18.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,6, 22000, '18.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,1, 1200, '20.10.21');

INSERT INTO ORDERRS

(ORDER_ID, CUSTOMER_ID,ORDER_TOTAL,ORDER_TIMESTAMP)

VALUES

(ORDER_ID.NextVal,5, 21750, '20.10.21');

----------------------------------------------

Отобразим заполненные таблицы

select * from CUSTOMERRS;

select * from ORDERRS;

Выборка данных

create or replace view L2_P21 as select * from CUSTOMERRS;

create or replace view L2_P22 as select * from ORDERRS;

select * from L2_P21;

select * from L2_P22;

Запрос с условием

create or replace view L2_P31 as select * from CUSTOMERRS where CUSTOMER_ID = 3;

create or replace view L2_P32 as select * from ORDERRS where ORDER_TIMESTAMP = '20.10.21';

select * from L2_P31;

select * from L2_P32;

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

create or replace synonym C for CUSTOMERRS;

create or replace synonym O for ORDERRS;

create or replace view L2_P41 as select * from C;

create or replace view L2_P42 as select * from O;

select * from L2_P41;

select * from L2_P42;

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

create or replace view L2_P51 as

select * from CUSTOMERRS CU where CU.CUSTOMER_ID in (select CUSTOMER_ID from ORDERRS);

select * from L2_P51;

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

create or replace view L2_P61 as select * from CUSTOMERRS order by AGE desc;

create or replace view L2_P62 as select * from ORDERRS order by ORDER_TOTAL asc;

select * from L2_P61;

select * from L2_P62;

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

create or replace view L2_P71 as

select ORDER_TIMESTAMP,

sum(ORDER_TOTAL) as ITOG

from ORDERRS

group by ORDER_TIMESTAMP;

create or replace view L2_P72 as

select CITY,

count(CITY) as KOLVO

from CUSTOMERRS

group by CITY;

select * from L2_P71;

select * from L2_P72;

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

create or replace view L2_P81 as

select ('В городе'||' '||city||' '||'проживает' ||' '||count(city)||' клиентов') as T1

from CUSTOMERRS

group by city;

select * from L2_P81;

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

create or replace view L2_P91 as (select distinct CUST_FIRST_NAME from CUSTOMERRS);

create or replace view L2_P92 as (select distinct ORDER_TIMESTAMP from ORDERRS);

select * from L2_P91;

select * from L2_P92;

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

create or replace view L2_P10_0 as (select count(*) as kolvo_pokup from CUSTOMERRS);

create or replace view L2_P10_1 as (select count(*) as kolvo_zakazov from ORDERRS);

select * from L2_P10_0; select * from L2_P10_1;

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

create or replace view L2_P11_0 as (select * from CUSTOMERRS where CITY not in ('LA'));

create or replace view L2_P11_1 as (select * from ORDERRS where ORDER_TIMESTAMP not in ('20.10.21'));

select * from L2_P11_0;

select * from L2_P11_1;

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

create or replace view L2_P12_0 as (select * from CUSTOMERRS where CUST_FIRST_NAME like ('A%'));

create or replace view L2_P12_1 as (select * from ORDERRS where ORDER_TOTAL > 15000);

select * from L2_P12_0;

select * from L2_P12_1;

Москва 2021