Читать книгу Разработка и проектирование СУБД - Валерий Федорович Альмухаметов - Страница 2

СУБД «ПРЕДПРИЯТИЕ»

Оглавление

Создать на рабочем диске, например, D: папку, например, с именем Otdel, которая будет содержать файлы базы данных. Используя окно команд СУБД печатать программный код, представленный ниже. Если оператор переносится частично в следующую строку, то необходимо добавлять точку с запятой.

1.Создание базы данных и таблиц

Создание CREATE и удаление DROP.

Например:

CREATE DATABASE ‘d:\otdel\otdel’

CREATE TABLE d:\otdel\tem (id_tem INT PRIMARY KEY,;

nazv CHAR(10) NOT NULL)

CREATE TABLE d:\otdel\sot (id_sot INT PRIMARY KEY,;

dol CHAR(15) NOT NULL, okl CURRENCY, id_tem INT)

CREATE TABLE d:\otdel\dog (suma CURRENCY NOT NULL,;

Dat_b DATE, Dat_e DATE, id_tem INT,;

FOREIGN KEY id_tem TAG id_tem REFERENCES tem)

Первичный ключ таблицы TEM Id_tem, является вторичным таблицы DOG. В таблице SOT первичным является Id_sot.

Так как мы не соединили таблицу SOT по полю Id_tem с таблицей TEM, то, для примера удалим ее и создадим вновь, полю Id_sot присвоим вместо первичного ключ уникальный.

DROP TABLE sot 'd:\otdel' RECYCLE

CREATE TABLE d:\otdel\sot (id_sot INT UNIQUE NOT NULL,;

dol CHAR(15) NOT NULL, okl CURRENCY, id_tem INT,;

FOREIGN KEY id_tem TAG id_tem REFERENCES tem)

Элементы столбца NOT NULL должны иметь не пустое значение. UNIQUE – значение каждого элемента должно быть уникальным. PRIMARY KEY – является первичным ключом. REFERNECES столбец является внешним ключом и указывает на ключ какой таблицы он ссылается.

2.Заполнение таблиц базы данных

Для того чтобы добавить столбец в таблицу, используется оператор ALTER с добавкой ADD:

ALTER TABLE d:\otdel\tem ADD COLUMN kod INT NOT NULL


Чтобы удалить столбец из таблицы, используется оператор ALTER с добавкой DROP:

ALTER TABLE d:\otdel\tem DROP COLUMN kod


Добавим в созданные таблицы записи.

Заполнить данными таблицу Sot:

INSERT INTO d:\otdel\tem (id_tem, nazv) VALUES (1, "Proekt1")

INSERT INTO d:\otdel\tem (id_tem, nazv) VALUES (2, "Proekt2")

INSERT INTO d:\otdel\sot (id_sot,dol,okl,id_tem);

VALUES(1,'sotr',5000,1)

и повторить для других строк таблицы Sot:

(2,'sotr',5000,2)

(3,'sotr',6000,1)

(4,'sotr',4000,2)

(5,'sotr',3000,1)

(6,'sotr',2500,2)

Заполнить данными таблицу Dog:

INSERT INTO d:\otdel\dog (suma,dat_b,dat_e,id_tem);

VALUES(500000,{01/01/07},{01/01/09},1)

INSERT INTO d:\otdel\dog (suma,dat_b,dat_e,id_tem);

VALUES(400000,{01/01/08},{01/01/09},2)

INSERT INTO d:\otdel\dog (suma,dat_b,dat_e,id_tem);

VALUES(0,{01/01/08},{01/01/09},2)

При добавлении данных в таблицы можно использовать вычисления, например, добавим в таблицу столбец и вычислим период действия договора в количестве месяцев:

ALTER TABLE d:\otdel\dog ADD COLUMN period float

INSERT INTO d:\otdel\dog (suma, dat_b, dat_e, id_tem, period);

VALUES(0,{01/01/08},{03/03/09},2,(dog.dat_e-dog.dat_b)/30.5)

3.Модификация данных

Изменим в таблице Sot записи:

UPDATE d:\otdel\sot SET okl = okl*2 WHERE (id_sot = 6);

OR (okl BETWEEN 2500.0000 AND 3500.0000)

Удалим из таблицы Dog лишнюю запись:

DELETE FROM d:\otdel\dog WHERE suma = 0.0000

CLEAR

PACK

DELETE помечает выбранные записи на удаление. CLEAR удаляет выбранные записи. PACK обновляет таблицу.

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

Для извлечения записей из таблиц в SQL определен оператор SELECT.

В SQL также определены функции. Среди них:

AVG(<имя поля>) – среднее по значениям данного поля;

COUNT(<имя поля>) или COUNT (*) – число записей;

MAX(<имя поля>) – максимальное из значений поля;

MIN(<имя поля>) – минимальное из значений поля;

SUM(<имя поля>) – сумма значений поля.

Группировка данных в операторе SELECT осуществляется с помощью ключевого слова GROUP BY и ключевого слова HAVING, с помощью которого задаются условия разбиения записей на группы. Для сортировки данных, получаемых при помощи оператора SELECT, служит ключевое слово ORDER BY.

Выполним запрос с вычислениями:

SELECT id_tem AS код_темы, suma AS сумма,;

(dat_e-dat_b)/30.5 AS период FROM dog

5. Создание представлений

Представления таблиц создается с помощью оператора SELECT. После создания представления с полученным набором данных можно обращаться как с таблицей.

Создадим представление для подсчета рабочего периода в количестве месяцев по договорам:

CREATE VIEW Period AS SELECT id_tem AS Tema,;

suma AS Cymma, (dat_e-dat_b)/30.5 AS Period FROM dog


Создадим представление для подсчета суммы выделяемой на заработную плату за весь период и суммы налога на заработную плату по темам:

CREATE VIEW Zarplata AS SELECT id_tem AS Tema,;

cymma as cymma,sum(okl)*period AS Zarp,;

sum(okl)*period*0.36 AS Nalog FROM sot,period;

WHERE sot.id_tem=period.Tema GROUP BY id_tem


Создадим представление для подсчета остатка суммы по темам:

CREATE VIEW Ostatok AS SELECT tema AS Tema, ;

suma AS symma,suma-zarp-nalog AS ostatok;

FROM zarplata,dog;

WHERE dog.id_tem=zarplata1.Tema GROUP BY Tema

Разработка и проектирование СУБД

Подняться наверх