Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по ИТ Блинова.doc
Скачиваний:
10
Добавлен:
17.08.2019
Размер:
2.16 Mб
Скачать

2 Реализация серверной части. Язык запросов sql

Язык SQL позволяет в виде команд представить все действия с базой. Вся работа с базой выполняется с помощью SQL запросов. Любые другие методы доступа приводили бы к обходу системы защиты и могли бы явиться причиной нарушения требований безопасности и целостности.

Создание таблиц выполняется командой CREATE TABLE. Для создаваемой таблицы указывается название полей и все ограничения. Т.е. ранее спроектированная таблица полностью и без изменений передаётся на сервер и выполняется это с помощью SQL запроса.

Строки ограничений целостности начинаются со слова CONSTRAINT, для них указывается имя ограничения, чтобы к нему можно было обращаться. Ограничение указывается для конкретного поля, пишется напротив него.

Если SQL запрос написан правильно, будет возвращена строка: таблица создана.

Создание таблицы Кафедра (kafedra11):

CREATE TABLE kafedra11

(kkafed11 NUMBER CONSTRAINT pk_kkafed11 primary key ,

kafedra11 VARCHAR2(20) CONSTRAINT nn_kafedra11 NOT NULL)

Создание таблицы Факультет (fakultett1):

CREATE TABLE fakultett1

(kfak1 NUMBER CONSTRAINT pk_kfak1 primary key,

fakultet1 VARCHAR2(20) CONSTRAINT nn_fakultet1 NOT NULL)

Создание таблицы Ученая степень (uchstepen1):

CREATE TABLE uchstepen1

(kuchst1 NUMBER CONSTRAINT pk_kuchst1 primary key,

uchstn1 VARCHAR2(15) CONSTRAINT nn_uchstn1 NOT NULL )

Создание таблицы Город (gorodd1):

CREATE TABLE gorodd1

(kgor1 NUMBER CONSTRAINT pk_kgor1 primary key,

gorod1 VARCHAR2(15) CONSTRAINT nn_gorod1 NOT NULL )

Создание таблицы Преподаватели (prepodavateli1):

CREATE TABLE prepodavateli1

(tabnomer1 NUMBER CONSTRAINT pk_tabnomer1 primary key,

familia1 VARCHAR2(15) CONSTRAINT nn_familia1 NOT NULL,

io1 VARCHAR2(30) CONSTRAINT nn_io1 NOT NULL,

kkafed1 NUMBER CONSTRAINT fk_kkafed1 REFERENCES kafedra11(kkafed11),

kfak1 NUMBER CONSTRAINT fk_kfak1 REFERENCES fakultett1(kfak1),

kuchst1 NUMBER CONSTRAINT fk_kuchst1 REFERENCES uchstepen1(kuchst1),

kgor1 NUMBER CONSTRAINT fk_gor1 REFERENCES gorodd1(kgor1),

adres1 VARCHAR2(25) CONSTRAINT nn_adres1 NOT NULL,

telefon1 NUMBER,

datapostrab1 DATE )

Создание таблицы Форма контрля (formakontrol1):

CREATE TABLE formakontrol1

(kformkontr1 NUMBER CONSTRAINT pk_kformkontr1 primary key,

formkontr1 VARCHAR2(20) CONSTRAINT nn_formkontr1 NOT NULL )

Создание таблицы Специальность (specc1):

CREATE TABLE specc1

(kspec1 NUMBER CONSTRAINT pk_kspec1 primary key,

spec1 VARCHAR2(15) CONSTRAINT nn_spec1 NOT NULL )

Создание таблицы Группы (grupaa1):

CREATE TABLE grupaa1

(kgr1 NUMBER CONSTRAINT pk_kgr1 primary key,

gr1 VARCHAR2(5) CONSTRAINT nn_gr1 NOT NULL,

kspec11 NUMBER CONSTRAINT fk_kspec11 REFERENCES specc1(kspec1),

kfak11 NUMBER CONSTRAINT fk_kfak11 REFERENCES fakultett1(kfak1))

Создание таблицы Курсы (kursi1):

CREATE TABLE kursi1

