Spec-Zone.ru › DuckDB

Схема информации

Представления в information_schema являются SQL-стандартными представлениями, описывающими записи каталога базы данных. Эти представления могут быть отфильтрованы для получения информации о конкретном столбце или таблице. Реализация DuckDB основана на схеме информации PostgreSQL.

Таблицы

character_sets: Наборы символов

Столбец Описание Тип Пример
character_set_catalog В настоящее время не реализовано – всегда NULL. VARCHAR NULL
character_set_schema В настоящее время не реализовано – всегда NULL. VARCHAR NULL
character_set_name Имя набора символов, в настоящее время реализовано как имя кодировки базы данных. VARCHAR 'UTF8'
character_repertoire Репертуар символов, показывающий UCS , если кодировка UTF8, иначе просто имя кодировки. VARCHAR 'UCS'
form_of_use Форма кодирования символов, такая же, как кодировка базы данных. VARCHAR 'UTF8'
default_collate_catalog Имя базы данных, содержащей стандартный порядок сортировки (всегда текущая база данных). VARCHAR 'my_db'
default_collate_schema Имя схемы, содержащей стандартный порядок сортировки. VARCHAR 'pg_catalog'
default_collate_name Имя стандартного порядка сортировки. VARCHAR 'ucs_basic'

columns: Столбцы

Представление, описывающее информацию о каталоге столбцов, это information_schema.columns. Оно перечисляет столбцы, присутствующие в базе данных, и имеет следующий вид:

Столбец Описание Тип Пример
table_catalog Имя базы данных, содержащей таблицу (всегда текущая база данных). VARCHAR 'my_db'
table_schema Имя схемы, содержащей таблицу. VARCHAR 'main'
table_name Имя таблицы. VARCHAR 'widgets'
column_name Имя столбца. VARCHAR 'price'
ordinal_position Порядковый номер столбца в таблице (счёт начинается с 1). INTEGER 5
column_default Выражение по умолчанию для столбца. VARCHAR 1.99
is_nullable YES если столбец потенциально допускает NULL, NO если он явно не допускает NULL. VARCHAR 'YES'
data_type Тип данных столбца. VARCHAR 'DECIMAL(18, 2)'
character_maximum_length Если data_type идентифицирует тип строкового или битового значения, максимальная объявленная длина; null для всех других типов данных или если максимальная длина не была объявлена. INTEGER 255
character_octet_length Если data_type идентифицирует строковый тип, максимальная возможная длина в октетах (байтах) данных; null для всех других типов данных. Максимальная длина в октетах зависит от объявленной максимальной длины символов (см. выше) и кодировки символов. INTEGER 1073741824
numeric_precision Если data_type идентифицирует числовой тип, этот столбец содержит (объявленную или неявную) точность типа для этого столбца. Точность указывает количество значащих цифр. Для всех других типов данных этот столбец имеет значение null. INTEGER 18
numeric_scale Если data_type идентифицирует числовой тип, этот столбец содержит (объявленную или неявную) разрядность типа для этого столбца. Разрядность указывает количество значащих цифр. Для всех других типов данных этот столбец имеет значение null. INTEGER 2
datetime_precision Если data_type идентифицирует тип даты, времени, метки времени или интервала, этот столбец содержит (объявленную или неявную) точность дробных секунд типа для этого столбца, то есть количество десятичных знаков, поддерживаемых после десятичной точки в значении секунд. В DuckDB в настоящее время не поддерживаются дробные секунды. Для всех остальных типов данных этот столбец имеет значение null. INTEGER 0

constraint_column_usage: Использование ограничений для столбцов

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

Столбец Описание Тип Пример
table_catalog Имя базы данных, содержащей таблицу, содержащую столбец, используемый некоторым ограничением (всегда текущая база данных) VARCHAR 'my_db'
table_schema Имя схемы, содержащей таблицу, содержащую столбец, используемый некоторым ограничением VARCHAR 'main'
table_name Имя таблицы, содержащей столбец, используемый некоторым ограничением VARCHAR 'widgets'
column_name Имя столбца, используемого некоторым ограничением VARCHAR 'price'
constraint_catalog Имя базы данных, содержащей ограничение (всегда текущая база данных) VARCHAR 'my_db'
constraint_schema Имя схемы, содержащей ограничение VARCHAR 'main'
constraint_name Имя ограничения VARCHAR 'exam_id_students_id_fkey'

key_column_usage: Использование столбцов ключей

Столбец Описание Тип Пример
constraint_catalog Имя базы данных, содержащей ограничение (всегда текущая база данных). VARCHAR 'my_db'
constraint_schema Имя схемы, содержащей ограничение. VARCHAR 'main'
constraint_name Имя ограничения. VARCHAR 'exams_exam_id_fkey'
table_catalog Имя базы данных, содержащей таблицу, содержащую столбец, ограниченный этим ограничением (всегда текущая база данных). VARCHAR 'my_db'
table_schema Имя схемы, содержащей таблицу, содержащую столбец, ограниченный этим ограничением. VARCHAR 'main'
table_name Имя таблицы, содержащей столбец, ограниченный этим ограничением. VARCHAR 'exams'
column_name Имя столбца, ограниченного этим ограничением. VARCHAR 'exam_id'
ordinal_position Порядковый номер столбца в ключе ограничения (счёт начинается с 1). INTEGER 1
position_in_unique_constraint Для ограничения внешнего ключа, порядковый номер ссылающегося столбца в его уникальном ограничении (счёт начинается с 1); в противном случае NULL. INTEGER 1

