Oracle PL/SQL. Создание связанных таблиц и заполнение их тестовыми данными
-
Таблица-справочник типов операций, заполняем сразу двумя типами:
create table optype as select 1 as id_optype ,’Заказ’ as optype_name ,sysdate as create_date ,user as create_user from dual union all select 2 ,’Возврат’ ,sysdate ,user from dual;
create table contractor as select level as id_contr ,’ООО ‘||dbms_random.string(‘u’,1)||dbms_random.string(‘l’,7) as contr_name ,sysdate create_date ,user create_user from dual connect by level Примечание : чтобы исключить ошибку ORA-30009: Недостаточно памяти для операции CONNECT BY добавление будет осуществляться пачками не более 500 000 строк, чтобы избежать переполнения памяти PGA.
declare v_row_count number := 10000000; —кол-во строк v_batch number := 500000; —максимальный размер пачки begin —начало цикла loop —если кол-во строк меньше пачки, —то размер пачки = кол-во строк —иначе размер пачки не более максимального. if v_row_count
CREATE TABLE ОПЕРАТОР
Оператор Oracle/PLSQL CREATE TABLE позволяет создавать и определять таблицу.
Синтаксис
Синтаксис CREATE TABLE в Oracle/PLSQL:
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.
column_n datatype [ NULL | NOT NULL ]
);
Параметры или аргументы
table_name
Имя таблицы, которую вы хотите создать.
column1 , column2 , . column_n
Столбцы, которые вы создаете в таблице. Каждый столбец должен иметь тип данных. Столбец должен быть определен либо как «NULL» либо «NOT NULL», если это значение не указывается, то по умолчанию устанавливается «NULL».
Пример
Рассмотрим на примере как использовать в Oracle/PLSQL CREATE TABLE.
Работа с приложением PL/SQL Developer , страница 5
Для создания таблицы «Факультеты» используется менеджер создания таблиц (меню File->New->Table).
На первой вкладке General в поле Owner выбрать текущего пользователя, под которым вы работаете, в примере указан пользователь «User1». В Следующем поле Name указать название таблицы «Факультеты». Табличным пространством, где будет храниться таблица, указать пространство Users, и перейти к следующей вкладке Columns.
Перевести курсор в табличное поле под названием Name и указать там имя колонки «Имя_Ф». В поле Type задать значение типа переменной Varchar2 длиной 5 символов, далее снять галочку в поле Nullable, тем самым, задавая проверку на не пустую строку. Все остальные параметры оставить без изменений.
Для создания первичного ключа необходимо перейти во вкладку Keys. В поле Name ввести название ключа «Код_Ф», в Type выбрать Primary, т.е. первичный. В поле Columns при помощи окна «Select key columns» путем перетаскивания в правую часть выбрать имя колонки, по которой создается ключ, как показано на рис 3. Все остальные поля остаются без изменения. Нажать кнопку Apply.
Тоже само можно было сделать не в интерактивном режиме а в режиме командной строки при помощи следующей конструкции:
create table Факультеты
Имя_Ф varchar2(5) not null
alter table Факультеты add constraint Код_Ф primary key (ИМЯ_Ф);


Аналогичным образом создать таблицу «Группы», за исключением момента касающегося создания ключей. Его мы дополним вторичным ключом (см. рис 18).

Тоже самое, но с помощью командной строки:
create table Группы
Имя_Гр varchar2(10) not null,
Факультет varchar2(5) not null
alter table Группы add constraint Код_Гр primary key (ИМЯ_ГР);
alter table Группы add constraint Ф_Код foreign key (Факультет) references факультеты (ИМЯ_Ф);

Для того чтобы внести данные в таблицу «Факультеты» необходимо в левой части PL/SQL Developer в списке объектов выбрать «Tables», далее «Факультеты» и вызвать контекстное меню при помощи правой клавиши мыши, в котором выбрать «Edit data». Во вновь открывшемся окне в поле ввести свои данные и нажать кнопку как показано на рис 20.
Те же самые действия можно сделать при помощи командной строки при помощи следующей команды:
insert into Факультеты values(‘кт‘);
insert into Факультеты values(‘кту‘);
Аналогичным образом внесем данные в таблицу «Группы».