(kpredmet1 NUMBER CONSTRAINT pk_kpredmet1 primary key,

predmet1 VARCHAR2(15) CONSTRAINT nn_predmet1 NOT NULL,

kgr1 NUMBER CONSTRAINT fk_kgr1 REFERENCES grupaa1(kgr1),

lekcii1 NUMBER CONSTRAINT nn_lekcii1 NOT NULL,

prz1 NUMBER CONSTRAINT nn_prz1 NOT NULL,

lr1 NUMBER CONSTRAINT nn_lr1 NOT NULL,

kformikontr1 NUMBER CONSTRAINT fk_kformikontr1 REFERENCES formakontrol1(kformkontr1),

semestr1 NUMBER CONSTRAINT nn_semestr1 NOT NULL,

tabnomer1 NUMBER CONSTRAINT fk_tabnomer1 REFERENCES prepodavateli1(tabnomer1) )

Создание таблицы Экзамены (ekzamen1):

CREATE TABLE ekzamen1

(kekzamen1 NUMBER CONSTRAINT pk_kekzamen1 primary key,

kgr11 NUMBER CONSTRAINT fk_kgr11 REFERENCES grupaa1(kgr1),

chislo1 DATE CONSTRAINT nn_chislo1 NOT NULL,

kpredmeta1 NUMBER CONSTRAINT fk_kpredmeta1 REFERENCES kursi1(kpredmet1),

auditoria1 VARCHAR2(10) CONSTRAINT nn_auditoria1 NOT NULL,

semestr11 NUMBER CONSTRAINT nn_semestr11 NOT NULL,

tabnomer11 NUMBER CONSTRAINT fk_tabnomer11 REFERENCES prepodavateli1(tabnomer1))

Заполнение таблиц информацией выполняется командой INSERT INTO, после которой указывается имя таблицы, в которую добавляется информация. Затем следует строка VALUES(), где в скобках через запятую перечисляются все значения полей таблицы в том же порядке, что и при создании таблицы, причём значения полей символьного типа указываются в кавычках.

В таблицы разрабатываемой базы данных необходимо занести по несколько строк информации.

Добавление информации в таблицу Кафедра (kafedra11) :

INSERT INTO kafedra11(kkafed11,kafedra11) VALUES ('001','visshey matematiki')

INSERT INTO kafedra11(kkafed11,kafedra11) VALUES ('002','fiziki')

INSERT INTO kafedra11(kkafed11,kafedra11) VALUES ('003','kibernetiki')

INSERT INTO kafedra11(kkafed11,kafedra11) VALUES ('004','teor meh')

INSERT INTO kafedra11(kkafed11,kafedra11) VALUES ('005','sopr mat')

Вывод данных таблицы Кафедра (kafedra11):

SELECT* FROM kafedra11

Результат:

Добавление информации в таблицу Факультет (fakultett1) :

INSERT INTO fakultett1(kfak1,fakultet1) VALUES ('011','MSF')

INSERT INTO fakultett1(kfak1,fakultet1) VALUES ('012','AF')

INSERT INTO fakultett1(kfak1,fakultet1) VALUES ('013','EF')

INSERT INTO fakultett1(kfak1,fakultet1) VALUES ('014','ASF')

INSERT INTO fakultett1(kfak1,fakultet1) VALUES ('015','HF')

Вывод данных таблицы Факультет (fakultett1) :

SELECT* FROM fakultett1

Результат:

Добавление информации в таблицу Ученая степень (uchstepen1) :

INSERT INTO uchstepen1(kuchst1,uchstn1) VALUES ('111','docent')

INSERT INTO uchstepen1(kuchst1,uchstn1) VALUES ('113','doctor')

Вывод данных таблицы Ученая степень (uchstepen1) :

SELECT* FROM uchstepen1

Результат:

Добавление информации в таблицу Город (gorodd1) :

INSERT INTO gorodd1(kgor1,gorod1) VALUES ('121','yaroslavl')

INSERT INTO gorodd1(kgor1,gorod1) VALUES ('122','rybinsk')

INSERT INTO gorodd1(kgor1,gorod1) VALUES ('123','kostroma')

INSERT INTO gorodd1(kgor1,gorod1) VALUES ('124','ivanovo')

INSERT INTO gorodd1(kgor1,gorod1) VALUES ('125','tutaev')

Вывод данных таблицы Город (gorodd1) :

SELECT* FROM gorodd1

Результат:

Добавление информации в таблицу Преподаватели (prepodavateli1) :

INSERT INTO prepodavateli1(tabnomer1,familia1,io1,kkafed1,kfak1,kuchst1,kgor1,adres1,telefon1,datapostrab1)

VALUES ('11111','Ivanov','Ivan Ivanovich','001','011','111','121','ul.Panina d.11 kv.49','556677',TO_DATE('14.08.2005','DD.MM.YYYY'))

INSERT INTO prepodavateli1(tabnomer1,familia1,io1,kkafed1,kfak1,kuchst1,kgor1,adres1,telefon1,datapostrab1)

VALUES ('22222','Petrov','Petr Petrovich','002','012','111','125','ul.Gagarina d.1 kv.19','128954',TO_DATE('04.01.2007','DD.MM.YYYY'))

INSERT INTO prepodavateli1(tabnomer1,familia1,io1,kkafed1,kfak1,kuchst1,kgor1,adres1,telefon1,datapostrab1)

VALUES ('33333','Vasilieva','Elena Vladimirovna','004','011','111','121','ul.Nekrasova d.51 kv.42','904545',TO_DATE('12.08.2005','DD.MM.YYYY'))

INSERT INTO prepodavateli1(tabnomer1,familia1,io1,kkafed1,kfak1,kuchst1,kgor1,adres1,telefon1,datapostrab1)

VALUES ('44444','Antonov','Vladimir Ivanovich','003','015','111','124','ul.Lenina d.34 kv.115','331514',TO_DATE('01.09.2002','DD.MM.YYYY')) INSERT INTO nazvanie(kdnazv,nazv,lekcii,prakt,laborat,kdkontr,semestr) VALUES (5,'himiya',45,30,30,5,10)

Вывод данных таблицы Преподаватели (prepodavateli1) :

SELECT* FROM prepodavateli1

Результат:

Добавление информации в таблицу Форма контроля (formakontrol1) :

INSERT INTO formakontrol1(kformkontr1,formkontr1) VALUES ('221','zachet')

INSERT INTO formakontrol1(kformkontr1,formkontr1) VALUES ('222','dif. zachet')

INSERT INTO formakontrol1(kformkontr1,formkontr1) VALUES ('223','ekzamen')

INSERT INTO formakontrol1(kformkontr1,formkontr1) VALUES ('224','kursovaya rabota')

INSERT INTO formakontrol1(kformkontr1,formkontr1) VALUES ('225','-')

Вывод данных таблицы контроля (formakontrol1) :

SELECT* FROM formakontrol1

Результат:

Добавление информации в таблицу Специальности (specc1) :

INSERT INTO specc1(kspec1,spec1) VALUES ('231','avtom i upravl')

INSERT INTO specc1(kspec1,spec1) VALUES ('232','dorogi')

INSERT INTO specc1(kspec1,spec1) VALUES ('233','avtomehanik')

INSERT INTO specc1(kspec1,spec1) VALUES ('234','ekonomist')

Вывод данных таблицы Специальности (specc1) :

SELECT* FROM specc1

Результат:

Добавление информации в таблицу Группы (grupaa1) :

INSERT INTO grupaa1(kgr1,gr1,kspec11,kfak11) VALUES ('331','MA','231','011')

INSERT INTO grupaa1(kgr1,gr1,kspec11,kfak11) VALUES ('332','ASD','232','014')

INSERT INTO grupaa1(kgr1,gr1,kspec11,kfak11) VALUES ('333','AM','233','012')

INSERT INTO grupaa1(kgr1,gr1,kspec11,kfak11) VALUES ('334','EMO','234','013')

Вывод данных таблицы Группы (grupaa1) :

SELECT* FROM grupaa1

Результат:

Добавление информации в таблицу Курсы (kursi1) :

INSERT INTO kursi1(kpredmet1,predmet1,kgr1,lekcii1,prz1,lr1,kformikontr1,semestr1,tabnomer1)

VALUES ('0001','matematika','331','20','20','0','223','1','11111')

INSERT INTO kursi1(kpredmet1,predmet1,kgr1,lekcii1,prz1,lr1,kformikontr1,semestr1,tabnomer1)

VALUES ('0002','fizika','332','15','5','5','221','2','22222')

INSERT INTO kursi1(kpredmet1,predmet1,kgr1,lekcii1,prz1,lr1,kformikontr1,semestr1,tabnomer1)

VALUES ('0003','teor meh','333','15','20','0','223','1','33333')

Вывод данных таблицы Курсы (kursi1) :

SELECT* FROM kursi1

Результат:

Добавление информации в таблицу Экзамены (ekzamen1) :

INSERT INTO ekzamen1(kekzamen1,kgr11,chislo1,kpredmeta1,auditoria1,semestr11,tabnomer11)

VALUES ('1001','331',TO_DATE('21.01.2009','DD.MM.YYYY'),'0001','B-226','1','11111')

INSERT INTO ekzamen1(kekzamen1,kgr11,chislo1,kpredmeta1,auditoria1,semestr11,tabnomer11)

VALUES ('1002','331',TO_DATE('26.01.2009','DD.MM.YYYY'),'0002','A-325','1','22222')

INSERT INTO ekzamen1(kekzamen1,kgr11,chislo1,kpredmeta1,auditoria1,semestr11,tabnomer11)

VALUES ('1003','331',TO_DATE('30.01.2009','DD.MM.YYYY'),'0003','A-207','1','33333')

Вывод данных таблицы Экзамены (ekzamen1) :

SELECT* FROM ekzamen1

Результат:

Удаление данных из таблицы происходит командой DELETE.

Из таблицы Город (gorodd1) удаляются записи для которых kgor1=125

DELETE FROM gorodd1 WHERE kgor1=125

Если запрос был написан верно, будет возвращена строка: 1 строка удалена.

Результат:

Модификация данных происходит с помощью команды UPDATE. Для примера проведём модификацию данных таблицы Курсы (kursi1) а именно увеличим номер семестра на 1:

UPDATE kursi1 SET semestr1= semestr1+1

Результат:

Выбрать из таблицы Преподаватели значения полей табельный номер и фамилия для всех записей и отсортировать их по полю табельный номер:

SELECT tabnomer1, familia1 FROM prepodavateli1 ORDER BY tabnomer1

Результат:

Выбрать из таблицы Преподаватели значения полей Фамилия и Адрес для всех записей и отсортировать их по полю Фамилия:

SELECT familia1, adres1 FROM prepodavateli1 ORDER BY familia1

Результат:

С помощью выборки определить количество записей в таблице специальность:

SELECT COUNT(*) FROM specc1

Результат:

Выбрать из таблицы Курсы табельный номер преподавателя и число пр/з, число пр/з которых больше 10

SELECT tabnomer1, prz1 FROM kursi1 WHERE prz1>10

Результат:

Выбрать из таблиц Преподаватели и Курсы фамилию преподавателя и число л/р

SELECT prepodavateli1. familia1, kursi1.lekcii1 FROM prepodavateli1, kursi1 WHERE prepodavateli1.tabnomer1= kursi1. tabnomer1

Результат:

Выбрать из справочной таблицы информацию об объектах в названиях которых нет заданной последовательности букв (dv)

SELECT spec1 FROM specc1 WHERE spec1 NOT LIKE 'av%'

Результат:

Вывести информацию подчиненной таблицы специальность, заменяя коды соответствующими значениями из родительской таблицы группы

SELECT gr1, fakultet1 FROM grupaa1, fakultett1 WHERE grupaa1. kfak11= fakultett1. kfak1

Результат:

Вывести количество преподавателей работающих на кафедре ID которой равен 004

SELECT COUNT (familia1) FROM prepodavateli1, kafedra11 WHERE (prepodavateli1. kkafed1= kafedra11. kkafed11) and (kafedra11. kkafed11=002)

Результат:

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]