Команды SHOW

Команды SHOW

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

Команды SHOW являются (приблизительным) интерактивным эквивалентом командной строки -extract, -x или -а режим (см. разд. "Извлечение метаданных"). Однако, хотя вы можете использовать команду OUTPUT для пересылки выхода команд SHOW в файл, сохраненный текст не будет готов к использованию в качестве скрипта схемы без редактирования. Используйте опции командной строки, если получение скрипта схемы является вашей целью.

Каждая команда SHOW выполняется в своей собственной транзакции READ COMMITTED, гарантируя, что каждый вызов вернет самый последний вид состояния базы данных.

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

SQL> SHOW CHECK имя-таблицы ;

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

SQL> SHOW CHECK JOB ;

CONSTRAINT INTEG_12

CHECK (min_salary < max_salary)

SHOW DATABASE отображает информацию о подключенной базе данных (имя файла, размер и количество выделенных страниц, интервал очистки, номера транзакций, статус Forced Writes, набор символов по умолчанию), SHOW DB является сокращенной версией этой команды.

SQL> SHOW DATABASE | DB ;

SHOW DATABASE не принимает аргументов. На рис. 37.5 показан результат, который вы можете ожидать от команды SHOW DATABASE.

! ! !

СОВЕТ. Для получения информации о версии и структуре на диске (ODS) используйте SHOW VERSION.

. ! .

SHOW DCMAXN[S] отображает информацию домена.

SQL> SHOW { DOMAINS | DOMAIN имя };

DOMAINS - отображает список имен всех доменов, объявленных в базе данных. DOMAIN ИМЯ- отображает определение одного указанного домена.

Рис. 37.5. Результат выполнения SHOW DATABASE

Примеры:

SQL> SHOW DOMAINS ;

D_CURRENCY D_NOTES

D_BOOLEAN D_PHONEFAX

. . .

SQL> SHOW DOMAIN D_BOOLEAN ;

D_BOOLEAN SMALLINT NOT NULL

DEFAULT 0

