Оракул получает структуру таблицы

Обновлено: 21.11.2024

Чтобы показать структуру таблицы со всеми атрибутами ее столбца: имя, тип данных, первичный ключ, значение по умолчанию и т. д.

В SQL Server используйте функцию sp_help:

В MySQL и Oracle вы можете использовать DESCRIBE :

В PostgreSQL инструкция перехода выглядит следующим образом:

В SQLite это просто:

Пример

Вот результаты:

< th>pk
cid имя тип notnull dflt_value
0 CustomerId INTEGER 1< /td> 1
1 Имя NVARCHAR(40) 1< /td> 0
2 Фамилия NVARCHAR(20) 1< /td> 0
3 Компания NVARCHAR(80) 0< /td> 0
4 Адрес NVARCHAR(70) 0< /td> 0
5 Город NVARCHAR(40) 0< /td> 0
6 Состояние NVARCHAR(40) 0< /td> 0
7 Страна NVARCHAR(40) 0< /td> 0
8 Почтовый индекс NVARCHAR(10) 0< /td> 0
9 Телефон NVARCHAR(24) 0< /td> 0
10 Факс NVARCHAR(24) 0 0
11 Электронная почта NVARCHAR(60) 1 0
12 SupportRepId INTEGER 0 0

В TablePlus вы можете просмотреть структуру таблицы, нажав кнопку структуры в нижней части окна или используя сочетание клавиш Cmd + Shift + ]

Нужен хороший инструмент с графическим интерфейсом для баз данных? TablePlus предоставляет встроенный клиент, который позволяет вам одновременно получать доступ к Oracle, MySQL, SQL Server, PostgreSQL и многим другим базам данных и управлять ими с помощью интуитивно понятного и мощного графического интерфейса.

Необходимо быстрое редактирование на ходу? Скачать для iOS

Опишите таблицу Oracle, представление, синоним, пакет или функцию.

Обратите внимание: поскольку это команда SQL*Plus, вам не нужно завершать ее точкой с запятой.

В Oracle 7 можно описать отдельные процедуры, например desc DBMS_UTILITY.GET_PARAMETER_VALUE
В Oracle 8/9/10 можно описать только весь пакет: desc DBMS_UTILITY

Также можно описать объекты в другой схеме или через ссылку на базу данных,
например,
ОПИСАНИЕ user.table@db_link

Команда DESCRIBE позволяет рекурсивно описывать объекты до уровня глубины, установленного в команде SET DESCRIBE.
Например, используйте команды SET:
SET LINESIZE 80
SET DESCRIBE DEPTH 2
SET DESCRIBE INDENT ON
SET DESCRIBE LINE OFF
Для отображения этих настроек использовать: ПОКАЗАТЬ ОПИСАНИЕ

Описание функций и процедур содержит тип объекта PL/SQL (функция или процедура), имя функции или процедуры, тип возвращаемого значения (для функций), имена аргументов, типы, входные или выходные, и значения по умолчанию, если таковые имеются.

DESC user.object_name всегда идентифицирует отдельный объект базы данных, поскольку объекты базы данных пользователя должны иметь уникальные имена. например вы не можете создать ФУНКЦИЮ с тем же именем, что и ТАБЛИЦА в той же схеме.

Словарь данных

Альтернативой команде DESC является выбор непосредственно из словаря данных -

эквивалентно

SELECT
column_name "Имя",
nullable "Null?",
concat(concat(concat(data_type,'('),data_length),')') "Type"
ОТ user_tab_columns
ГДЕ table_name='TABLE_NAME_TO_DESCRIBE';

Комментарии столбца

Чтобы просмотреть комментарии столбца:

ВЫБЕРИТЕ комментарии
FROM user_col_comments
WHERE table_name='MY_TABLE';

