Номер |
Фамилия |
Имя |
Телефон |
Номер_руководителя |
|
Тип ключа |
PK |
FK |
|||
Обязательность / Уникальность |
NN, U |
NN |
NN |
||
Внешний ключ на таблицу |
СОТРУДНИК |
||||
Внешний ключ на колонки |
Номер |
||||
Тип данных |
NUM |
CHAR |
CHAR |
CHAR |
NUM |
Максимальная длина |
7 |
20 |
15 |
20 |
7 |
Пример |
1 |
Петров |
Александр |
12-34-56 |
2 |
1. Начните команду с CREATE TABLE, укажите имя таблицы
CREATE TABLE employee
2. Перенесите с бланка экземпляра таблицы имена столбцов, разделите их запятыми
CREATE TABLE employee
(id NUMBER(7),
last_name VARCHAR2(20),
first_name VARCHAR2(15),
phone VARCHAR2(20),
manager NUMBER(7));
3. Задайте ограничения NOT NULL столбцов, не связанных ограничением PRIMARY KEY
last_name VARCHAR2(20) CONSTRAINT e_l_nn NOT NULL,
first_name VARCHAR2(15) CONSTRAINT e_f_nn NOT NULL,
4. Задайте ограничение PRIMARY KEY на уровне столбца или таблицы
id NUMBER(7) CONSTRAINT e_pk PRIMARY KEY,
5. Задайте ограничения UNIQUE, CHECK и FOREIGN KEY
manager NUMBER(7) CONSTRAINT e_m_fk REFERENCES employee (id),
6. Выполните команду
SQL> CREATE TABLE employee
2 (id NUMBER(7) CONSTRAINT e_pk PRIMARY KEY,
3 last_name VARCHAR2(20) CONSTRAINT e_l_nn NOT NULL,
4 first_name VARCHAR2(15) CONSTRAINT e_f_nn NOT NULL,
5 phone VARCHAR2(20),
6 manager NUMBER(7) CONSTRAINT e_m_fk REFERENCES employee (id));
Table created.
Повторите эту процедуру для всех спроектированных табличных моделей.
ПРОЕКТ
Номер |
Наименование |
Стоимость |
|
Тип ключа |
PK |
||
Обязательность / Уникальность |
NN, U |
NN |
|
Внешний ключ на таблицу |
|||
Внешний ключ на колонки |
|||
Тип данных |
NUM |
CHAR |
NUM |
Максимальная длина |
7 |
250 |
10 |
Пример |
1 |
Моделирование прокатного стана |
100000 |
SQL> CREATE TABLE project
2 (id NUMBER(7) CONSTRAINT p_pk PRIMARY KEY,
3 name VARCHAR2(20) CONSTRAINT p_name_nn NOT NULL,
4 cost NUMBER(10));
Table created.
СОТРУДНИК_ПРОЕКТ
Срок_выполнения |
Номер_сотрудника |
Номер_проекта |
|
Тип ключа |
PK, FK1 |
PK, FK2 |
|
Обязательность / Уникальность |
NN, U1 |
NN, U1 |
|
Внешний ключ на таблицу |
СОТРУДНИК |
ПРОЕКТ |
|
Внешний ключ на колонки |
Номер |
Номер |
|
Тип данных |
DATE |
NUM |
NUM |
Максимальная длина |
7 |
7 |
|
Пример |
10.10.2002 |
1 |
1 |
SQL> CREATE TABLE employee_project
2 (deadline DATE,
3 id_emp NUMBER(7) CONSTRAINT e_p_id_emp_fk REFERENCES employee(id),
4 id_pr NUMBER(7) CONSTRAINT e_p_id_pr_fk REFERENCES project(id),
5 CONSTRAINT e_p_pk PRIMARY KEY (id_emp, id_pr));
Table created.
ПОДПРОЕКТ
Номер |
Наименование |
Номер_проекта |
|
Тип ключа |
PK |
PK, FK |
|
Обязательность / Уникальность |
NN, U1 |
NN |
NN, U1 |
Внешний ключ на таблицу |
ПРОЕКТ |
||
Внешний ключ на колонки |
Номер |
||
Тип данных |
NUM |
CHAR |
NUM |
Максимальная длина |
7 |
250 |
7 |
Пример |
1 |
Стратегия и анализ |
1 |
SQL> CREATE TABLE subproject
2 (id NUMBER(7),
3 name VARCHAR2(20) CONSTRAINT sp_name_nn NOT NULL,
4 id_project NUMBER(7) CONSTRAINT sp_id_p_fk REFERENCES project(id),
5 CONSTRAINT sp_pk PRIMARY KEY (id, id_project));
Table created.
Команда CREATE TABLE позволяет создать пустую таблицу, которую необходимо в дальнейшем заполнить данными. Кроме этого существует возможность создать таблицу и сразу заполнить ее строками из другой таблицы. Для этого используется ключевое слово AS.
CREATE TABLE таблица[(столбец, ...)] AS подзапрос;
Эта команда создает таблицу с указанными столбцами и вставит туда строки, возвращенные подзапросом. Столбцы создаваемой таблицы можно не описывать, в этом случае они будут совпадать со столбцами подзапроса. Если в списке выбора подзапроса используются выражения, а столбцы вновь создаваемой таблицы Вы не описываете, обязательно укажите псевдонимы столбцов в предложении SELECT подзапрса, именно так будут называться столбцы в новой таблице. Если столбцы в новой таблице описаны, количество столбцов должно совпадать с количеством столбцов подзапроса. Для столбцов создаваемой таким образом таблицы можно указать только имя, значение по умолчанию и правила целостности (кроме FOREIGN KEY). Новая таблица наследуется только ограничение NOT NULL у таблицы подзапроса.
SQL> CREATE TABLE project_1 AS SELECT * FROM project;
Table created.
SQL> DESC project
Name Null? Type
--------------------- -------- -------------
ID NOT NULL NUMBER(7)
NAME NOT NULL VARCHAR2(20)
COST NUMBER(10)
SQL> DESC project_1
Name Null? Type
--------------------- -------- -------------
ID NUMBER(7)
NAME NOT NULL VARCHAR2(20)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.