Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
![](images/emoji__ok.png)
Предоплата всего
![](images/emoji__signature.png)
Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Язык SQL: операторы манипулирования данными. Свойства, примеры.
Фрагмент БД деканата (преподаватели).
1) Создание и заполнение отношений.
create table DISCIPLINY
( ID NUMBER(10) NOT NULL,
NAME VARCHAR2(100 ) NOT NULL,
CONSTRAINT PK_DISCIPLINY_1 PRIMARY KEY(ID);
create table PREPODY
( ID NUMBER(10) NOT NULL,
FIO VARCHAR2(100) NOT NULL,
KAF VARCHAR2(10) NOT NULL,
CONSTRAINT PK_PREPODY_1 PRIMARY KEY(ID);
Содержимое поля |
Тип |
Длина |
Дес. |
Примечание |
Факультет |
C |
4 |
|
обязательное поле |
Курс |
N |
1 |
0 |
обязательное поле |
Шифр дисциплины |
N |
5 |
2 |
ключевая комбинация полей |
Группа |
С |
5 |
0 |
|
Экзаменатор |
N |
4 |
0 |
идентификатор, внешний ключ |
Аудитория |
N |
3 |
0 |
0 |
Дата |
D |
0 |
0 |
0 |
Время |
T |
0 |
0 |
0 |
create table SESSYIA
( FAKULTET VARCHAR2(4) NOT NULL,
KURS NUMBER(1) NOT NULL,
ID_DISCIPLINY NUMBER(5, 2) NOT NULL,
GRUPPA VARCHAR2(5) NOT NULL,
EXAMENATOR NUMBER(4) NOT NULL,
AUDITORIYA NUMBER(3),
DATE_EX DATE,
TIME_EX VARCHAR2(10),
CONSTRAINT PK_SESSIYA PRIMARY KEY(ID_DISCIPLINY, GRUPPA),
CONSTRAINT FK_SESSIYA_1 FOREIGN KEY(EXAMENATOR)
REFERENCES PREPODY(ID),
CONSTRAINT FK_SESSIYA_2 FOREIGN KEY(ID_DISCIPLINY)
REFERENCES DISCIPLINY(ID)
) ;
2) Выборка данных.
Проверить уникальность комбинации "Аудитория", "Дата", "Время". Определить дисциплины, по которым нет экзаменов.
select DISCIPLINY.NAME
from DISCIPLINY, SESSYIA
where DISCIPLINY.ID=SESSYIA.ID_DISCIPLINY
and AUDITORIYA IS NULL
and DATE_EX IS NULL
and TIME_EX IS NULL;
Создать расписание экзаменов:
3) Работа с представлениями.
Создать представления:
create view KOL_EX
as
select GRUPPA, COUNT(ID_DISCIPLINY) KOL_EX
from SESSYIA
where AUDITORIYA IS NOT NULL
and DATE_EX IS NOT NULL
and TIME_EX IS NOT NULL
group by GRUPPA;
create view PREPODY_KAF
as
select PREPODY.FIO, PREPODY.KAF, DISCIPLINY.NAME
from PREPODY, DISCIPLINY, SESSYIA
where DISCIPLINY.ID=SESSYIA.ID_DISCIPLINY
and EXAMENATOR=PREPODY.ID
order by PREPODY.FIO;