referential_constraints: Ссылочные ограничения

Столбец Описание Тип Пример
constraint_catalog Имя базы данных, содержащей ограничение (всегда текущая база данных). VARCHAR 'my_db'
constraint_schema Имя схемы, содержащей ограничение. VARCHAR main
constraint_name Имя ограничения. VARCHAR exam_id_students_id_fkey
unique_constraint_catalog Имя базы данных, содержащей уникальное или первичное ключевое ограничение, к которому ссылается внешнее ключевое ограничение. VARCHAR 'my_db'
unique_constraint_schema Имя схемы, содержащей уникальное или первичное ключевое ограничение, к которому ссылается внешнее ключевое ограничение. VARCHAR 'main'
unique_constraint_name Имя уникального или первичного ключевого ограничения, к которому ссылается внешнее ключевое ограничение. VARCHAR 'students_id_pkey'
match_option Вариант соответствия внешнего ключевого ограничения. Всегда NONE. VARCHAR NONE
update_rule Правило обновления внешнего ключевого ограничения. Всегда NO ACTION. VARCHAR NO ACTION
delete_rule Правило удаления внешнего ключевого ограничения. Всегда NO ACTION. VARCHAR NO ACTION

schemata: База данных, Каталог и Схема

Вид каталога верхнего уровня — information_schema.schemata. Он перечисляет каталоги и схемы, присутствующие в базе данных, и имеет следующий макет:

Столбец Описание Тип Пример
catalog_name Имя базы данных, в которой содержится схема. VARCHAR 'my_db'
schema_name Имя схемы. VARCHAR 'main'
schema_owner Имя владельца схемы. Пока не реализовано. VARCHAR 'duckdb'
default_character_set_catalog Относится к функции, недоступной в DuckDB. VARCHAR NULL
default_character_set_schema Относится к функции, недоступной в DuckDB. VARCHAR NULL
default_character_set_name Относится к функции, недоступной в DuckDB. VARCHAR NULL
sql_path Путь к файлу базы данных в файловой системе. В настоящее время не реализовано. VARCHAR NULL

tables: Таблицы и Виды

Вид, описывающий информацию о каталоге для таблиц и представлений, — information_schema.tables. Он перечисляет таблицы, присутствующие в базе данных, и имеет следующий макет:

Столбец Описание Тип Пример
table_catalog Каталог, к которому принадлежит таблица или вид. VARCHAR 'my_db'
table_schema Схема, к которой принадлежит таблица или вид. VARCHAR 'main'
table_name Имя таблицы или вида. VARCHAR 'widgets'
table_type Тип таблицы. Один из: BASE TABLE, LOCAL TEMPORARY, VIEW. VARCHAR 'BASE TABLE'
self_referencing_column_name Относится к функции, недоступной в DuckDB. VARCHAR NULL
reference_generation Относится к функции, недоступной в DuckDB. VARCHAR NULL
user_defined_type_catalog Если таблица является типизированной, имя базы данных, содержащей базовый тип данных (всегда текущая база данных), иначе null. В настоящее время не реализовано. VARCHAR NULL
user_defined_type_schema Если таблица является типизированной, имя схемы, содержащей базовый тип данных, иначе null. В настоящее время не реализовано. VARCHAR NULL
user_defined_type_name Если таблица является типизированной, имя базового типа данных, иначе null. В настоящее время не реализовано. VARCHAR NULL
is_insertable_into YES если в таблицу можно вставлять данные, NO если нет (Базовые таблицы всегда доступны для вставки, представления — нет обязательно). VARCHAR 'YES'
is_typed YES если таблица является типизированной, NO если нет. VARCHAR 'NO'
commit_action Пока не реализовано. VARCHAR 'NO'

table_constraints: Ограничения таблиц

Столбец Описание Тип Пример
constraint_catalog Имя базы данных, содержащей ограничение (всегда текущая база данных). VARCHAR 'my_db'
constraint_schema Имя схемы, содержащей ограничение. VARCHAR 'main'
constraint_name Имя ограничения. VARCHAR 'exams_exam_id_fkey'
table_catalog Имя базы данных, содержащей таблицу (всегда текущая база данных). VARCHAR 'my_db'
table_schema Имя схемы, содержащей таблицу. VARCHAR 'main'
table_name Имя таблицы. VARCHAR 'exams'
constraint_type Тип ограничения: CHECK, FOREIGN KEY, PRIMARY KEY, или UNIQUE. VARCHAR 'FOREIGN KEY'
is_deferrable YES если ограничение откладывается, NO если нет. VARCHAR 'NO'
initially_deferred YES если ограничение откладывается и первоначально отложено, NO если нет. VARCHAR 'NO'
enforced Всегда YES. VARCHAR 'YES'
nulls_distinct Если ограничение является уникальным, тогда YES если ограничение рассматривает NULL как разные значения или NO если оно рассматривает NULL как одинаковые значения, в противном случае NULL для других типов ограничений. VARCHAR 'YES'

Функции каталога

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

Функция Описание Пример Результат
current_catalog() Возвращает имя текущего активного каталога. По умолчанию — память. current_catalog() 'memory'
current_schema() Возвращает имя текущей активной схемы. По умолчанию — main. current_schema() 'main'
current_schemas(boolean) Возвращает список схем. Передайте параметр true для включения неявных схем. current_schemas(true) ['temp', 'main', 'pg_catalog']

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/meta/information_schema.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API