Меню

Oracle sql developer как создать связи между таблицами

Oracle sql developer как создать связи между таблицами

PL/SQL Developer для работы с запросами Oracle, автоматическая генерация запросов в Query Builder, интеграция справки Oracle, экспорт результатов выполнения запроса

SQL*Plus — во многих ситуациях незаменимая программа, однако при написании в ней кода SQL и PL / SQL приходится выполнять множество лишних действий, например, писать вручную код, который можно сгенерировать автоматически, или постоянно проверять имена таблиц, столбцов, связи между таблицами и т.п.

Поэтому профессиональные разработчики часто используют программные средства третьих производителей, которые позволяют упростить работу по написанию кода SQL и PL / SQL .

Одним из таких программных средств является PL / SQL Developer производства фирмы Allround Automations . В нем предусмотрено множество программных средств, которые могут существенно упростить работу по созданию кода SQL и PL / SQL . Например, представим себе следующую ситуацию. Нам нужно выбрать информацию о номере сотрудника, его имени, должности и отделе, к которому он относится. При этом информация о сотруднике (столбцы empno , ename и job ) хранится в таблице SCOTT . EMP , а информация об отделах — в таблице SCOTT . DEPT . Обе таблицы связаны по столбцу DEPTNO (в EMP — внешний ключ, в DEPT — первичный).

В SQL*Plus нам потребовалось бы вначале определить структуру таблиц и связи между ними (средствами SQL*Plus или другими способами), потом записать весь код вручную и запустить его на выполнение. В PL / SQL Developer для создания такого запроса код можно не писать вообще (и ничего не знать о структуре базы данных и отношениях между таблицами).

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

1. После запуска PL / SQL Developer в меню File нужно выбрать New | SQL Window. Откроется окно для создания запросов SQL .

2. Из меню Tools запускаем Query Builder (построитель запросов можно также запустить, если выбрать команду Query Builder из контекстного меню для пустого пространства в окне SQL ).

3. В окне Query Builder в списке объектов слева нужно выбрать требуемые таблицы и перетащить их в центр экрана. Можно предварительно настроить фильтр для отображения объектов, например, выбрав My Objects . Если таблицы связаны между собой отношениями, вам будет предложено подтвердить использование этих отношений в специальном окне (см. рис. 1.3.1-1).

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

4. После того, как связи будут настроены, осталось выбрать нужные столбцы и настроить дополнительные параметры запроса в нижней части окна Query Builder — фильтр WHERE , сортировку и т.п. После нажатия на кнопку OK окно Query Builder будет закрыто, а сгенерированный код запроса помещен в окно SQL . Запустить на выполнение запрос можно при помощи кнопки F 8 (или при помощи меню Session | Execute) .

Отметим важную особенность, связанную с отображением возвращаемых результатов в PL / SQL Navigator . По умолчанию для экономии памяти PL / SQL Navigator отображает только то количество строк, которое умещается в окне результатов. Чтобы показать все результаты, после выполнения запроса нужно нажать Alt | End или воспользоваться кнопкой Fetch last page в заголовке окна результатов. В противном случае можно не понять, сколько всего записей возвращает запрос.

В PL / SQL Developer предусмотрено множество очень полезных возможностей (особенно для создания программных модулей PL / SQL ). Ниже будут перечислены только самые важные из них:

· предусмотрена интеграция с официальной документацией Oracle (любых последний версий). Для этого в меню Help нужно выбрать HTML Manuals и определить каталог файловой системы, в которой находится документация (можно также просто скачать ее из Интернета). После этого справку по ключевым словам SQL и PL / SQL , например, по встроенным функциям Oracle можно будет получать просто установив указатель ввода на ключевое слово и нажав на клавишу F 1;

· вся информация об объектах базы данных Oracle (как пользовательских. так и служебных) представлена в специальном окне Browser . В этом окне можно просмотреть структуру объектов, внести в них изменения, автоматически генерировать различные команды и т.п. При необходимости можно настроить фильтры для отображения объектов (команды меню Tools | Browser Folder и Tools | Browser Filters );

· в PL / SQL Developer предусмотрена подсветка синтаксиса и подсказка по именам объектов (см. рис. 1.3.1-2). Создание программного кода также упрощает набор встроенных шаблонов с наиболее часто встречающимися синтаксическими конструкциями SQL и PL / SQL . Открыть окно шаблонов можно при помощи меню Tools | Template List .

Рис. 1.3.1-2 Подсказка при вводе программного кода в PL/SQL Developer

· в PL / SQL Developer предусмотрены мощные средства отладки и тестирования создаваемого кода (в основном они сосредоточены в меню Debug ). Вы можете использовать точки останова с пошаговым выполнением и просмотром значений переменных, а также использовать встроенные средства Oracle , такие, как dbms _ trace ;

· предусмотрены средства оптимизации производительности создаваемого кода. Например, в PL / SQL Developer выводится информация о времени выполнения кода, затраченных ресурсах центрального процессора, количестве логических и физических операций чтения и записи и т.п. Можно выбирать цель оптимизатора, просматривать предлагаемые планы выполнения и т.п.

· для анализа отношений между таблицами в PL / SQL Developer предусмотрены средствами для работы с диаграммами. Созданные диаграммы можно например, сохранить как изображение, а можно использовать в качестве рабочей области для обычных операций с объектами базы данных Oracle (например, генерации скриптов);

Читайте также:  Таблица функции рынка примеры

· результаты выполненя запросов можно экспортировать в пользовательские форматы, например, CSV (чтобы открыть в Excel ) или XML ;

· предусмотрены средства поиска объектов базы данных, импорта и экспорта объектов, сравнения объектов, генерации данных в таблицах и т.п.

Источник

Работа с приложением PL/SQL Developer, страница 5

6. Пример создания связанных таблиц.

Для создания таблицы «Факультеты» используется менеджер создания таблиц (меню 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.

Источник



Связи между таблицами

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Связи с вложенными таблицами Oracle
Подскажите, пожалуйста, как создать связь: 1) из вложенной таблицы (вложенная таблица -.

Связь между таблицами
Всем привет, пока только начал изучение, и столкнулся с некоторыми проблемами: 1) есть 2.

Ссылки между таблицами
имеется две таблицы: ТОВАР и ПОСТАВКИ, с первичными ключами код_товара и код_поставки.

Создание связей между таблицами
Всем привет. Подскажите знающие люди как сделать следующее. Есть таблица с заполненными id, есть.

Сообщение от sergoss74
Сообщение от sergoss74
Сообщение от sergoss74

Не понимаю, как помогут или помешают FK , если надо просто взять данные.

Короче говоря, берите данные и не парьтесь. Может быть, нет никаких связей, а Вы их ищете в поте лица.
Если можете добыть DDL-ки таблиц, выложите, посмотрим, чего там есть, а чего нет

Сообщение от sergoss74
Сообщение от sergoss74

Либо FK, либо какая-то документация на БД, либо одинаковые названия полей в связанных таблицах (но это без гарантии). Если есть какие-то хранимые процедуры или триггера, то смотреть запросы в них. Одним словом, если нет FK или описания, то четкого алгоритма нет.

Читайте также:  Ведомости отделки фасада форма и правила заполнения

Сообщение от sergoss74

ПО может действовать чисто формально — только на основе FK. Если их нет, то какое м.б. облегчение?

PS
Наличие FK можно смотреть здесь (constraint_type = ‘R’)

Сообщение от sergoss74
Сообщение от sergoss74
Сообщение от sergoss74

Отсюда ясно, что в этом поле нечто вроде даты создания записи, выраженной в INTEGER. Про это поле во всех таблицах смело можно забыть. Так обычно работают те, кто никогда до этого не работал в Oracle, но имеет некий опыт работы, ну, например, в sql-сервер. Хотя, по некоторым признакам, какие-то данные брались из Access

Мне непонятно, какое отношение имеют юзеры к итемам. По-моему, никакого. Юзеры — это те, кто топчется в системе, а итемы должны быть связаны с чем-то еще. Вы говорили про четыре таблицы. А еще две — это которые?

