isql SHOW commands
<< isql SET commands | Firebird Interactive SQL Utility | A: Document history >>
SHOW CHECKs
SHOW COLLATIONs
SHOW COMMENTs
SHOW DATABASE
SHOW DEPENdencies
SHOW DOMAINs
SHOW EXCEPtions
SHOW FILTERs
SHOW FUNCtions
SHOW GENERATORs
SHOW GRANTs
SHOW INDexes
SHOW PROCedures
SHOW ROLEs
SHOW SECCLAsses
SHOW SECURITY CLAsses
SHOW SEQuences
SHOW SQL DIALECT
SHOW SYStem
SHOW TABLEs
SHOW TRIGgers
SHOW VERsion
SHOW USERS
SHOW VIEWs
isql SHOW
commands
As explained in the help command, there are a number of individual SHOW
commands within isql
. The general format of the SHOW
commands is:
SQL> SHOW <object> [name] ;
The object
is always required and the name
is required to display details of a specific object. Without a name
, the commands will normally display all the objects of the requested type. Unfortunately, unlike the SET
commands, there is no handy drill down into the various SHOW
commands using the HELP
command. However, if you type SHOW
on its own, you will be given a little more assistance.
SQL> show; Valid options are: CHECKs COMMENTs COLLATEs COLLATIONs DOMAINs DB DATABASE DEPENdency DEPENdencies EXCEPtions FILTERs FUNCtions GENerators GRANTs INDexes INDICES PROCedures ROLEs SYStem SEQuences SECURITY CLAsses SECCLAsses TABLEs TRIGgers USERS VIEWs Command error: show
The upper case letters indicate what you must type as an absolute minimum.
The SHOW
commands are detailed and described below. Where possible, examples from the employee
database are shown.
SHOW CHECKs
SQL> SHOW CHECKs table_name;
This command displays all user-defined check constraints defined for a specific table. Unlike other SHOW
commands, there is no option to display a list of all the check constraints in the database. You must always provide a table name as part of the command.
SQL> show check employee; CONSTRAINT INTEG_30: CHECK ( salary >= (SELECT min_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country) AND salary <= (SELECT max_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country))
SHOW COLLATIONs
SQL> SHOW {COLLATIONs | COLLATION name}; SQL> SHOW {COLLATEs | COLLATE name};
These commands display a list of all the user-defined collations in the current database. It is only available from Firebird 2.0 onwards. The first form of the commands display a list of all the collations while a specific collation may be displayed by providing the collation name.
SQL> show collations; UNICODE_ENUS_CI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, 'COLL-VERSION=58.0.6.48' UNICODE_ENUS_CS, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, 'COLL-VERSION=58.0.6.48' SQL> show collation unicode_enus_ci; UNICODE_ENUS_CI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, 'COLL-VERSION=58.0.6.48'
You can see from the output above, which is not part of the employee
database, does appear to display all the relevant information in the first form of the command. There does not appear to be much reason to drill down into a specific collation - at least, not according to this example. Some lines in the above have had to be split over two to allow it to fit on the page.
SHOW COMMENTs
SQL> SHOW COMMENTs;
This command displays all comments that have been created, on various objects, in the current database. There is no option to display a specific comment. Each comment is listed along with the object type and name, to which it has been applied.
SQL> show comments; COMMENT ON DATABASE IS This is the demonstration EMPLOYEE database.; COMMENT ON TABLE EMPLOYEE IS The EMPLOYEE table has details of our employees.;
The actual comment text is shown between the word IS
and the trailing semicolon.
SHOW DATABASE
SQL> SHOW DATABASE; SQL> SHOW DB;
The SHOW DATABASE
(or SHOW DB
) command displays details about the current database. The ODS version, shown in the following examples, is only displayed from Firebird version 2.0 onwards.
SQL> show database; Database: employee Owner: SYSDBA PAGE_SIZE 4096 Number of DB pages allocated = 270 Sweep interval = 20000 Forced Writes are ON Transaction - oldest = 190 Transaction - oldest active = 191 Transaction - oldest snapshot = 191 Transaction - Next = 211 ODS = 11.2 Default Character set: NONE
No parameters, such as a specific database name, are required and if supplied, will be ignored. The details displayed will always be for the current database.
SQL> show database testing_db; Database: employee Owner: SYSDBA PAGE_SIZE 4096 ... Default Character set: NONE
You will note from the above that the details displayed are still for the employee
database.
SHOW DEPENdencies
SQL> SHOW DEPENdencies object_name; SQL> SHOW DEPENdency object_name;
These commands display all dependencies for the specified object name supplied as a parameter. The object name supplied need not necessarily be a table name, it could be a function or procedure name, a sequence name etc.
The output listed is a comma separated list of the other objects in the database upon which the supplied object is dependent. In other words, a procedure would fail to compile if any of the listed dependencies was to be removed, for example.
SQL> show dependencies SET_CUST_NO; [SET_CUST_NO:Trigger] CUSTOMER:Table<-CUST_NO, CUST_NO_GEN:Generator +++
The listing above shows that SET_CUST_NO
is a trigger and that it is dependent on two separate objects, the CUST_NO
column of table CUSTOMER
and the sequence/generator named CUST_NO_GEN
. If you display the trigger itself, you will see both of those objects mentioned:
SQL> show trigger set_cust_no; Triggers on Table CUSTOMER: SET_CUST_NO, Sequence: 0, Type: BEFORE INSERT, Active AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sometimes, the output can be a little confusing. You may see various objects in the list that don't appear to be relevant. The RDB$DEPENDENCIES
table, where the data comes from, also holds details of system objects upon which a given object will depend.
SHOW DOMAINs
SQL> SHOW {DOMAINs | DOMAIN name};
This command displays domain information. A domain is a user-defined data type, global to the database. It is used to define the format and range of columns, upon which the actual column definitions in tables are based.
Firebird tables are defined by the specification of columns, which store appropriate information in each column using data types.
A data type is an elemental unit when defining data, which specifies the type of data stored in tables, and which operations may be performed on this data. It can also include permissible calculative operations and maximum data size. Examples of data types include: numerical (numeric, decimal, integer);textual (char, varchar, nchar, nvarchar); date (date, time, timestamp) and blobs(binary large objects).
As with many show commands, there are two forms. The first displays a list of all known domains in the database while the second allows you to display the details of a specific domain.
SQL> show domain; ADDRESSLINE BUDGET COUNTRYNAME CUSTNO DEPTNO EMPNO FIRSTNAME JOBCODE ... SQL> show domain addressline; ADDRESSLINE VARCHAR(30) Nullable
SHOW EXCEPtions
SQL> SHOW {EXCEPtions | EXCEPtion name};
This command displays all the exceptions which have been defined in the current database. Details of the exception's error message and objects which use the exception - those which are dependant upon the exception - are also shown. You may display individual exception's details with the second FOR
of the command.
SQL> show exceptions; Exception Name Used by, Type =============================== ============================================= CUSTOMER_CHECK SHIP_ORDER, Stored procedure Msg: Overdue balance -- can not ship. CUSTOMER_ON_HOLD SHIP_ORDER, Stored procedure Msg: This customer is on hold. ... SQL show exception customer_on_hold; Exception Name Used by, Type =============================== ============================================= CUSTOMER_ON_HOLD SHIP_ORDER, Stored procedure Msg: This customer is on hold.
SHOW FILTERs
SQL> SHOW {FILTERs | FILTER name};
This command displays a list of all known BLOB
filters declared in the current database using the DECLARE FILTER
command. The second form of the command allows the full details of a specific filter to be displayed.
SQL> show filter; FUNNEL ... SQL> show filter funnel; BLOB Filter: FUNNEL Input subtype: 2 Output subtype: 1 Filter library is myfilterlib Entry point is blr2asc
SHOW FUNCtions
SQL> SHOW {FUNCtions | FUNCtion name};
This command allows a list of all external functions declared in the current database, to be displayed. External functions are those defined and coded in various UDF libraries.
The second form of the command allows the details of a specific function to be displayed.
SQL> show functions; ADDDAY ADDDAY2 ADDHOUR ADDMILLISECOND ADDMINUTE ADDMONTH ADDSECOND ADDWEEK ADDYEAR SQL> show function addyear; Function ADDYEAR: Function library is fbudf Entry point is addYear Returns TIMESTAMP Argument 1: TIMESTAMP Argument 2: INTEGER
SHOW GENERATORs
SQL> SHOW {GENERATORs | DOMAIN name}; SQL> SHOW {SEQuences | SEQuence name};
These two commands are identical. Generators was the old Firebird term for what are more commonly known as sequences in other databases, as well as the ANSII Standards. You are encouraged to use sequences rather than generators but isql considers them to be the same.
The first form of the commands above list all the sequences in the current database, while the second form displays details of a specific sequence.
SQL> show sequences; Generator CUST_NO_GEN, current value is 1015 Generator EMP_NO_GEN, current value is 145 SQL> show sequence emp_no_gen; Generator EMP_NO_GEN, current value is 145
SHOW GRANTs
SQL> SHOW {GRANTs | GRANT {object_name | role_name}};
This command displays a list of all grants in the current database if the first format of the command is used. The second drills down and displays only those details for the selected object, which may be a table, procedure, etc. Alternatively, if a role name is provided, only a list of users who have been granted that role will be displayed.
SQL> show grants; /* Grant permissions for this database */ GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COUNTRY TO PUBLIC WITH GRANT OPTION GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON CUSTOMER TO PUBLIC WITH GRANT OPTION ... GRANT SELECT ON EMPLOYEE TO ROLE DEFAULT_USER ... GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO PUBLIC WITH GRANT OPTION GRANT EXECUTE ON PROCEDURE ALL_LANGS TO PUBLIC WITH GRANT OPTION ... SQL> show grants employee; GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON EMPLOYEE TO PUBLIC WITH GRANT OPTION SQL> show grants ship_order; GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO PUBLIC WITH GRANT OPTION SQL> show grants default_user; GRANT DEFAULT_USER TO SYSDBA
Note that some lines in the above have been split to allow them to fit on the page.
SHOW INDexes
SQL> SHOW {INDexes | INDICES}; SQL> SHOW {INDICES | INDexes} table_name; SQL> SHOW INDex index_name;
The first form of this command will list all the indexes in the current database. In this form, you may specify either indexes or indices, they are treated as identical by Firebird. The second form of the command will display the list of indices for a specific table as determined by the table_name
parameter. Again, you may specify indexes or indices. The final form of the command displays details of a given index and in this form of the command, you must use the keyword index.
SQL> show indices; RDB$PRIMARY1 UNIQUE INDEX ON COUNTRY(COUNTRY) CUSTNAMEX INDEX ON CUSTOMER(CUSTOMER) ... SALESTATX INDEX ON SALES(ORDER_STATUS, PAID) SQL> show indices employee; NAMEX INDEX ON EMPLOYEE(LAST_NAME, FIRST_NAME) RDB$FOREIGN8 INDEX ON EMPLOYEE(DEPT_NO) RDB$FOREIGN9 INDEX ON EMPLOYEE(JOB_CODE, JOB_GRADE, JOB_COUNTRY) RDB$PRIMARY7 UNIQUE INDEX ON EMPLOYEE(EMP_NO) SQL> show index namex; NAMEX INDEX ON EMPLOYEE(LAST_NAME, FIRST_NAME)
SHOW PROCedures
SQL> SHOW {PROCedures | PROCedure name};
This command allows a list of all procedures created in the current database, to be displayed. The second form of the command allows the details and source code to be shown for a specific procedure. See also the SHOW FUNCTIONs
and SHOW TRIGGERs
commands.
SQL> show procedures; Procedure Name Invalid Dependency, Type ================================= ======= ===================================== ADD_EMP_PROJ EMPLOYEE_PROJECT, Table UNKNOWN_EMP_ID, Exception ALL_LANGS JOB, Table SHOW_LANGS, Procedure ... SQL> show procedure all_langs; Procedure text: ============================================================================= BEGIN FOR SELECT job_code, job_grade, job_country FROM job INTO :code, :grade, :country DO BEGIN FOR SELECT languages FROM show_langs (:code, :grade, :country) INTO :lang DO SUSPEND; /* Put nice separators between rows */ code = '====='; grade = '====='; country = '==============='; lang = '=============='; SUSPEND; END END ============================================================================= Parameters: CODE OUTPUT VARCHAR(5) GRADE OUTPUT VARCHAR(5) COUNTRY OUTPUT VARCHAR(15) LANG OUTPUT VARCHAR(15)
SHOW ROLEs
SQL> SHOW {ROLEs | ROLE name};
This command lists all the roles in the current database if the first form is used or, drills down to display a list of all the users who have been granted a specific role if the second form of the command is used.
SQL> show roles; DEFAULT_USER SQL> show role default_user; Role DEFAULT_USER is granted to: SYSDBA
SHOW SECCLAsses
SQL> SHOW SECCLAsses object_name;
This command displays details about the security classes for a given object. The object_name
passed to the command need not be a table name, the command works for tables, procedures etc.
SQL> show secclasses employee; Table's main sec class SQL$7 Table's default sec class SQL$DEFAULT7
SHOW SECURITY CLAsses
SQL> SHOW SECURITY CLAsses name;
This command always returns an error.
SQL> show security classes; Command error: show security classes SQL> show security classes employee; Command error: show security_classes employee
SHOW SEQuences
The Firebird specific name, generator, has been updated to match the ANSII standard term sequence. The SHOW SEQuences
command is identical to SHOW GENERATORs
(above) and the output is identical.
SHOW SQL DIALECT
SQL> SHOW SQL DIALECT;
This command, which must be entered in full, shows the current database's dialect as well as the dialect used by the currently connected client.
SQL> show SQL Dialect; Client SQL dialect is set to: 3 and database SQL dialect is: 3
SHOW SYStem
SQL> SHOW SYStem [tables];
This command lists the internal, i.e. system, objects created and used in the current database. The optional parameter - tables
- restricts the listing to show only tables. This applies from Firebird 2.0 onwards. Prior to version 2.0, the command would only list the system tables - equivalent to the SHOW SYSTEM TABLES
command.
If no parameter is passed, the listing will display tables, functions (internal as opposed to external ones) and collations.
SQL> show system; Tables: MON$ATTACHMENTS MON$CALL_STACK ... RDB$USER_PRIVILEGES RDB$VIEW_RELATIONS Functions: RDB$GET_CONTEXT RDB$SET_CONTEXT Collations: ASCII BIG_5 ... WIN1258 WIN_CZ WIN_CZ_CI_AI WIN_PTBR
If you wish to drill down and display details of a specific object, simply use the corresponding command.
SQL> show table mon$io_stats; MON$STAT_ID (RDB$STAT_ID) INTEGER Nullable MON$STAT_GROUP (RDB$STAT_GROUP) SMALLINT Nullable MON$PAGE_READS (RDB$COUNTER) BIGINT Nullable MON$PAGE_WRITES (RDB$COUNTER) BIGINT Nullable MON$PAGE_FETCHES (RDB$COUNTER) BIGINT Nullable MON$PAGE_MARKS (RDB$COUNTER) BIGINT Nullable SQL> show function rdb$get_context; Function RDB$GET_CONTEXT: Function library is system_module Entry point is get_context Returns FREE_IT VARCHAR(255) CHARACTER SET NONE Argument 1: NULL VARCHAR(80) CHARACTER SET NONE Argument 2: NULL VARCHAR(80) CHARACTER SET NONE SQL> show collation ascii; ASCII, CHARACTER SET ASCII, PAD SPACE, SYSTEM
You will note that the SHOW FUNCtions
command will display details of internal functions as well as those defined externally.
SHOW TABLEs
SQL> SHOW {TABLEs | TABLE name};
This command lists the user-defined tables in the database if the first form of the command is used, or displays the columns and data types or domains making up the table if the second form is used, with a table name
supplied as a parameter.
SQL> show tables; COUNTRY CUSTOMER DEPARTMENT EMPLOYEE EMPLOYEE_PROJECT JOB PROJECT PROJ_DEPT_BUDGET SALARY_HISTORY SALES SQL> show table country; COUNTRY (COUNTRYNAME) VARCHAR(15) Not Null CURRENCY VARCHAR(10) Not Null CONSTRAINT INTEG_2: Primary key (COUNTRY)
You will note that if there are comments defined for a table, this command will not display them. You must use the SHOW COMMENTs
command but be aware that you will then be given all comments in the database. There doesn't appear to be a method of extracting the comments for a single object, unless you query the system tables directly.
SQL> comment on table country is 'This table holds details about countries.'; SQL> commit; SQL> show comments; ... COMMENT ON TABLE COUNTRY IS This table holds details about countries.; ... SQL> show table country; COUNTRY (COUNTRYNAME) VARCHAR(15) Not Null CURRENCY VARCHAR(10) Not Null CONSTRAINT INTEG_2: Primary key (COUNTRY) SQL> select rdb$description CON> from rdb$relations CON> where rdb$relation_name = 'COUNTRY'; RDB$DESCRIPTION ================= 6:1e7 ============================================================================== RDB$DESCRIPTION: This is a table holding details about countries. ==============================================================================
The output from the final query above is not ideal, but at least it displays much less information if there are lots of comments in your database.
SHOW TRIGgers
SQL> SHOW {TRIGgers | TRIGger name};
This command allows a list of all triggers created in the current database to be displayed. The second form of the command allows the details and source code to be shown for a specific trigger. See also the SHOW PROCedures
and SHOW FUNCtions
commands.
SQL> show triggers; Table name Trigger name Invalid ================================ ================================ ======= CUSTOMER SET_CUST_NO EMPLOYEE SAVE_SALARY_CHANGE EMPLOYEE SET_EMP_NO SALES POST_NEW_ORDER SQL> show trigger set_cust_no; Triggers on Table CUSTOMER: SET_CUST_NO, Sequence: 0, Type: BEFORE INSERT, Active AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SHOW VERsion
SQL> SHOW VERsion;
This command displays details about the Firebird software, your database and the on disk structure (ODS) in use.
SQL> show version; ISQL Version: LI-V2.5.1.26351 Firebird 2.5 Server version: Firebird/linux AMD64 (access method), version "LI-V2.5.1.26351 Firebird 2.5" Firebird/linux AMD64 (remote server), version "LI-V2.5.1.26351 Firebird 2.5/tcp (hubble)/P12" Firebird/linux AMD64 (remote interface), version "LI-V2.5.1.26351 Firebird 2.5/tcp (hubble)/P12" on disk structure version 11.2
The above output has been adjusted to fit on the page. Each pair of lines beginning with Firebird
and version
are normally displayed as a single line. They are split over two lines here.
SHOW USERS
SQL> SHOW USERS;
This command shows a list of users who are currently connected to the database. If a user is logged in on more than one session, all sessions will be displayed separately.
SQL> show users; Users in the database # SYSDBA # SYSDBA # NORMAN
SHOW VIEWs
SQL> SHOW {VIEWs | VIEW name};
The first form of this command displays a list of all views in the current database. Drilling down using the second form of the command will display the columns and source code for a specific view.
SQL> show views; PHONE_LIST 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
See also:
Structured Query Language: isql
Firebird and InterBase® command-line utilities: isql
back to top of page
<< isql SET commands | Firebird Interactive SQL Utility | A: Document history >>