Если вы ввели неправильное значение факультета то вы увидите следующее сообщение после нажатия на кнопку .


Для командной строки пример внесения данных в таблицу «Группы »следующий:
insert into Группы values(‘5145′,’кту’);
insert into Группы values(‘5146′,’кту’);
insert into Группы values(‘5147′,’кту’);
insert into Группы values(‘5514′,’кт’);
insert into Группы values(‘5515′,’кт’);
insert into Группы values(‘5516′,’кт’);

Воспользуемся менеджером построения запросов для просмотра введенных данных. Для этого вначале необходимо запустить командную строчку, а затем менеджер построения запросов. После запуска в левой части окна менеджера построения запросов выбрать пункт «Tables». Далее выбрать первую таблицу «Факультеты» и перетащить её в правую часть экрана, воспользовавшись для этого левой клавишей мыши. Аналогичным образом поступить и со второй таблицей. После перетаскивания второй таблицы менеджер запросов попросит активизировать связь между таблицами сделанную нами при помощи первичного и вторичного ключей. Для активизации необходимо поставить галочку в появившемся окне напротив символической связи. При помощи галочек выбрать те поля в таблицах, которые нас интересуют и отсортировать все по убыванию факультета, для этого необходимо в правом нижнем углу окна менеджера построения запросов выбрать пункт «Order By» в поле поместить название поля по которому производим сортировку (для того что бы запись появилась в поле необходимо её выделить мышью с сделать двойной «клик» ) и направить стрелочку вниз . Завершить работу менеджера построения запросов, в командной строке появится результат выполнения запроса рис 22.
Таблицы (TABLES):
Базы данных — представляют из себя (главным образом) большое количество таблиц. Почти таких-же как изображенная на рисунке. В отличие от обычных таблиц, с таблицами в базах данных могут одновременно работать большое количество людей.

Перед тем как создать таблицу в базе данных Oracle, возможно, имеет смысл взять листок бумаги и карандаш и попробовать нарисовать таблицу. Далее, следует одну-две строки заполнить данными.
В каждом из столбцов должны храниться данные одного типа. Вы определяете будет ли это число, текст, дата или это будут данные какого-либо другого типа. Помимо этого, вы определяете, если это текст, какова его максимально возможная длина. Если число, будет ли у него дробная часть, если дата, в каком формате она будет представлена.
Создание пользователя, который будет создавать таблицы
Необходимо подключиться к базе под учетной записью пользователя с административными правами (например, system)и создать пользователя который сможет создавать, удалять и вносить изменения в таблицы.


CREATE USER manager IDENTIFIED BY manager TEMPORARY TABLESPACE MY_TEMP DEFAULT TABLESPACE MY_DATA;
GRANT CONNECT TO manager; GRANT RESOURCE TO manager;
Создание таблицы в базе данных Oracle

Не нашел ничего лучшего, чтобы создать таблицу, в которую решил поместить информацию о футболистах сборной России по футболу.
Для того, чтобы каждый раз при добавлении новой записи в таблицу базы данных Oracle, идентификатор строки автоматически увеличивался (Автоинкремент) приходится использовать последовательности (SEQUENCE).
CREATE SEQUENCE russian_team_id_sequence START WITH 1 INCREMENT BY 1;
CREATE TABLE russian_team ( id NUMBER(5) PRIMARY KEY, name VARCHAR2(140), position VARCHAR2(140), player_number NUMBER(2), matches NUMBER(3), goals NUMBER(3), club VARCHAR2(140), birthday DATE )
Tags: Таблицы, TABLES
PL/SQL
tags: Администрирование Oracle DataBase || SQL & PL/SQL
Исходные коды проекта хранятся на github. Можете заводить Issue и Discussions, при необходимости.
Чтобы задать вопрос, добавить свои знания, исправить ошибки и неточности, пишите в телеграм чате.