Источник

Oracle sql developer как создать связи между таблицами

В главе использованы материалы [apex_lab1 ].

Иметь установленное приложение Oracle SQL Developer Data Modeler 3.1

Иметь доступ к Oracle Database 11g или 10g

15.1.1. Установка Oracle SQL Developer Data Modeler

1. Устанавливаем JDK: см. [MIND ], 3.2-3.3.

2. Устанавливаем Oracle SQL Developer Data Modeler: см. [MIND ], 3.4-3.5.

3. Устанавливаем Oracle SQL Developer: см. [MIND ], 3.6-3.7.

Если выдает ошибку “cannot access nls data files or invalid environment specified” добавляем “AddVMOption -Duser.region=US” во все файлы “sqldeveloper.conf“

4. Устанавливаем Oracle 10g XE: см. [MIND ], 3.8.

15.1.2. Импорт таблиц из HR схемы

В этом разделе создадим соединение с HR схемой. Используя это соединение импортируем таблицы EMPLOYEES и DEPARTMENTS в SQL Developer Data Modeler.

1. Запустите Oracle SQL Developer Data Modeler: выберите Пуск > Программы > DataModeler (или откройте каталог С:\datamodeler, выберите datamodeler.exe, М2).

2. Импортируем таблицы из словаря данных, выберите File > Import > Data Dictionary.

3. Окно Data Dictionary Import Wizard открыто. Создадим соединение с БД, выберите Add.

4. Окно New / Update Database Connection открыто. Введите следующие параметры соединения c локальной СУБД или серверной СУБД и выберите Test.

Connection Name: hr

Connection Name: hr252

5. Статус должен быть Success. Выберите Connect.

6. В окне Data Dictionary Import Wizard выберите hr соединение и нажмите Next.

7. Импортируйте из HR схемы: выберите HR схема и нажмите Next.

8. Выберите таблицы DEPARTMENTS и EMPLOYEES и нажмите Next.

9. Нажмите Finish для генерация модели.

10. Просмотрите log файл создания и нажмите Close.

11. EMPLOYEES и DEPARTMENTS таблицы удачно импортированы в реляционную модель SQL Developer Data Modeler.

Рисунок 15.1. Таблицы EMPLOYEES и DEPARTMENTS импортированы в реляционную модель SQL Developer Data Modeler

Таблицы EMPLOYEES и DEPARTMENTS импортированы в реляционную модель SQL Developer Data Modeler

15.1.3. Просмотр физической модели

В этом разделе просмотрим физичекую модель автоматически созданную при импорте объектов из словаря данных.

13. В Nagivation Browser раскройте Relational Models > Relational_1.

14. Вы видите физическую модель. Раскройте Physical Models > Oracle Database 10g.

15. Раскройте Tables > HR.DEPARTMENTS > Columns. Просмотрите список. Обратите внимание на другие объекты представленные в физической модели.

Рисунок 15.2. Физическая модельв SQL Developer Data Modeler

Физическая модельв SQL Developer Data Modeler

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

В этом разделе создадим таблицу PROJECTS. В таблице PROJECTS четыре столбца: PROJECT_ID, PROJECT_NAME, PROJECT_START_DATE, и PROJECT_END_DATE.

16. Выберите New Table в toolbar.

17. Выберите незанятое пространство на диаграмме.

18. Окно Table Properties открыто. Введите PROJECTS для Name и выберите Columns в левом навигаторе.

19. Добавим столбец, выберите Create Column.

20. Введите PROJECT_ID для Name. Выберите Logical для Datatype и NUMERIC для Type.

21. Введите 6 для Precision. Определим PROJECT_ID столбец как первичный ключ. Выберите PK и нажмите Create Column.

22. Введите PROJECT_NAME для Name. Выберите Logical для Datatype иVARCHAR для Type.

23. Введите 100 для Size и нажмите Create Column.

24. Введите PROJECT_START_DATE для Name. Выберите Logical для Datatype и Date для Type. Выберите Create Column.

25. Введите PROJECT_END_DATE для Name. выберите Logical для Datatype и Date для Type. Нажмите OK для создания таблицы.

