日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Information_Schema系统表

發(fā)布時(shí)間:2023/12/10 windows 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Information_Schema系统表 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

? ??information_schema數(shù)據(jù)庫(kù)是MySQL自帶的,它提供了訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù)的方式。 ? ?

? ??元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫(kù)名或表名,列的數(shù)據(jù)類型,或訪問(wèn)權(quán)限等。有些時(shí)候用于表述該信息的其他術(shù)語(yǔ)包括“數(shù)據(jù)詞典”和“系統(tǒng)目錄”。
? ??在 MySQL中,把 information_schema 看作是一個(gè)數(shù)據(jù)庫(kù),確切說(shuō)是信息數(shù)據(jù)庫(kù)。

? ??其中保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息。如數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)的表,表欄的數(shù)據(jù)類型與訪問(wèn)權(quán)限等。

? ??在INFORMATION_SCHEMA中,有數(shù)個(gè)只讀表。它們實(shí)際上是視圖,不是基本表,因此,你將無(wú)法看到與之相關(guān)的任何文件。

?


?

information_schema數(shù)據(jù)庫(kù)表說(shuō)明:

?

SCHEMATA表:

????提供了當(dāng)前mysql實(shí)例中所有數(shù)據(jù)庫(kù)的信息。是show databases的結(jié)果取之此表。

TABLES表:

????提供了關(guān)于數(shù)據(jù)庫(kù)中的表的信息(包括視圖)。詳細(xì)表述了某個(gè)表屬于哪個(gè)schema,表類型,表引擎,創(chuàng)建時(shí)間等信息。是show tables from schemaname的結(jié)果取之此表。

COLUMNS表:

????提供了表中的列信息。詳細(xì)表述了某張表的所有列以及每個(gè)列的信息。是show columns from schemaname.tablename的結(jié)果取之此表。

STATISTICS表:

????提供了關(guān)于表索引的信息。是show index from schemaname.tablename的結(jié)果取之此表。

USER_PRIVILEGES(用戶權(quán)限)表:

????給出了關(guān)于全程權(quán)限的信息。該信息源自mysql.user授權(quán)表。是非標(biāo)準(zhǔn)表。

SCHEMA_PRIVILEGES(方案權(quán)限)表:

????給出了關(guān)于方案(數(shù)據(jù)庫(kù))權(quán)限的信息。該信息來(lái)自mysql.db授權(quán)表。是非標(biāo)準(zhǔn)表。

TABLE_PRIVILEGES(表權(quán)限)表:

????給出了關(guān)于表權(quán)限的信息。該信息源自mysql.tables_priv授權(quán)表。是非標(biāo)準(zhǔn)表。

COLUMN_PRIVILEGES(列權(quán)限)表:

????給出了關(guān)于列權(quán)限的信息。該信息源自mysql.columns_priv授權(quán)表。是非標(biāo)準(zhǔn)表。

CHARACTER_SETS(字符集)表:

????提供了mysql實(shí)例可用字符集的信息。是SHOW CHARACTER SET結(jié)果集取之此表。

COLLATIONS表:

????提供了關(guān)于各字符集的對(duì)照信息。

COLLATION_CHARACTER_SET_APPLICABILITY表:

????指明了可用于校對(duì)的字符集。這些列等效于SHOW COLLATION的前兩個(gè)顯示字段。

TABLE_CONSTRAINTS表:

????描述了存在約束的表。以及表的約束類型。

KEY_COLUMN_USAGE表:

????描述了具有約束的鍵列。

ROUTINES表:

????提供了關(guān)于存儲(chǔ)子程序(存儲(chǔ)程序和函數(shù))的信息。此時(shí),ROUTINES表不包含自定義函數(shù)(UDF)。名為“mysql.proc name”的列指明了對(duì)應(yīng)于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

VIEWS表:

????給出了關(guān)于數(shù)據(jù)庫(kù)中的視圖的信息。需要有show views權(quán)限,否則無(wú)法查看視圖信息。

TRIGGERS表:

????提供了關(guān)于觸發(fā)程序的信息。必須有super權(quán)限才能查看該表。

?


?

+---------------------------------------+

| Tables_in_information_schema |

+---------------------------------------+

| CHARACTER_SETS |

| COLLATIONS |

| COLLATION_CHARACTER_SET_APPLICABILITY |

| COLUMNS |

| COLUMN_PRIVILEGES |

| ENGINES |

| EVENTS |

| FILES |

| GLOBAL_STATUS |

| GLOBAL_VARIABLES |

| KEY_COLUMN_USAGE |

| PARAMETERS |

| PARTITIONS |

| PLUGINS |

| PROCESSLIST |

| PROFILING |

| REFERENTIAL_CONSTRAINTS |

| ROUTINES |

| SCHEMATA |

| SCHEMA_PRIVILEGES |

| SESSION_STATUS |

| SESSION_VARIABLES |

| STATISTICS |

| TABLES |

| TABLESPACES |

| TABLE_CONSTRAINTS |

| TABLE_PRIVILEGES |

| TRIGGERS |

| USER_PRIVILEGES |

| VIEWS |

| INNODB_CMP_RESET |

| INNODB_TRX |

| INNODB_CMPMEM_RESET |

| INNODB_LOCK_WAITS |

| INNODB_CMPMEM |

| INNODB_CMP |

| INNODB_LOCKS |

+---------------------------------------+

?

?



?

?

例如:

mysql> SELECT table_name, table_type, engine-> FROM information_schema.tables-> WHERE table_schema = 'db5'-> ORDER BY table_name DESC;
?table_name(表名)?table_type(表類型)?引擎
?v56? ?VIEW(視圖)?NULL
?v3

VIEW(視圖)

?NULL
?v2

VIEW(視圖)

?NULL
?v

VIEW(視圖)

?NULL
?tables ?BASE TABLE(基本表)?MyISAM
?t7?BASE TABLE(基本表)?MyISAM
?t3?BASE TABLE(基本表)?MyISAM
?t2?BASE TABLE(基本表)?MyISAM
?t?BASE TABLE(基本表)?MyISAM
?pk?BASE TABLE(基本表)?InnoDB
?loop ?BASE TABLE(基本表)?MyISAM
?kurs ?BASE TABLE(基本表)?MyISAM
?k?BASE TABLE(基本表)?MyISAM
?into ?BASE TABLE(基本表)?MyISAM
?goto ?BASE TABLE(基本表)?MyISAM
?fk2? ?BASE TABLE(基本表)?InnoDB
?fk?BASE TABLE(基本表)?InnoDB ?

解釋:該語(yǔ)句請(qǐng)求按逆向字母順序列出數(shù)據(jù)庫(kù)db5中的所有表,但僅顯示三種信息:表名,表類型,以及表引擎。集合中含17行(0.01秒)。

INFORMATION_SCHEMA是信息數(shù)據(jù)庫(kù),其中保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息。在INFORMATION_SCHEMA中,有數(shù)個(gè)只讀表。它們實(shí)際上是視圖,而不是基本表,因此,你將無(wú)法看到與之相關(guān)的任何文件。

每位MySQL用戶均有權(quán)訪問(wèn)這些表,但僅限于表中的特定行,在這類行中含有用戶具有恰當(dāng)訪問(wèn)權(quán)限的對(duì)象。

SELECT的優(yōu)點(diǎn):

SELECT ... FROM INFORMATION_SCHEMA語(yǔ)句的目的在于提供一種更為一致的方式,以訪問(wèn)MySQL所支持的各種SHOW語(yǔ)句(SHOW DATABASES、SHOW TABLES等等)提供的信息。與SHOW相比,使用SELECT有多項(xiàng)優(yōu)點(diǎn)“

? ? 符合Codd規(guī)則。也就是說(shuō),所有訪問(wèn)均是在表上進(jìn)行的。
? ? 不需要了解新語(yǔ)句的語(yǔ)法。由于他們已知道SELECT的工作方式,僅需了解對(duì)象名即可。? ? 實(shí)現(xiàn)人無(wú)需操心增加關(guān)鍵詞方面的事宜。? ? 有數(shù)百萬(wàn)種可能的輸出變化,而不是一種。這樣,就為對(duì)元數(shù)據(jù)有不同需求的應(yīng)用程序提供了更高的靈活性。? ? 由于其他DBMS也采用了這類方式,移植更為容易。

然而,由于SHOW在MySQL的雇員和用戶中十分流行,如果SHOW消失,可能會(huì)導(dǎo)致混亂,因此傳統(tǒng)的語(yǔ)法方式無(wú)法給出消除SHOW的足夠理由。事實(shí)上,在MySQL 5.1中,還對(duì)SHOW進(jìn)行了多項(xiàng)增強(qiáng)。

標(biāo)準(zhǔn):

在MySQL中,INFORMATION_SCHEMA表結(jié)構(gòu)的實(shí)施遵從“ANSI/ISO SQL:2003標(biāo)準(zhǔn),第11部分綱要。我們的目的在于,獲得與SQL:2003核心特性F021“基本信息方案”的近似兼容。

SQL服務(wù)器2000(也遵從該標(biāo)準(zhǔn))的用戶可能已注意到它們高度的相似性。但是,MySQL略去了與我們的實(shí)施方式不相關(guān)的眾多列,并添加了一些MySQL特有的列。其中一種列就是INFORMATION_SCHEMA.TABLES表中的引擎列。

盡管其他DBMS使用了不同的名稱,如syscat或系統(tǒng),但標(biāo)準(zhǔn)名稱是INFORMATION_SCHEMA。