CHECK(VALUE IN (0,1)

SHOW EXCEPTION[S] отображает информацию исключения.

SQL> SHOW { EXCEPTIONS | EXCEPTION имя };

EXCEPTIONS- отображает список имен и текстов всех исключений, объявленных в базе данных.

EXCEPTION имя - отображает текст одного указанного исключения. Примеры:

SQL> SHOW EXCEPTIONS ; Exception Name Used by, Type

BAD_WIZ_TYPE UPD_FAVEFOOD, Stored procedure Invalid Wiz type, check CAPS LOCK

SQL> SHOW EXCEPTION BAD_WIZ_TYPE ; Exception Name Used by, Type

BAD_WIZ_TYPE UPD_FAVEFOOD, Stored procedure Invalid Wiz type, check CAPS LOCK

SHOW FUNCTION[s] отображает информацию о внешних функциях, объявленных в подключенной базе данных.

SQL> SHOW { FUNCTIONS | FUNCTION имя };

FUNCTIONS- отображает список имен всех внешних функций, объявленных в базе данных.

FUNCTION ИМЯ- отображает объявление указанной внешней функции. Примеры:

SQL> SHOW FUNCTIONS ;

ABS MAXNUM

LOWER SUBSTRLEN

. . .

SQL> SHOW FUNCTION maxnum ;

Function MAXNUM:

Function library is /usr/firebird/udf/ib_udf.so

Entry point is FN_MAX

Returns BY VALUE DOUBLE PRECISION

Argument 1: DOUBLE PRECISION

Argument 2: DOUBLE PRECISION

SHOW GENERATOR[S] отображает информацию о генераторах, объявленных в подключенной базе данных.

SQL> SHOW { GENERATORS | GENERATOR имя };

GENERATORS - отображает список имен всех генераторов, объявленных в базе данных вместе с их текущими значениями.

GENERATOR имя- отображает объявление указанного генератора вместе с его текущим значением.

Примеры:

. . .

SQL> SHOW GENERATORS ;

Generator GEN_EMPNO, Next value: 1234

Generator GEN_JOBNO, Next value: 56789

Generator GEN_ORDNO, Next value: 98765

. . .

SQL> SHOW GENERATOR gen_ordno ;

Generator GEN_ORDNO, Next value: 98765

SHOW GRANT отображает информацию привилегий и ролей по отношению к указанному объекту в подключенной базе данных или отображает членство пользователей в роли.

SQL> SHOW GRANT { объект имя-роли } ;

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

имя-роли- имя существующей роли в текущей базе данных. Используйте SHOW ROLE для получения списка всех ролей, определенных в этой базе данных.

Примеры:

SQL> SHOW GRANT JOB ;

GRANT SELECT ON JOB TO ALL

GRANT DELETE, INSERT, SELECT, UPDATE ON JOB TO MANAGER

SQL> SHOW GRANT DO_THIS ;

GRANT DO THIS TO MAGICIAN

SHOW INDEX (SHOW INDICES) отображает информацию об указанном индексе, об индексах для указанной таблицы или обо всех индексах для всех таблиц в подключенной базе данных. Эта команда может быть сокращена: SHOW IND.

SQL> SHOW {INDICES | INDEX { индекс таблица }};

где индекс- имя существующего индекса в текущей базе данных. таблица - имя существующей таблицы в текущей базе данных. Примеры:

. . .

SQL> SHOW INDEX ;

RDB$PRIMARY1 UNIQUE INDEX ON COUNTRY(COUNTRY)

CUSTNAMEX INDEX ON CUSTOMER(CUSTOMER)

CUSTREGION INDEX ON CUSTOMER(COUNTRY, CITY)

RDB$FOREIGN23 INDEX ON CUSTOMER(COUNTRY)

. . .

SQL> SHOW IND COUNTRY ;

RDB$PRIMARY20 UNIQUE INDEX ON COUNTRY(COSTNO)

CUSTNAMEX INDEX ON CUSTOMER(CUSTOMER)

! ! !

ПРИМЕЧАНИЕ. Для получения информации о текущем состоянии индексов в базе данных используйте gstat -i. Применение утилиты gstat обсуждалось в конце главы 18.

. ! .

SHOW PROCEDURE[S] отображает все процедуры в подключенной базе данных с их зависимостями или отображает текст указанной процедуры с объявлениями и типами (входной/выходной) каждого аргумента. Команда может иметь сокращенный вид SHOW PROC.

SQL> SHOW {PROCEDURES | PROCEDURE имя } ;

PROCEDURES - отображает список имен всех процедур вместе с их зависимостями.

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

Примеры:

SQL> SHOW PROCEDURES ;

Procedure Name

Dependency

Type

======= ======= =======

ADD EMP PROJ

EMPLOYEE PROJECT

Table

UNKNOWN_EMP_ID

Exception

DELETE EMPLOYEE

DEPARTMENT

Table

EMPLOYEE

Table

EMPLOYEE PROJECT

Table

SQL> SHOW PROC ADD_EMP_PROJ ;

Procedure text:

BEGIN

BEGIN

INSERT INTO EMPLOYEE_PROJECT (

EMP_NO, PROJ_ID) VALUES (

:emp_no, :proj_id) ;

WHEN SQLCODE -530 DO

EXCEPTION UNKNOWN_EMP_ID;

END

RETURN ;

END

Parameters:

EMP_NO INPUT SMALLINT

PROJ_ID INPUT CHAR(5)

SHOW ROLE [s] отображает имена ролей SQL в подключенной базе данных.

SQL> SHOW ROLES ;

SHOW ROLES не принимает аргументов. Примеры:

SQL> SHOW ROLES ; MAGICIAN MANAGER PARIAH SLEEPER

SHOW GRANT имя роли используется для отображения членства пользователей в ролях.

SHOW SQL DIALECT отображает диалекты SQL клиента и подключенной базы данных, если такая есть.

SQL> SHOW SQL DIALECT;

Пример:

SQL> SHOW SQL DIALECT;

Client SQL dialect is set: 3 and database SQL dialect is: 3

SHOW SYSTEM отображает имена системных таблиц и системных просмотров в подключенной базе данных. Команда имеет сокращение SHOW SYS.

SQL> SHOW SYS [ TABLES ] ;

Команда не принимает аргументов, TABLES является необязательным ключевым словом, которое не влияет на поведение команды.

Примеры:

SQL> SHOW SYS ;

RDB$CHARACTER_SETS RDB$CHECK_CONSTRAINTS RDB S COLLATION S RDB $ DATABASE

Подробную информацию о системных таблицах см. в приложении 9.

SHOW TABLE[S] отображает все таблицы или просмотры либо информацию об указанной таблице или просмотре.

SQL> SHOW { TABLES | TABLE имя };

SHOW TABLES - отображает список имен всех таблиц и просмотров в алфавитном порядке.

SHOW TABLE имя- показывает подробности указанной таблицы или просмотра. Если объект является таблицей, вывод содержит имена столбцов и их определение, PRIMARY KEY, FOREIGN KEY, ограничения CHECK и триггеры. Если объект является просмотром, то вывод содержит имена столбцов и оператор SELECT, на котором основывается просмотр.

Примеры:

SQL> SHOW TABLES ; COUNTRY CUSTOMER

DEPARTMENT EMPLOYEE EMPLOYEE?PROJECT JOB

SQL> SHOW TABLE COUNTRY ; COUNTRY COUNTRYNAME VARCHAR (15) NOT NULL CURRENCY VARCHAR(10) NOT NULL PRIMARY KEY (COUNTRY)

См. также SHOW VIEWS позже в этой главе.

SHOW TRiGGER[S] отображает все триггеры, определенные в базе данных вместе с их таблицами, или для указанного триггера отображает его последовательный номер, тип, статус активности (активен/не активен) и определение PSQL. Сокращенный вариант команды SHOW TRIG.

SQL> SHOW {TRIGGERS | TRIGGER имя } ;

SHOW TRIGGERS - отображает список имен всех таблиц вместе с именами их триггеров в алфавитном порядке.

SHOW TRIGGER имя- для заданного триггера указывает таблицу, к которой он принадлежит, отображает параметры заголовка, статус активности и исходный код PSQL тела триггера.

Примеры:

SQL> SHOW TRIGGERS ;

Table name Trigger name

========== ==========

EMPLOYEE SET_EMP_NO

EMPLOYEE SAVE_SALARY_CHANGE

CUSTOMER SET_CUST_NO

SALES PQST_NEW_ORDER

SQL> SHOW TRIG SET_CUST_NO ;

Trigger:

SET_CUST_NO, Sequence: 0, Type: BEFORE INSERT, Active

AS

BEGIN

new.custno = gen_id (cust_no_gen, 1);

END

SHOW VERSION отображает информацию о программной версии isql и серверной программы Firebird, а также номер структуры на диске (ODS) подключенной базы данных. Сокращенный вариант команды SHOW VER.

SQL> SHOW VERSION ;

Команда не принимает аргументов.

Пример для сервера с именем dev с запушенным Firebird 1.5 под Windows 2000:

SQL> SHOW VER ; -

ISQL Version: WI-V1.5.0.4306 Firebird 1.5 Firebird/x86/Windows NT (access method), version "WI-V1.5.0.4306 Firebird 1.5" Firebird/x86/Windows NT (remote server), version "WI-V1.5.0.4306 Firebird 1.5/tcp (dev)/P10" Firebird/x86/Windows NT (remote interface), version "WI-V1.5.0.4306 Firebird 1.5/tcp (dev)/Р10" on disk structure version 10.1

SHOW VXEW[S] отображает все просмотры или информацию об указанном просмотре. (См. также SHOW TABLES.)

SQL> SHOW { VIEWS | VIEW имя } ;

SHOW VIEWS - отображает список имен всех просмотров в алфавитном порядке.

SHOW VIEW ИМЯ- отображает имена столбцов и оператор SELECT, на котором основан просмотр.

Пример:

SQL> SHOW VIEWS ;

PHONE_LIST CUSTOMER

. . .

SQL> SHOW VIEW PHONE_LIST;

EMP_NO (EMPNO) SMALLINT Not Null

FIRST_NAME (FIRSTNAME) VARCHAR(15) Not Null

LAST_NAME (LASTNAME) VARCHAR(20) Not Null

PHONE_EXT VARCHAR(4) Nullable

LOCATION VARCHAR(15) Nullable

PHONE_NO (PHONENUMBER) VARCHAR(20) Nullable

View Source:

=============

SELECT

emp_no, first_name, last_name, phone_ext, location, phone_no FROM employee, department

WHERE employee.dept_no = department.dept_no