1.7 Свойства
Название (в базе)
Название (перевод)
Описание
Код
Название
Единицы измерения
KOD
NAZVANIE
EDINIZI IZMERENIA
Уникальный индентификатор Название свойства
Единицы измерения свойства
1.8 Профессии
Уникальный индентификатор Название профессии
1.9 Типы фирм
Уникальный индентификатор Название фирмы
1.10 Типы операций
Уникальный индентификатор Название операции
123 - Primary key (первичный ключ)
123 - Foreign key (связь)
123 - Uniqe (уникальный)
2. Примеры создания таблиц
create table Professii (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Personal (KOD NUMBER(5) PRIMARY KEY,
FIO VARCHAR2(50),
TELEFON VARCHAR2(15),
BIRTHSDAY DATE,
ADRES VARCHAR2(30),
POL NUMBER(1),
KOD_PROFESSII NUMBER(5),
UNIQUE (FIO,BIRTHSDAY),
FOREIGN KEY KOD_PROFESSII REFERENCES PROFESSII KOD
create table Svoistva (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30),
EDINIZI IZMERENIA VARCHAR2(10)
create table Texnicheskie_xarakteristiki (
KOD_TOVARA NUMBER(5),
KOD_SVOISTVA NUMBER(5),
ZNACHENIE NUMBER(5),
FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD,
FOREIGN KEY KOD_SVOISTVA REFERENCES SVOISTVA KOD
create table Tipi_firm (KOD NUMBER(5) PRIMARY KEY,
create table Tipi_operazii (KOD NUMBER(5) PRIMARY KEY,
create table Firmi (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE,
KOD_TIPA_FIRMI NUMBER(5),
FOREIGN KEY KOD_TIPA_FIRMI REFERENCES TIPI_FIRM KOD
create table Tipi_tovarov (KOD NUMBER(5) PRIMARY KEY,
KOD_FIRMI NUMBER(5),
KOD_TIPA_TOVARA NUMBER(5),
FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD,
FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD
create table Tovari (KOD NUMBER(5) PRIMARY KEY,
UNIQUE (KOD_TIPA_TOVARA,NAZVANIE),
create table Sklad (
KOD_PERSON NUMBER(5),
KOD_TIPA_OPERAZII NUMBER(5),
ZENA NUMBER(5),
DATA DATE,
KOLICHESTVO NUMBER(3),
FOREIGN KEY KOD_PERSON REFERENCES PERSONAL KOD,
FOREIGN KEY KOD_TIPA_OPERAZII REFERENCES TIPI_OPERAZII KOD
3. Примеры создания последовательностей
CREATE SEQUENCE "SEQPERSONAL" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQFIRMI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQTIPI_TOVAROV" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQTOVARI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
4. Примеры создания триггеров
CREATE OR REPLACE TRIGGER INSERT_IN_PERSONAL
BEFORE INSERT ON PERSONAL
FOR EACH ROW
BEGIN
SELECT SEQPERSONAL.NEXTVAL INTO :new.KOD FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER INSERT_IN_FIRMI
BEFORE INSERT ON FIRMI
SELECT SEQFIRMI.NEXTVAL INTO :new.KOD FROM DUAL;
CREATE OR REPLACE TRIGGER INSERT_IN_TIPI_TOVAROV
BEFORE INSERT ON TIPI_TOVAROV
SELECT SEQTIPI_TOVAROV.NEXTVAL INTO :new.KOD FROM DUAL;
CREATE OR REPLACE TRIGGER INSERT_IN_TOVARI
BEFORE INSERT ON TOVARI
SELECT SEQTOVARI.NEXTVAL INTO :new.KOD FROM DUAL;
5. Создание процедуры
CREATE OR REPLACE FUNCTION
Updater
(NUMTOVARA Number)
IS
Result Number
RETURN
(SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA=
NUMTOVARA AND KODTIPAOPERAZII=1)- (SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA=
NUMTOVARA AND KODTIPAOPERAZII =2)
END
6. Вставка данных
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (1,'ПРОДАВЕЦ');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (2,'КАССИР');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (3,'МЕНЕДЖЕР');
INSERT INTO PROFESSII (KOD,NAZVANIE) VALUES (4,'ДИРЕКТОР');
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('КУПРИЯНОВ АНДРЕЙ МИХАЙЛОВИЧ','88127567432','СПб КИРОВА 37 16',SYSDATE,1,1);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('КОВАЛЕВ ИЛЬЯ СЕРГЕЕВИЧ','88128567432','СПб МАРАТА 38 14',SYSDATE,1,2);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('ПОЛЫВЯННЫЙ АРТЕМ ВИКТОРОВИЧ','88128967432','СПб МИРА 5 12',SYSDATE,1,3);
INSERT INTO PERSONAL (FIO,TELEFON,ADRES,BIRTHDAY,POL,KOD_PROFESSII) VALUES ('ПОЛЫВЯННАЯ ДАРЬЯ ВИКТОРОВНА','88127417432','СПб МИРА 5 12',SYSDATE,2,4);
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (1,'РАЗМЕР ОБУВИ','РАЗМЕР');
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (2,'РАЗМЕР РАМЫ','ДЮЙМЫ');
INSERT INTO SVOISTVA (KOD,NAZVANIE,EDINIZI_IZMERENIA) VALUES (3,'КОЛ-ВО ЗВЕНЬЕВ','ЗВЕНЬЯ');
INSERT INTO TIPI_FIRM (KOD,NAZVANIE) VALUES (1,'ПОСТАВЩИК');
INSERT INTO TIPI_FIRM (KOD,NAZVANIE) VALUES (2,'ПРОИЗВОДИТЕЛЬ');
INSERT INTO TIPI_OPERAZII (KOD,NAZVANIE) VALUES (1,'ПРИХОД');
INSERT INTO TIPI_OPERAZII (KOD,NAZVANIE) VALUES (2,'РАСХОД');
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('SRAM','МОСКВА ТУШИНСКИЙ 40','84956543211',2);
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('ВЕЛОМИР','МОСКВА ТВЕРСКОЙ ПРОСПЕКТ 14','84954567213',1);
INSERT INTO FIRMI (NAZVANIE,ADRES,TELEFON,KOD_TIPA_FIRMI) VALUES ('СПОРТАКАДЕМИЯ','МОСКВА ЛЕНИНА 65','84952345764',1);
Страницы: 1, 2, 3