SELECT 'комментарий к столбцу '||имя_таблицы||'.'||имя_столбца||' это '''||комментарии||''';'
FROM user_col_comments
ГДЕ комментарии не равны нулю;

Пишете код и вынуждены вводить кучу названий столбцов? Зачем беспокоиться, когда все это доступно в словаре данных. Сценарий ниже поможет:

COL.SQL
-- список всех столбцов таблицы.

Теперь, если вам нужен список столбцов в таблице EMP, введите:
@col emp
Это создаст список столбцов:

"Знаете, что хорошего в телевидении? Если где-то в мире происходит что-то важное, независимо от времени дня и ночи, вы всегда можете переключить канал", – Джим Игнатовски

DBA_COL_COMMENTS ALL_COL_COMMENTS USER_COL_COMMENTS
DBA_TAB_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS
СЛОВАРЬ
DICT_COLUMNS

Связанные команды/пакеты Oracle:

COMMENT — добавление комментария к таблице или столбцу.
DBMS_DESCRIBE

В этом руководстве по Oracle объясняется, как использовать оператор Oracle CREATE TABLE AS с синтаксисом и примерами.

Описание

Вы также можете использовать оператор Oracle CREATE TABLE AS для создания таблицы из существующей таблицы путем копирования столбцов существующей таблицы.

Важно отметить, что при создании таблицы таким образом новая таблица будет заполнена записями из существующей таблицы (на основе оператора SELECT).

Создать таблицу — путем копирования всех столбцов из другой таблицы

Синтаксис

Синтаксис оператора CREATE TABLE AS, копирующего все столбцы в Oracle/PLSQL, следующий:

Пример

Давайте рассмотрим пример CREATE TABLE AS, в котором показано, как создать таблицу путем копирования всех столбцов из другой таблицы.

В этом примере создается новая таблица с именем suppliers, которая включает все столбцы из таблицы companies.

Если в таблице companies есть записи, новая таблица suppliers будет заполнена записями, возвращенными оператором SELECT.

Создать таблицу — путем копирования выбранных столбцов из другой таблицы

Синтаксис

Синтаксис оператора CREATE TABLE AS, копирующего выбранные столбцы в Oracle/PLSQL, следующий:

Пример

Давайте рассмотрим пример CREATE TABLE AS, в котором показано, как создать таблицу путем копирования выбранных столбцов из другой таблицы.

В этом примере будет создана новая таблица с именем suppliers, но новая таблица будет включать только указанные столбцы (например, company_id, адрес, город, штат и почтовый индекс) из компаний. таблица.

Опять же, если в таблице companies есть записи, новая таблица suppliers будет заполнена записями, возвращенными оператором SELECT.

Создать таблицу — путем копирования выбранных столбцов из нескольких таблиц

Синтаксис

Синтаксис оператора CREATE TABLE AS, копирующего столбцы из нескольких таблиц в Oracle/PLSQL, следующий:

Пример

Давайте рассмотрим пример CREATE TABLE AS, в котором показано, как создать таблицу путем копирования выбранных столбцов из нескольких таблиц.

В этом примере создается новая таблица с именем suppliers на основе определений столбцов из обеих таблиц companies и categories (например: company_id, адрес и категория_тип).

Часто задаваемые вопросы

Вопрос. Как создать таблицу Oracle из другой таблицы, не копируя значения из старой таблицы?

Ответ: Для этого используется синтаксис Oracle CREATE TABLE:

Это создаст новую таблицу с именем suppliers, которая будет включать все определения столбцов из таблицы companies, но не данные из таблицы companies.

Благодарности. Мы хотели бы поблагодарить Daniel W. за предоставление этого решения!

Вывод: в этом руководстве вы узнаете, как использовать оператор Oracle CREATE TABLE для создания новой таблицы в базе данных Oracle.

Введение в оператор Oracle CREATE TABLE

Чтобы создать новую таблицу в базе данных Oracle, используйте оператор CREATE TABLE. Ниже показан основной синтаксис инструкции CREATE TABLE:

  • Сначала укажите имя таблицы и имя схемы, к которой принадлежит новая таблица, в предложении CREATE TABLE.
  • Во-вторых, перечислите все столбцы таблицы в скобках. Если в таблице несколько столбцов, их необходимо разделить запятыми (,). Определение столбца включает имя столбца, за которым следует его тип данных, например NUMBER , VARCHAR2 , и ограничение столбца, такое как NOT NULL , первичный ключ, проверка.
  • В-третьих, добавьте ограничения таблицы, если применимо, например первичный ключ, внешний ключ, проверка.

Обратите внимание, что у вас должна быть системная привилегия CREATE TABLE для создания новой таблицы в вашей схеме и системная привилегия CREATE ANY TABLE для создания новой таблицы в схеме другого пользователя. Кроме того, владелец новой таблицы должен иметь квоту на табличное пространство, содержащее новую таблицу, или системную привилегию UNLIMITED TABLESPACE.

Пример инструкции Oracle CREATE TABLE

В следующем примере показано, как создать новую таблицу с именем person в схеме ot:

В этом примере таблица person содержит три столбца: person_id , first_name и last_name .

Person_id — это столбец идентификаторов, определяющий уникальные строки в таблице. Тип данных столбца person_id — NUMBER. Предложение GENERATED BY DEFAULT AS IDENTITY указывает Oracle генерировать новое целое число для столбца всякий раз, когда в таблицу вставляется новая строка.

Столбец first_name имеет тип данных VARCHAR2 с максимальной длиной 50. Это означает, что вы не можете вставить имя, длина которого больше 50, в столбец first_name. Кроме того, ограничение столбца NOT NULL не позволяет столбцу first_name иметь значения NULL.

Столбец last_name имеет те же характеристики, что и столбец first_name.

Предложение PRIMARY KEY указывает столбец person_id в качестве столбца первичного ключа, который используется для идентификации уникальной строки в таблице person.

В этом руководстве вы узнали, как использовать оператор Oracle CREATE TABLE для создания новой таблицы.

Читайте также: