SQL Bible [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

SQL Bible [Electronic resources] - نسخه متنی

Alex Kriegel

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید






IBM DB2 UDB 8.1 System Catalogs

IBM DB2 UDB maintains two sets of the
INFORMATION_SCHEMA views — one in
SYSCAT schema and a subset in the
SYSSTAT schema (used for SQL Optimizer to
improve query performance). All views are created whenever the
CREATE
DATABASE command is run; the views
comprising the catalog cannot be explicitly dropped, altered, or updated,
except for some columns in the
SYSSTAT views.


The INFORMATION_SCHEMA objects in
DB2


The
Table
13-5
shows some of the views we consider most useful.





Note

INFORMATION_SCHEMA views are
introduced for SQL standard compliance and are maintained on top of system base
tables.















































































































Table 13-5: Selected IBM DB2 UDB INFORMATION_SCHEMA
Views


INFORMATION_SCHEMA
View


Contains Information
About


SYSCAT.ATTRIBUTES


Attributes of the structured
data types


SYSCAT.DBAUTH


Database
authorities


SYSCAT.CHECKS


Check constraints; corresponds
to the SQL99 standard view
CHECK_CONSTRAINTS


SYSCAT.COLAUTH


Column level
privileges


SYSCAT.COLUMNS


Columns accessible for the
current user


SYSCAT.COLCHECKS


Columns referenced by the
check constraints


SYSCAT.KEYCOLUSE


Columns used in the keys —
either primary or foreign


SYSCAT.CONSTDEP


Constraint
dependencies


SYSCAT.DATATYPES


Valid data
types


SYSCAT.INDEXAUTH


Privileges for
indices


SYSCAT.INDEXCOLUSE


Columns of which indices are
comprised


SYSCAT.INDEXDEP


Index
dependencies


SYSCAT.INDEXES


Indices


SYSCAT.PACKAGES


Packages


SYSCAT.PACKAGEAUTH


Package
privileges


SYSCAT.PACKAGEDEP


Package
dependencies


SYSCAT.PROCOPTIONS


Stored procedure
options.


SYSCAT.PROCPARMOPTIONS


Stored procedure parameter
options


SYSCAT.PROCPARMS


Stored procedures
parameters


SYSCAT.REFERENCES


Referential constraints;
corresponds to the SQL99 standard
REFERENTIAL_CONSTRAINTS


SYSCAT.SCHEMAUTH


Schema
privileges


SYSCAT.SCHEMATA


All the schemas defined for
the database


SYSCAT.SEQUENCES


Database
sequences


SYSCAT.PROCEDURES


Stored
procedures


SYSCAT.TABCONST


Constraints defined for the
table


SYSCAT.TABAUTH


Table level
privileges


SYSCAT.TABLES


Tables created within the
database


SYSCAT.TABLESPACES


Database
tablespaces


SYSCAT.TABLESPACEAUTH


Tablespace
privileges


SYSCAT.TRIGDEP


Trigger
dependencies


SYSCAT.TRIGGERS


Triggers created in the
database.


SYSCAT.FUNCTIONS


User-defined
functions


SYSCAT.VIEWS


Views created in the
database


The
SELECT privilege to views is granted to
PUBLIC by default. IBM explicitly states
that columns in the views might be changed from release to release and
recommends querying these tables using
SELECT
*
FROM
SYSCAT.<view> syntax. Nevertheless,
IBM specifies that some columns are "guaranteed" to work with the corresponding
views. (See
Table
13-6
.)









































Table 13-6: INFORMATION_SCHEMA Views Column Names


Object


Selected Column
Names


TABLE


TABSCHEMA,
TABNAME,
COLCOUNT,
KEYCOLUMNS


INDEX


INDSCHEMA,
INDNAME


VIEW


VIEWSCHEMA,
VIEWNAME,
TABID,
COLNO,
COLTYPE


CONSTRAINT


CONSTSCHEMA,
CONSTNAME,


TRIGGER


TRIGSCHEMA,
TRIGNAME


PACKAGE


PKGSCHEMA,
PCKGNAME


TYPE


TYPESCHEMA,
TYPENAME,
TYPEID


FUNCTION


FUNCSCHEMA,
FUNCNAME,
FUNCID


COLUMN


COLNAME,
COLNO,
DEFAULT,
REMARKS


SCHEMA


SCHEMANAME


The following query retrieves
information about the table
CUSTOMER created in the ACME database. To
display meaningful results, we've limited the number of columns selected to
three, because the table contains over 30 columns.

db2 => SELECT tabschema,
colcount, create_time FROM syscat.tables WHERE tabname = 'CUSTOMER' TABSCHEMA
COLCOUNT CREATE_TIME ------------------- -------- --------------------------
ACME 7 2002-09-23-17.55.50.95300 1 record(s) selected.

The information returned shows that the
table
CUSTOMER belongs to the schema
ACME, was created on 9/23/2002, and
contains seven columns. It is possible to join tables of the system catalog to
produce combined results. The following query joins two tables,
SYSCAT.TABLES and
SYSCAT.COLUMNS, to give a single set of
values extracted from both tables.

db2 =>
SELECT tbl.tabname, cl.colname FROM syscat.tables tbl, syscat.columns cl WHERE
syscat.tables.tabname = syscat.columns.tabname AND syscat.tables.tabname =
'CUSTOMER' TABNAME COLNAME ------------- ------------------------------
CUSTOMER CUST_ID_N CUSTOMER CUST_PAYTERMSID_FN CUSTOMER CUST_SALESMANID_FN
CUSTOMER CUST_STATUS_S CUSTOMER CUST_NAME_S CUSTOMER CUST_ALIAS_S CUSTOMER
CUST_CREDHOLD_S 7 record(s) selected.

Some
INFORMATION_SCHEMA views contained in the
SYSSTAT schema are updateable as shown in
Table
13-7
.


























Table 13-7: Updateable IBM DB2 UDB INFORMATION_SCHEMA
Views


INFORMATION_SCHEMA
Views


Description


SYSSTAT.COLUMNS


Contains information about
columns for each table.


SYSSTAT.INDEXES


Contains information about
indices created for the database tables.


SYSSTAT.COLDIST


Contains detailed statistics
about column usage.


SYSSTAT.TABLES


Contains information about the
database tables.


SYSSTAT.FUNCTIONS


Contains information about
user-defined functions.






Tip

For the sake of compatibility with the DB2 Universal Database for
OS/390, IBM maintains the
SYSDUMMY1 catalog table in the
SYSCAT schema. This table consists of
one row and one column (IBMREQ) of the
CHAR(1) data type. See
Chapter
8
for more information on the use of this table.



Obtaining information about
INFORMATION_SCHEMA objects


The
DESCRIBE
TABLE
<table_name> command can be used to
obtain information about the internal structure of the
INFORMATION_SCHEMA objects in DB2. For
example:

db2 =>
describe table syscat.views Column Type Type name Length Scale Nulls name
schema --------------- ------------- --------- ------- ------ ----- VIEWSCHEMA
SYSIBM VARCHAR 128 0 No VIEWNAME SYSIBM VARCHAR 128 0 No DEFINER SYSIBM VARCHAR
128 0 No SEQNO SYSIBM INTEGER 4 0 No VIEWCHECK SYSIBM CHARACTER 1 0 No READONLY
SYSIBM CHARACTER 1 0 No VALID SYSIBM CHARACTER 1 0 No QUALIFIER SYSIBM VARCHAR
128 0 No FUNC_PATH SYSIBM VARCHAR 254 0 No TEXT SYSIBM CLOB 65536 0 No 10
record(s) selected.

/ 207