26. Таблица удачно создана.

Рисунок 15.3. Создание таблицы в SQL Developer Data Modeler

Создание таблицы в SQL Developer Data Modeler

15.1.5. Соединение новой таблицы с выходной таблицей

В этом разделе создадим внешний ключ между таблицами PROJECTS и DEPARTMENTS.

27. Выберите New FK Relation в toolbar.

28. Создадим внешний ключ в таблице PROJECTS, выберите таблицу DEPARTMENTS и выберите таблицу PROJECTS.

29. Окно Foreign Key Properties открыто. Выберите Associated Columns в левом навигаторе.

30. DEPARTMENTS_DEPARTMENT_ID выберите для Child Column и нажмите OK.

31. Выберите Arrow в toolbar. FK Relation создана. Буква ‘F’ напротив DEPARTMENTS_DEPARTMENT_ID в таблице PROJECTS определяет этот столбец как внешний ключ.

32. Сделаем FK необязательным, выберите линию соединения двух таблиц, МП, выберите Properties.

33. Отключите Mandatory и нажмите OK.

36. FK теперь необязателен. Это означает, что можно иметь проект без отдела.

Рисунок 15.4. Соединение таблиц в SQL Developer Data Modeler

Соединение таблиц в SQL Developer Data Modeler

15.1.6. Модификация выходной таблицы

В этом разделе добавим столбец COST_CENTER в таблицу DEPARTMENTS.

Читайте также:  Индекс скорости и нагрузки шин таблица расшифровка

37. На диаграмме выберите таблицу DEPARTMENTS. М2.

38. Выберите Columns в левом навигаторе.

39. Создадим новый столбец, выберите Create Column.

40. Введите COST_CENTER для Name, выберите Logical для Datatype, VARCHAR для Type и введите 25 для Size. Нажмите OK для создания столбца.

41. Столбец COST_CENTER создан в таблице DEPARTMENTS.

Рисунок 15.5. Создание столбца в SQL Developer Data Modeler

Создание столбца в SQL Developer Data Modeler

15.1.7. Создание логической модели

В этом разделе перепроектируем реляционную модель созданием логической модели.

42. Выберите Engineer to Logical Model в toolbar.

43. Окно Engineer to Logical Model открыто. Раскройте Tables. Просмотрите сущности которые будут созданы в логической модели. Нажмите Engineer.

44. Логическая модель создана. Просмотрите сущности и атрибуты. Диаграмма логической модели называется Entity Relationship Diagram (ERD).

Рисунок 15.6. Создание логической модели в SQL Developer Data Modeler

Создание логической модели в SQL Developer Data Modeler

15.1.8. Модификация логической модели

В этом разделе модифицируем логическую модель.

45. Добавим атрибуты в сущность PROJECTS. Выберите сущность PROJECTS, М2.

46. Выберите Attributes в левом навигаторе.

47. Выберите ‘+’ для добавления атрибута.

48. Введите STATUS для Name, выберите Logical для Datatype, выберите VARCHAR для Type, и введите 30 для Size. Выберите атрибут DEPARTMENT_DEPARTMENT_ID из списка.

49. Этот атрибут показывает результат связи между сущностями DEPARTMENTS и PROJECTS. Заметьте, что мы не можем изменить имя этого атрибута. Для этого необходимо изменить параметры настройки. Нажмите OK.

50. Заметьте, что атрибут STATUS добавленный в сущность PROJECTS для связи с DEPARTMENT не показывается на диаграмме. Это происходит так как текущая нотация Barker не показывает такие атрибуты.

51. Изменим значение по умолчанию для атрибутов связи. Выберите Tools > Preferences.

52. Раскройте Data Modeler > Model и выберите Logical. Отключите Keep as the name of the Originating attribute.

54. Выберите сущность PROJECTS, М2.

55. Выберите Attributes.

56. Выберите атрибут DEPARTMENT_DEPARTMENT_ID из списка.

57. Заметьте, что теперь можно изменять имя. Измените имя на PROJECT_DEPT и нажмите OK.

