Команды 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