Oracle DB: Пример создания приложения
Версия от 13:57, 1 декабря 2022; Admin (обсуждение | вклад)
Создание схемы
-- создание владельца схемы CREATE USER APP_MY IDENTIFIED BY "***pass***" DEFAULT TABLESPACE MY_DATA; -- добавление минимальных прав владельца схемы GRANT CONNECT, CREATE TABLE TO APP_MY; -- добавление лимитов на ТП -- (без определения лимита на ТП пользователь не может добавлять в него данные) ALTER USER APP_MY QUOTA UNLIMITED ON MY_DATA QUOTA UNLIMITED ON MY_INDX;
Добавление в схему объектов (выполняется под владельцем схемы)
-- создание таблицы CREATE TABLE Employees ( ID NUMERIC(10) NOT NULL PRIMARY KEY, NAME VARCHAR(20) ); -- заполнение таблицы INSERT INTO Employees (id,name) values (1,'Дмитрий'); INSERT INTO Employees (id,name) values (2,'Александр'); INSERT INTO Employees (id,name) values (3,'Павел'); INSERT INTO Employees (id,name) values (4,'Михаил'); INSERT INTO Employees (id,name) values (5,'Сергей'); INSERT INTO Employees (id,name) values (6,'Денис'); -- создание таблицы CREATE TABLE Positions ( ID NUMERIC(10) NOT NULL PRIMARY KEY, POS_NAME VARCHAR2(50) ); -- заполнение таблицы INSERT INTO Positions (id,pos_name) values (1,'Начальник отдела'); INSERT INTO Positions (id,pos_name) values (2,'Зам. начальника отдела'); INSERT INTO Positions (id,pos_name) values (3,'Ведущий инженер'); INSERT INTO Positions (id,pos_name) values (4,'Инженер'); -- добавление поля в таблицу ALTER TABLE Employees ADD POS_ID NUMERIC(10); -- обновление таблицы UPDATE Employees SET pos_id = 3 where id=1; UPDATE Employees SET pos_id = 3 where id=2; UPDATE Employees SET pos_id = 2 where id=3; UPDATE Employees SET pos_id = 1 where id=4; UPDATE Employees SET pos_id = 3 where id=5; UPDATE Employees SET pos_id = 4 where id=6; -- добавление ограничения NOT NULL ALTER TABLE Employees MODIFY (POS_ID NUMERIC(10) NOT NULL); -- добавление ограничения FOREIGN KEY ALTER TABLE Employees MODIFY (POS_ID CONSTRAINT emp_posid_fk REFERENCES Positions(id)); -- комбинированный запрос select a.id,a.name,b.pos_name from Employees a, Positions b where a.pos_id = b.id; -- проверка объектов и размещения сегментов select * from user_segments; select * from user_objects; -- перенос индексов в другое ТП alter index SYS_C005945 rebuild tablespace MY_INDX; alter index SYS_C005951 rebuild tablespace MY_INDX;