58. Изменим нотацию на Bachman. Выберите свободное пространство на диаграмме, МП, выберите Bachman Notation.

59. Нотация изменена. Теперь мы видим атрибуты связи (с буквой ‘F’) как и первичные атрибуты. Символ ‘*’ перед именем атрибута означает обязательность атрибута.

60. Добавим сущность в логическую модель. Выберите New Entity icon в toolbar.

61. Выберите свободное пространство на диаграмме.

62. Введите TASKS для Name и выберите Attributes.

63. Выберите ‘+’ для добавления атрибута.

64. Введите TASK_ID для Name, выберите Logical для Datatype, выберите NUMERIC для Type, введите 6 для Precision и выберите Primary UID. Выберите ‘+’.

65. Введите TASK_NAME для Name, выберите Logical для Datatype, выберите VARCHAR для Type и введите 255 для Size. Выберите ‘+’.

66. Введите COST для Name, выберите Logical для Datatype, выберите NUMERIC для Type и введите 6 для Precision. Выберите ‘+’.

67. Введите BUDGET для Name, выберите Logical для Datatype, выберите NUMERIC для Type и введите 6 для Precision и нажмите OK для создания сущности и атрибутов.

68. Создадим две связи между EMPLOYEES и TASKS, и между the PROJECTS и TASKS сущностями. Выберите New 1:N Relation в toolbar.

69. Выберите сущность EMPLOYEES и выберите сущность TASKS.

70. Нажмите OK для создания связи.

71. Создадим вторую связь. Выберите сущность PROJECTS и выберите сущность TASKS.

72. Нажмите OK для создани ясвязи.

73. Изменим имя связи в сущности TASKS. Выберите сущность TASKS, М2.

74. Выберите Attributes свойства.

75. выберите атрибут EMPLOYEES_EMPLOYEE_ID из списка.

76. Измените имя на ASSIGNED_TO и выберите атрибут PROJECTS_PROJECT_ID из списка.

77. Изменим имя на PROJECT_ID и нажмите OK.

78. Изменение логической модели закончено.

Рисунок 15.7. Создание логической модели в SQL Developer Data Modeler

Создание логической модели в SQL Developer Data Modeler

15.1.9. Синхронизация логической модели с реляционной моделью

В этом разделе синхронизируем логическую модель с реляционной моделью.

79. Выберите Engineer to Relational Model.

80. Окно Engineer to Relational Model открыто. Раскройте Entities > PROJECTS > Attributes. Обратите внимание на различия. Нажмите Engineer.

81. Обратите внимание на новый столбец STATUS, измененное имя внешнего ключа PROJECT_DEPT, и новую таблицу TASKS.

Рисунок 15.8. Синхронизация логической модели с реляционной моделью в SQL Developer Data Modeler

Синхронизация логической модели с реляционной моделью в SQL Developer Data Modeler

15.1.10. Генерация DDL обновления БД

Теперь модели готовы и можно синхронизировать словарь данных с моделью и сгенерировать DDL-скрипт.

82. Выберите Synchronize Data Dictionary with Model в toolbar.

83. Окно Compare Models открыто. Узлы где есть изменения отмечены символом( ). Раскройте Tables узел и увидите новые таблицы PROJECTS и TASKS. Обратите внимание что таблица DEPARTMENTS изменена.

84. Раскройте DEPARTMENTS > Columns. Столбец COST_CENTER добавлен. Нажмите DDL Preview.

85. Сгенерированный код выведен. Просмотрите команды CREATE и ALTER. Заметьте, что таблицы PROJECTS и TASKS создаются и дополняются первичными ключами.

86. Ниже можно увидить новый столбец внешнего ключа. Нажмите Save.

87. Можно запускать этот скрипт в SQL Developer для обновления БД.

88. Сохраним файл. Нажмите Save.

89. Выберите Close для закрытия окна Compare Models.

90. Сохраним модель. Выберите File > Save.

91. Сохраним файл. Выберите Save.

92. Закройте SQL Developer Data Modeler. Выберите File > Exit.

Рисунок 15.9. Выход из SQL Developer Data Modeler

Источник