事實(shí)上,盡管不需要生成名為INFORMATION_SCHEMA的文件,我們?nèi)蕴峁┝嗣麨镮NFORMATION_SCHEMA的新數(shù)據(jù)庫(kù)。可以使用USE語(yǔ)句將INFORMATION_SCHEMA選擇為默認(rèn)數(shù)據(jù)庫(kù),但訪問(wèn)該數(shù)據(jù)庫(kù)中所含表的唯一方式是使用SELECT語(yǔ)句。不能在其中插入內(nèi)容,不能更新它們,也不能刪除其中的內(nèi)容。

權(quán)限:

當(dāng)前權(quán)限(SHOW)要求和SELCET權(quán)限要求不存在差別。在任何一種情況下,要想查看關(guān)于它的信息,需要對(duì)某類對(duì)象擁有特定權(quán)限。

?

我們選擇INFORMATION_SCHEMA中的表和列。對(duì)于每一列,有三類信息:

? ? “標(biāo)準(zhǔn)名稱”:指明了列的標(biāo)準(zhǔn)SQL名稱。 ? ? “SHOW 名稱”:指明了最近SHOW語(yǔ)句中的等效字段名,如果有的話。
? ? “注釋”給出了適用的附加信息。

為了避免使用標(biāo)準(zhǔn)或DB2、SQL服務(wù)器或Oracle中保留的名稱,我們更改了標(biāo)注為“SQL擴(kuò)展”的列名。(例如,在TABLES表中,我們將COLLATION改為TABLE_COLLATION)。請(qǐng)參見(jiàn)本文末尾處給出的保留字列表。

字符列(例如TABLES.TABLE_NAME)定義通常是VARCHAR(N) CHARACTER SET utf8,其中,N至少為64。

在每一部分中,指明了等效于從INFORMATION_SCHEMA中檢索信息的SELECT語(yǔ)句的SHOW語(yǔ)句,或者不存在這類語(yǔ)句。

注釋:目前,有一些丟失的列和一些混亂的列。我們正在著手解決該問(wèn)題,并隨著變化情況更新文檔。

?

?


?

?

?

INFORMATION_SCHEMA SCHEMATA表

該方案是數(shù)據(jù)庫(kù),因此SCHEMATA表提供了關(guān)于數(shù)據(jù)庫(kù)的信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

CATALOG_NAME

-

NULL

SCHEMA_NAME

?

Database

DEFAULT_CHARACTER_SET_NAME

?

?

DEFAULT_COLLATION_NAME

?

?

SQL_PATH

?

NULL

注釋:SQL_PATH列的之總為NULL。

下述語(yǔ)句是等效的:

SELECT SCHEMA_NAME AS `DatabaseFROM INFORMATION_SCHEMA.SCHEMATA[WHERE SCHEMA_NAME LIKE 'wild']?SHOW DATABASES[LIKE 'wild']

?

INFORMATION_SCHEMA TABLES表

TABLES表給出了關(guān)于數(shù)據(jù)庫(kù)中的表的信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

Table_...

?

TABLE_NAME

Table_...

?

TABLE_TYPE

?

?

ENGINE

Engine

MySQL擴(kuò)展

VERSION

Version

MySQL擴(kuò)展

ROW_FORMAT

Row_format

MySQL擴(kuò)展

TABLE_ROWS

Rows

MySQL擴(kuò)展

AVG_ROW_LENGTH

Avg_row_length

MySQL擴(kuò)展

DATA_LENGTH

Data_length

MySQL擴(kuò)展

MAX_DATA_LENGTH

Max_data_length

MySQL擴(kuò)展

INDEX_LENGTH

Index_length

MySQL擴(kuò)展

DATA_FREE

Data_free

MySQL擴(kuò)展

AUTO_INCREMENT

Auto_increment

MySQL擴(kuò)展

CREATE_TIME

Create_time

MySQL擴(kuò)展

UPDATE_TIME

Update_time

MySQL擴(kuò)展

CHECK_TIME

Check_time

MySQL擴(kuò)展

TABLE_COLLATION

Collation

MySQL擴(kuò)展

CHECKSUM

Checksum

MySQL擴(kuò)展

CREATE_OPTIONS

Create_options

MySQL擴(kuò)展

TABLE_COMMENT

Comment

MySQL擴(kuò)展

注釋:

? ? TABLE_SCHEMA和TABLE_NAME是SHOW顯示中的單個(gè)字段,例如Table_in_db1。

? ? TABLE_TYPE(表類型)應(yīng)是BASE TABLE(基本表)或VIEW(視圖)。如果表是臨時(shí)性的,TABLE_TYPE?=?TEMPORARY。(沒(méi)有臨時(shí)視圖,因此,因此不存在歧義)。

? ? 如果表位于INFORMATION_SCHEMA數(shù)據(jù)庫(kù)中,TABLE_ROWS列為NULL。對(duì)于InnoDB表,在SQL優(yōu)化中,行計(jì)數(shù)僅是大概估計(jì)值。

? ? 沒(méi)有關(guān)于表默認(rèn)字符集的任何信息。TABLE_COLLATION處于關(guān)閉狀態(tài),原因在于校對(duì)名稱以字符集名稱開(kāi)頭。

下述語(yǔ)句是等效的:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES? [WHERE table_schema = 'db_name']? [WHERE|AND table_name LIKE 'wild']SHOW TABLES? [FROM db_name]? [LIKE 'wild']

?

INFORMATION_SCHEMA COLUMNS表

COLUMNS表給出了表中的列信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

Field

?

ORDINAL_POSITION

?

參見(jiàn)注釋

COLUMN_DEFAULT

Default

?

IS_NULLABLE

Null

?

DATA_TYPE

Type

?

CHARACTER_MAXIMUM_LENGTH

Type

?

CHARACTER_OCTET_LENGTH

?

?

NUMERIC_PRECISION

Type

?

NUMERIC_SCALE

Type

?

CHARACTER_SET_NAME

?

?

COLLATION_NAME

Collation

?

COLUMN_TYPE

Type

MySQL擴(kuò)展

COLUMN_KEY

Key

MySQL擴(kuò)展

EXTRA

Extra

MySQL擴(kuò)展

COLUMN_COMMENT

Comment

MySQL擴(kuò)展

注釋:

? ? 在SHOW中,類型顯示包括來(lái)自數(shù)個(gè)不同COLUMNS列的值。

? ? ORDINAL_POSITION有必要,這是因?yàn)?#xff0c;你可能會(huì)在某一天需要ORDER BY ORDINAL_POSITION(按ORDINAL_POSITION排序)。不同于SHOW,SELECT沒(méi)有自動(dòng)排序功能。

? ? CHARACTER_OCTET_LENGTH應(yīng)與CHARACTER_MAXIMUM_LENGTH相同,但多字節(jié)字符集除外。

? ? CHARACTER_SET_NAME可由Collation(校對(duì))導(dǎo)出。例如,如果給出了“SHOW FULL COLUMNS FROM t”,在Collation(校對(duì))列中將見(jiàn)到latin1_swedish_ci的值,字符集由第1個(gè)下劃線前的名稱指明。latin1.

下述語(yǔ)句是等效的:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT? FROM INFORMATION_SCHEMA.COLUMNS? WHERE table_name = 'tbl_name' ?[AND table_schema = 'db_name'] ?[AND column_name LIKE 'wild']SHOW COLUMNS ?FROM tbl_name? [FROM db_name]? [LIKE wild]

?

INFORMATION_SCHEMA STATISTICS表

STATISTICS表給出了關(guān)于表索引的信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

=數(shù)據(jù)庫(kù)

TABLE_NAME

Table

?

NON_UNIQUE

Non_unique

?

INDEX_SCHEMA

?

=數(shù)據(jù)庫(kù)

INDEX_NAME

Key_name

?

SEQ_IN_INDEX

Seq_in_index

?

COLUMN_NAME

Column_name

?

COLLATION

Collation

?

CARDINALITY

Cardinality

?

SUB_PART

Sub_part

MySQL擴(kuò)展

PACKED

Packed

MySQL擴(kuò)展

NULLABLE

Null

MySQL擴(kuò)展

INDEX_TYPE

Index_type

MySQL擴(kuò)展

COMMENT

Comment

MySQL擴(kuò)展

注釋:

? ? 沒(méi)有關(guān)于這些索引的標(biāo)準(zhǔn)表。上面的列表與SQL服務(wù)器2000中sp_statistics返回的值類似。不同之處在于用CATALOG替換了QUALIFIER,并用SCHEMA替換了OWNER。

顯而易見(jiàn),前述表和SHOW INDEX的輸出均是由相同的父對(duì)象導(dǎo)出的。因此,相關(guān)性已關(guān)閉。

下述語(yǔ)句是等效的:

SELECT * FROM INFORMATION_SCHEMA.STATISTICS? WHERE table_name = 'tbl_name' ?[AND table_schema = 'db_name']SHOW INDEX ?FROM tbl_name? [FROM db_name]

?

INFORMATION_SCHEMA USER_PRIVILEGES表

USER_PRIVILEGES(用戶權(quán)限)表給出了關(guān)于全程權(quán)限的信息。該信息源自mysql.user授權(quán)表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

? ? 這是一個(gè)非標(biāo)準(zhǔn)表。其值來(lái)自mysql.user表。

?

INFORMATION_SCHEMA SCHEMA_PRIVILEGES表

SCHEMA_PRIVILEGES(方案權(quán)限)表給出了關(guān)于方案(數(shù)據(jù)庫(kù))權(quán)限的信息。該信息來(lái)自mysql.db授權(quán)表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

? ? 這是一個(gè)非標(biāo)準(zhǔn)表。其值來(lái)自mysql.db表。

?

INFORMATION_SCHEMA TABLE_PRIVILEGES表

TABLE_PRIVILEGES(表權(quán)限)表給出了關(guān)于表權(quán)限的信息。該信息源自mysql.tables_priv授權(quán)表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

下述語(yǔ)句不等效:

SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGESSHOW GRANTS ...

PRIVILEGE_TYPE可以包含這些值之一(僅能一個(gè)):SELECT、INSERT、UPDATE、REFERENCES、ALTER、INDEX、DROP、CREATE VIEW。

?

INFORMATION_SCHEMA COLUMN_PRIVILEGES表

COLUMN_PRIVILEGES(列權(quán)限)表給出了關(guān)于列權(quán)限的信息。該信息源自mysql.columns_priv授權(quán)表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

? ? 在SHOW FULL COLUMNS(顯示完整列)的輸出中,權(quán)限值位于一個(gè)字段并采用小寫形式,例如select、insert、update、references。在COLUMN_PRIVILEGES中,每種權(quán)限占一行,并為大寫形式。

? ? PRIVILEGE_TYPE可以包含這些值之一(僅能一個(gè)):SELECT,?INSERT,?UPDATE,?REFERENCES.

? ? 如果用戶有GRANT OPTION權(quán)限,那么IS_GRANTABLE應(yīng)為YES。否則,IS_GRANTABLE應(yīng)為NO。在輸出中,不會(huì)將GRANT OPTION作為單獨(dú)權(quán)限列出。

下述語(yǔ)句不等效:

SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGESSHOW GRANTS ...

?

INFORMATION_SCHEMA CHARACTER_SETS表

CHARACTER_SETS(字符集)表提供了關(guān)于可用字符集的信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

CHARACTER_SET_NAME

Charset

?

DEFAULT_COLLATE_NAME

Default collation

?

DESCRIPION

Description

MySQL擴(kuò)展

MAXLEN

Maxlen

MySQL擴(kuò)展

注釋:

? ? 我們?cè)黾恿藘蓚€(gè)非標(biāo)準(zhǔn)列,分別對(duì)應(yīng)于SHOW CHARACTER SET輸出的Description(描述)和Maxlen(最大長(zhǎng)度)列。

下述語(yǔ)句是等效的:

SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS? [WHERE name LIKE 'wild']SHOW CHARACTER SET? [LIKE 'wild']

?

INFORMATION_SCHEMA COLLATIONS表

COLLATIONS表提供了關(guān)于各字符集的對(duì)照信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

COLLATION_NAME

Collation

?

注釋:

? ? 我們?cè)黾恿?個(gè)非標(biāo)準(zhǔn)列,分別對(duì)應(yīng)于SHOW COLLATION輸出的Charset、Id、Default、Compiled和Sortlen列。

下述語(yǔ)句是等效的:

SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS? [WHERE collation_name LIKE 'wild']SHOW COLLATION? [LIKE 'wild']

?

INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表

COLLATION_CHARACTER_SET_APPLICABILITY表指明了可用于校對(duì)的字符集。這些列等效于SHOW COLLATION的前兩個(gè)顯示字段。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

COLLATION_NAME

Collation

?

CHARACTER_SET_NAME

Charset

?

?

INFORMATION_SCHEMA TABLE_CONSTRAINTS表

TABLE_CONSTRAINTS表描述了存在約束的表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

CONSTRAINT_CATALOG

?

NULL

CONSTRAINT_SCHEMA

?

?

CONSTRAINT_NAME

?

?

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

CONSTRAINT_TYPE

?

?

注釋:

? ? CONSTRAINT_TYPE的值可以是UNIQUE(唯一)、PRIMARY KEY(主鍵)或FOREIGN KEY(外鍵)。

? ? 當(dāng)Non_unique字段為0時(shí),UNIQUE和PRIMARY KEY信息與SHOW INDEX輸出的Key_name字段中給出的信息基本相同。

? ? CONSTRAINT_TYPE列可包含下述值之一:UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK。這是一個(gè)CHAR(非ENUM)列。在我們支持CHECK前,CHECK值不可用。

?

INFORMATION_SCHEMA KEY_COLUMN_USAGE表

KEY_COLUMN_USAGE表描述了具有約束的鍵列。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

CONSTRAINT_CATALOG

?

NULL

CONSTRAINT_SCHEMA

?

?

CONSTRAINT_NAME

?

?

TABLE_CATALOG

?

?

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

?

?

ORDINAL_POSITION

?

?

POSITION_IN_UNIQUE_CONSTRAINT

?

?

REFERENCED_TABLE_SCHEMA

?

?

REFERENCED_TABLE_NAME

?

?

REFERENCED_COLUMN_NAME

?

?

注釋:

? ? 如果約束為外鍵,這就是外鍵列,而不是外鍵引用的列。

? ? ORDINAL_POSITION的值是列在約束中的位置,而不是列在表中的位置。列位置采用從1開(kāi)始的數(shù)值編號(hào)。

? ? 對(duì)于“唯一”和“主鍵”約束,POSITION_IN_UNIQUE_CONSTRAINT的值為NULL。對(duì)于“外鍵”約束,它是所引用表內(nèi)鍵中的順序位置。

例如,假定有兩個(gè)具有下述定義的表t1和t3:

CREATE TABLE t1( s1 INT, s2 INT, s3 INT, PRIMARY KEY(s3)) ENGINE=InnoDB;CREATE TABLE t3( s1 INT, s2 INT, s3 INT, KEY(s1), CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)) ENGINE=InnoDB;

對(duì)于這兩個(gè)表,KEY_COLUMN_USAGE表有兩行:

? ? 一行含有CONSTRAINT_NAME='PRIMARY',?TABLE_NAME='t1',?COLUMN_NAME='s3',ORDINAL_POSITION=1,?POSITION_IN_UNIQUE_CONSTRAINT=NULL。

? ? 另一行含有CONSTRAINT_NAME='CO',?TABLE_NAME='t3',?COLUMN_NAME='s2',ORDINAL_POSITION=1,?POSITION_IN_UNIQUE_CONSTRAINT=1。

?

INFORMATION_SCHEMA ROUTINES表

ROUTINES表提供了關(guān)于存儲(chǔ)子程序(存儲(chǔ)程序和函數(shù))的信息。此時(shí),ROUTINES表不包含自定義函數(shù)(UDF)。

名為“mysql.proc?name”的列指明了對(duì)應(yīng)于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,如果有的話。

標(biāo)準(zhǔn)名稱

mysql.proc

注釋

SPECIFIC_NAME

specific_name

?

ROUTINE_CATALOG

?

NULL

ROUTINE_SCHEMA

db

?

ROUTINE_NAME

name

?

ROUTINE_TYPE

type

{PROCEDURE|FUNCTION}

DTD_IDENTIFIER

?

(數(shù)據(jù)類型描述符)

ROUTINE_BODY

?

SQL

ROUTINE_DEFINITION

body

?

EXTERNAL_NAME

?

NULL

EXTERNAL_LANGUAGE

language

NULL

PARAMETER_STYLE

?

SQL

IS_DETERMINISTIC

is_deterministic

?

SQL_DATA_ACCESS

sql_data_access

?

SQL_PATH

?

NULL

SECURITY_TYPE

security_type

?

CREATED

created

?

LAST_ALTERED

modified

?

SQL_MODE

sql_mode

MySQL擴(kuò)展

ROUTINE_COMMENT

comment

MySQL擴(kuò)展

DEFINER

definer

MySQL擴(kuò)展

注釋:

? ? MySQL計(jì)算EXTERNAL_LANGUAGE,因此:

? ? 如果mysql.proc.language='SQL',那么EXTERNAL_LANGUAGE為NULL。

? ? 否則,EXTERNAL_LANGUAGE為mysql.proc.language中的值。然而,由于尚沒(méi)有外部語(yǔ)言,因此該值總為NULL。

?

INFORMATION_SCHEMA VIEWS表

VIEWS表給出了關(guān)于數(shù)據(jù)庫(kù)中的視圖的信息。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

VIEW_DEFINITION

?

?

CHECK_OPTION

?

?

IS_UPDATABLE

?

?

DEFINER

?

?

SECURITY_TYPE

?

?

注釋:

? ? 有一種新的權(quán)限SHOW VIEW,如果沒(méi)有它,將無(wú)法看到VIEWS表。

? ? VIEW_DEFINITION列含有你在SHOW CREATE VIEW所生成的Create Table字段中見(jiàn)到的大多數(shù)信息。跳過(guò)SELECT前的單詞,并跳過(guò)具有CHECK OPTION(檢查選項(xiàng))的單詞。例如,如果初始語(yǔ)句是:

CREATE VIEW v AS SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION;

那么視圖定義為:

SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1

? ? CHECK_OPTION列的值總為NONE。

? ? 如果視圖是可更新的,IS_UPDATABLE列的值為YES,如果視圖是不可更新的,IS_UPDATABLE列的值為NO。

? ? DEFINER列指明了定義視圖的人。SECURITY_TYPE的值為DEFINER或INVOKER。

?

INFORMATION_SCHEMA TRIGGERS表

TRIGGERS表提供了關(guān)于觸發(fā)程序的信息。

必須有SUPER權(quán)限才能查看該表。

標(biāo)準(zhǔn)名稱

SHOW名稱

注釋

TRIGGER_CATALOG

?

NULL

TRIGGER_SCHEMA

?

?

TRIGGER_NAME

Trigger

?

EVENT_MANIPULATION

Event

?

EVENT_OBJECT_CATALOG

?

NULL

EVENT_OBJECT_SCHEMA

?

?

EVENT_OBJECT_TABLE

Table

?

ACTION_ORDER

?

0

ACTION_CONDITION

?

NULL

ACTION_STATEMENT

Statement

?

ACTION_ORIENTATION

?

ROW

ACTION_TIMING

Timing

?

ACTION_REFERENCE_OLD_TABLE

?

NULL

ACTION_REFERENCE_NEW_TABLE

?

NULL

ACTION_REFERENCE_OLD_ROW

?

OLD

ACTION_REFERENCE_NEW_ROW

?

NEW

CREATED

?

NULL?(0)

SQL_MODE

?

?

注釋:

? ? TRIGGER_SCHEMA和TRIGGER_NAME列中分別含有相應(yīng)數(shù)據(jù)庫(kù)的名稱以及觸發(fā)程序的名稱,在該數(shù)據(jù)庫(kù)中,含有該觸發(fā)程序。

? ? EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。

? ? 每個(gè)觸發(fā)程序均與一個(gè)表準(zhǔn)確相關(guān)。EVENT_OBJECT_SCHEMA和EVENT_OBJECT_TABLE列包含相應(yīng)的數(shù)據(jù)庫(kù)和表名,在該數(shù)據(jù)庫(kù)中,含有該表。

? ? ACTION_ORDER語(yǔ)句含有觸發(fā)程序動(dòng)作(在相同表上所有類似觸發(fā)程序列表中)的順序位置。目前該值總為0,這是因?yàn)樵谙嗤砩暇哂邢嗤珽VENT_MANIPULATION和ACTION_TIMING的觸發(fā)程序不能超過(guò)1個(gè)。

? ? ACTION_STATEMENT列含有激活了觸發(fā)程序時(shí)將要執(zhí)行的語(yǔ)句。這與SHOW TRIGGERS輸出的Statement(語(yǔ)句)列中顯示的文本相同。注意,該文本采用了UTF-8編碼方式。

? ? ACTION_ORIENTATION列總含有值“ROW”。

? ? ACTION_TIMING列含有下述兩種值之一:“BEFORE”或“AFTER”。

? ? 列ACTION_REFERENCE_OLD_ROW和ACTION_REFERENCE_NEW_ROW分別含有舊的和新的列標(biāo)識(shí)符。這意味著ACTION_REFERENCE_OLD_ROW總含有值“OLD”,ACTION_REFERENCE_NEW_ROW總含有值“NEW”。

? ? SQL_MODE列顯示了創(chuàng)建觸發(fā)程序時(shí)有效的服務(wù)器SQL模式(無(wú)論當(dāng)前的服務(wù)器SQL模式為何,只要激活了觸發(fā)程序,它將保持有效)。該列的可能取值范圍與sql_mode系統(tǒng)變量的取值范圍相同。請(qǐng)參見(jiàn)5.3.2節(jié),“SQL服務(wù)器模式”

? ? 在下述列中,目前總含有NULL:TRIGGER_CATALOG,EVENT_OBJECT_CATALOG,ACTION_CONDITION,ACTION_REFERENCE_OLD_TABLE,ACTION_REFERENCE_NEW_TABLE和CREATED。

例如,使用觸發(fā)器中定義的觸發(fā)程序ins_sum。

mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS/G*************************** 1. row *************************** TRIGGER_CATALOG: NULL TRIGGER_SCHEMA: test TRIGGER_NAME: ins_sum? EVENT_MANIPULATION: INSERT EVENT_OBJECT_CATALOG: NULL EVENT_OBJECT_SCHEMA: test? EVENT_OBJECT_TABLE: account ACTION_ORDER: 0 ACTION_CONDITION: NULL ACTION_STATEMENT:? SET @sum = @sum + NEW.amount? ACTION_ORIENTATION: ROW ACTION_TIMING: BEFORE ACTION_REFERENCE_OLD_TABLE: NULL ACTION_REFERENCE_NEW_TABLE: NULL? ACTION_REFERENCE_OLD_ROW: OLD? ACTION_REFERENCE_NEW_ROW: NEW CREATED: NULL1 row in set (1.54 sec)

?

其他INFORMATION_SCHEMA表

? ??我們打算實(shí)施附加的INFORMATION_SCHEMA表。尤其是,我們確認(rèn)了對(duì)INFORMATION_SCHEMA.PARAMETERS和INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS的需求。 ? ?

? ?

?

SHOW語(yǔ)句的擴(kuò)展

某些SHOW語(yǔ)句的擴(kuò)展伴隨著INFORMATION_SCHEMA的實(shí)施:

? ? SHOW可用于獲取關(guān)于INFORMATION_SCHEMA本身結(jié)構(gòu)的信息。

? ? 一些SHOW語(yǔ)句允許使用WHERE子句,這樣,在指定需要顯示的行時(shí),可更為靈活。

INFORMATION_SCHEMA是一種信息數(shù)據(jù)庫(kù),因此,在SHOW DATABASES的輸出中,包含其名稱。與此類似,SHOW TABLES可與INFORMATION_SCHEMA一起使用,以獲取表清單。

mysql> SHOW TABLES FROM INFORMATION_SCHEMA;+---------------------------------------+| Tables_in_information_schema|+---------------------------------------+| SCHEMATA|| TABLES|| COLUMNS || CHARACTER_SETS || COLLATIONS? || COLLATION_CHARACTER_SET_APPLICABILITY || ROUTINES|| STATISTICS? || VIEWS || TRIGGERS|| USER_PRIVILEGES|| SCHEMA_PRIVILEGES? || TABLE_PRIVILEGES|| COLUMN_PRIVILEGES? || TABLE_CONSTRAINTS? || KEY_COLUMN_USAGE|+---------------------------------------+

SHOW COLUMNS和DESCRIBE能夠顯示單獨(dú)INFORMATION_SCHEMA表中的列信息。

擴(kuò)展了一些SHOW語(yǔ)句,允許使用WHERE子句:

SHOW CHARACTER SETSHOW COLLATIONSHOW COLUMNSSHOW DATABASESSHOW FUNCTION STATUSSHOW KEYSSHOW OPEN TABLESSHOW PROCEDURE STATUSSHOW STATUSSHOW TABLE STATUSSHOW TABLESSHOW VARIABLES

如果有WHERE子句的話,將根據(jù)SHOW語(yǔ)句顯示的列名進(jìn)行計(jì)算。例如,SHOW COLLATION語(yǔ)句可產(chǎn)生這些輸出列:

例如,SHOW CHARACTER SET語(yǔ)句可產(chǎn)生這些輸出列:

mysql> SHOW CHARACTER SET;
Charset描述默認(rèn)校對(duì)最大長(zhǎng)度
?big5 ?Big5 Traditional Chinese?big5_chinese_ci 2
?dec8 ?DEC West European ?dec8_swedish_ci 1
?cp850?DOS West European ?cp850_general_ci1
?hp8?HP West European?hp8_english_ci1
?koi8r?KOI8-R Relcom Russian ?koi8r_general_ci1
?latin1?cp1252 West European? ?latin1_swedish_ci1
?latin2?ISO 8859-2 Central European ?latin2_general_ci1
?

要想與SHOW CHARACTER SET一起使用WHERE子句,應(yīng)引用這些列名稱。例如,在下面的語(yǔ)句中,給出了用于默認(rèn)校對(duì)且含有字符串“japanese”的字符集的信息:

mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';
?Charset ?描述??默認(rèn)校對(duì)最大長(zhǎng)度
?ujis?EUC-JP Japanese ?ujis_japanese_ci3
?sjis?Shift-JIS Japanese? ?sjis_japanese_ci2
?cp932?SJIS for Windows Japanese ?cp932_japanese_ci2
?eucjpms ?UJIS for Windows Japanese ?eucjpms_japanese_ci 3

該語(yǔ)句顯示了多字節(jié)字符集。

mysql> SHOW CHARACTER SET WHERE Maxlen > 1;
?Charset ?描述? 默認(rèn)校對(duì)最大長(zhǎng)度
?big5?Big5 Traditional Chinese? ?big5_chinese_ci 2
?ujis?EUC-JP Japanese?ujis_japanese_ci3
?sjis?Shift-JIS Japanese? ?sjis_japanese_ci2
?euckr?EUC-KR Korean ?euckr_korean_ci 2
?gb2312? ?GB2312 Simplified Chinese ?gb2312_chinese_ci2
?gbk ?GBK Simplified Chinese?gbk_chinese_ci2
?utf8?UTF-8 Unicode ?utf8_general_ci 3
?ucs2?UCS-2 Unicode ?ucs2_general_ci 2
?cp932?SJIS for Windows Japanese ?cp932_japanese_ci2
?eucjpms ?UJIS for Windows Japanese ?eucjpms_japanese_ci 3
??

?

?

?

?

?

?

來(lái)自為知筆記(Wiz)



轉(zhuǎn)載于:https://www.cnblogs.com/magina/p/4974209.html

總結(jié)

以上是生活随笔為你收集整理的Information_Schema系统表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。