Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Язык SQL: операторы создания таблиц базы данных. Свойства, примеры.
Фрагмент БД недвижимости.
1) Создание и заполнение отношений.
create table VLADELCY
( ID NUMBER(10) NOT NULL,
NAME VARCHAR2(100) NOT NULL,
TEL VARCHAR2(10) NOT NULL,
CONSTRAINT PK_VLADELCY PRIMARY KEY(ID)
);
create table METRO
( ID NUMBER(10) NOT NULL,
NAME VARCHAR2(100) NOT NULL,
CONSTRAINT PK_METRO PRIMARY KEY(ID)
);
Содержимое поля |
Тип |
Длина |
Дес. |
Примечание |
Идентификатор |
N |
5 |
0 |
первичный ключ |
Номер владельца |
N |
6 |
0 |
внешний ключ |
Общая площадь |
N |
4 |
1 |
обязательное поле |
Жилая площадь |
N |
4 |
1 |
обязательное поле |
Количество комнат |
N |
1 |
0 |
обязательное поле |
Размер кухни |
N |
3 |
1 |
обязательное поле |
Этаж |
N |
2 |
0 |
обязательное поле |
Всего этажей в доме |
N |
2 |
0 |
|
Ближайшая станция метро |
N |
3 |
0 |
внешний ключ |
Цена |
N |
7 |
0 |
обязательное поле |
Адрес |
C |
30 |
обязательное поле |
|
Дата поступления |
D |
информации в БД |
create table KVARTIRY
( ID NUMBER(5) NOT NULL,
NUM_VLADELCA NUMBER(6) NOT NULL,
AREA_OBSCH NUMBER(4, 1) NOT NULL,
AREA_JILAYA NUMBER(4, 1) NOT NULL,
KOL_KOMNAT NUMBER(1) NOT NULL,
KITCHEN NUMBER(3, 1) NOT NULL,
FLOOR NUMBER(2) NOT NULL,
FLOOR_VSEGO NUMBER(2),
METRO NUMBER(3) NOT NULL,
PRICE NUMBER(7) NOT NULL,
ADRES VARCHAR2(30) NOT NULL,
DATA_POSTUPL DATE NOT NULL,
CONSTRAINT PK_KVARTIRY PRIMARY KEY(ID),
CONSTRAINT FK_KVARTIRY FOREIGN KEY(NUM_VLADELCA)
REFERENCES VLADELCY(ID),
CONSTRAINT FK_KVARTIRY_2 FOREIGN KEY(ID)
REFERENCES METRO(ID)
);
2) Выборка данных.
Проверить, что для всех квартир общая площадь больше, чем жилая площадь плюс размер кухни. Создать упорядоченные списки:
Проверить, что для всех квартир общая площадь больше, чем жилая площадь плюс размер кухни.
А) select COUNT(*) from KVARTIRY;
Выясняем общее число квартир.
Б) select COUNT(*) from KVARTIRY
where AREA_OBSCH>(AREA_JILAYA+KITCHEN);
Выясняем количество квартир для которых выполняется условие
select * from KVARTIRY
where KOL_KOMNAT=3
and FLOOR<>1
and FLOOR<>FLOOR_VSEGO
order by FLOOR
;
select VLADELCY.NAME, KVARTIRY.ID, KVARTIRY.ADRES
from VARTIRY, VLADELCY
where VLADELCY.ID=KVARTIRY.NUM_VLADELCA
order by VLADELCY.NAME
;
select KVARTIRY.ID, KVARTIRY.ADRES
from KVARTIRY, METRO
where AREA_OBSCH>80
and PRICE<60000
and KVARTIRY.METRO=METRO.ID
and METRO.NAME NOT LIKE 'КИТАЙ-ГОРОД'
order by KVARTIRY.ID
;
3) Работа с представлениями.
Создать представления:
create view VIEW1
as
select * from KVARTIRY
where KOL_KOMNAT=2;
create view VIEW2
as
select VLADELCY.NAME, VLADELCY.TEL, KVARTIRY.AREA_OBSCH
from VLADELCY, KVARTIRY
where VLADELCY.ID=KVARTIRY.NUM_VLADELCA
and KOL_KOMNAT=1
order by VLADELCY.NAME;