欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql生成數(shù)據(jù)字典的原理與實例

 更新時間:2022年03月24日 09:40:37   作者:WvemiC9  
數(shù)據(jù)字典是一名DBA需要維護的重要內(nèi)容,有人喜歡用excel來維護,本人更喜歡直接在數(shù)據(jù)庫上進行維護,下面這篇文章主要給大家介紹了關(guān)于Mysql生成數(shù)據(jù)字典的原理與實例,以及導(dǎo)出MySQL的數(shù)據(jù)字典的方法,需要的朋友可以參考下

生成原理

在MySQL中,有個自帶的數(shù)據(jù)庫,名為information_schema。其中保存著關(guān)于MySQL服務(wù)器所維護的所有其他數(shù)據(jù)庫的信息。如數(shù)據(jù)庫名,數(shù)據(jù)庫的表,表欄的數(shù)據(jù)類型與訪問權(quán) 限等。我們通過查詢這個數(shù)據(jù)庫的COLUMNS表(此表提供了其他所有表中的列信息)信息,來獲取我們需要的表結(jié)構(gòu)信息,從而將其導(dǎo)出為數(shù)據(jù)字典。

生成實例

navicat 執(zhí)行以下SQL的查詢(如果需要其他字段,請參考下面COLUMNS表字段拓展):

SELECT
    COLUMN_NAME AS '字段名',
    COLUMN_TYPE AS '字段類型',
    ( CASE WHEN IS_NULLABLE = 'YES' THEN '是' ELSE '否' END ) AS '是否可空',
    ( CASE WHEN COLUMN_KEY = 'PRI' THEN '是' ELSE '否' END ) AS '是否主鍵',
        COLUMN_DEFAULT AS '默認值',
    COLUMN_COMMENT AS '注釋'
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_SCHEMA = '數(shù)據(jù)庫'
    AND TABLE_NAME = '表';

通過navicat工具進行導(dǎo)出(如下圖的按鈕,之后自行選擇要導(dǎo)出的內(nèi)容);

COLUMNS表字段拓展:

列名描述
COLUMN_NAME字段名
COLUMN_TYPE字段類型
TABLE_CATALOG表限定符。
IS_NULLABLE列的為空性。如果列允許 NULL,那么該列返回 YES。否則,返回 NO。
COLUMN_KEY字段主鍵
COLUMN_DEFAULT默認值
COLUMN_COMMENT注釋
ORDINAL_POSITION字段在表的順序(從1開始)
TABLE_NAME數(shù)據(jù)表名
TABLE_SCHEMA數(shù)據(jù)庫名
DATA_TYPE數(shù)據(jù)類型
DATETIME_PRECISIONdatetime 及 SQL-92 interval 數(shù)據(jù)類型的子類型代碼。對于其它數(shù)據(jù)類型,返回 NULL。
EXTRA額外信息
GENERATION_EXPRESSION 
NUMERIC_PRECISION近似數(shù)字數(shù)據(jù)、精確數(shù)字數(shù)據(jù)、整型數(shù)據(jù)或貨幣數(shù)據(jù)的精度。否則,返回 NULL。
NUMERIC_SCALE近似數(shù)字數(shù)據(jù)、精確數(shù)字數(shù)據(jù)、整數(shù)數(shù)據(jù)或貨幣數(shù)據(jù)的小數(shù)位數(shù)。否則,返回 NULL。
PRIVILEGES 
CHARACTER_MAXIMUM_LENGTH以字符為單位的最大長度,適于二進制數(shù)據(jù)、字符數(shù)據(jù),或者文本和圖像數(shù)據(jù)。否則,返回NULL。
CHARACTER_OCTET_LENGTH以字節(jié)為單位的最大長度,適于二進制數(shù)據(jù)、字符數(shù)據(jù),或者文本和圖像數(shù)據(jù)。否則,返回 NULL。
CHARACTER_SET_NAME如果該列是字符數(shù)據(jù)或 text數(shù)據(jù)類型,那么為字符集返回唯一的名稱。否則,返回 NULL。
COLLATION_NAME排序規(guī)則,如果列是字符數(shù)據(jù)或 text數(shù)據(jù)類型,那么為排序次序返回唯一的名稱。否則,返回 NULL。

附:1分鐘導(dǎo)出MySQL的數(shù)據(jù)字典

利用mysql的information_schema中的COLUMNS表和navicat中的導(dǎo)出功能實現(xiàn)快速導(dǎo)出數(shù)據(jù)字典,來看一下該表的表結(jié)構(gòu)

CREATE TEMPORARY TABLE `COLUMNS` (
  `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT'',
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT'',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `COLUMN_NAME` varchar(64) NOT NULL DEFAULT'',
  `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `COLUMN_DEFAULT` longtext,
  `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
  `CHARACTER_MAXIMUM_LENGTH` bigint(21)unsigned DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_SCALE` bigint(21) unsigned DEFAULTNULL,
  `DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
  `COLLATION_NAME` varchar(32) DEFAULT NULL,
  `COLUMN_TYPE` longtext NOT NULL,
  `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
  `EXTRA` varchar(30) NOT NULL DEFAULT '',
  `PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
  `COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

例如我需要導(dǎo)出guifan庫和test庫的數(shù)據(jù)字典信息:

select TABLE_SCHEMA,TABLE_NAME,COLUMN_TYPE,COLUMN_COMMENT frominformation_schema.columns where TABLE_SCHEMA='guifan' or  TABLE_SCHEMA='test'

在查詢結(jié)果頁面的右上角,有一個導(dǎo)出功能的按鈕,點一下可以選擇多種導(dǎo)出的格式,如下圖所示

按提示操作導(dǎo)出

OK,這就是我想要的數(shù)據(jù)字典

總結(jié) 

到此這篇關(guān)于Mysql生成數(shù)據(jù)字典的原理與實例的文章就介紹到這了,更多相關(guān)Mysql生成數(shù)據(jù)字典內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 幾個比較重要的MySQL變量

    幾個比較重要的MySQL變量

    這篇文章主要介紹了幾個比較重要的MySQL變量,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • MySQL 常用命令

    MySQL 常用命令

    MySQL 常用命令...
    2006-12-12
  • SQL匯總統(tǒng)計與GROUP BY過濾查詢實現(xiàn)

    SQL匯總統(tǒng)計與GROUP BY過濾查詢實現(xiàn)

    這篇文章主要介紹了SQL匯總統(tǒng)計與GROUP BY過濾查詢實現(xiàn),GROUP BY 實質(zhì)是先排序后分組,遵照索引建的最佳左前綴。當無法使用索引時,增大max_length_for_sort_data和sort_buffer參數(shù)的值
    2023-01-01
  • 通過實例認識MySQL中前綴索引的用法

    通過實例認識MySQL中前綴索引的用法

    這篇文章主要通過實例來介紹MySQL中的前綴索引,包括前綴在實際使用中需要考慮到的長度問題等,需要的朋友可以參考下
    2015-05-05
  • Mysql中禁用與啟動觸發(fā)器教程【推薦】

    Mysql中禁用與啟動觸發(fā)器教程【推薦】

    在使用MYSQL過程中,經(jīng)常會使用到觸發(fā)器,但是有時使用不當會造成一些麻煩。下面小編給大家?guī)砹薓ysql中禁用與啟動觸發(fā)器教程,感興趣的朋友一起看看吧
    2018-08-08
  • mysql?數(shù)據(jù)備份與恢復(fù)使用詳解(超完整詳細教程)

    mysql?數(shù)據(jù)備份與恢復(fù)使用詳解(超完整詳細教程)

    這篇文章主要介紹了mysql?數(shù)據(jù)備份與恢復(fù)使用詳解,根據(jù)實際的業(yè)務(wù)需求,經(jīng)驗參考可以據(jù)數(shù)據(jù)規(guī)模大小,服務(wù)器磁盤容量,大致是分為全備和增備,差異備份,本文給大家詳細講解需要的朋友可以參考下
    2022-11-11
  • 創(chuàng)建mysql表分區(qū)的方法

    創(chuàng)建mysql表分區(qū)的方法

    我來給大家介紹一下mysql表分區(qū)創(chuàng)建與使用吧,希望對各位同學(xué)會有所幫助。表分區(qū)的測試使用,主要內(nèi)容來自于其他博客文章以及mysql5.1的參考手冊。
    2013-10-10
  • MYSQL的主從復(fù)制知識點整理

    MYSQL的主從復(fù)制知識點整理

    在本篇文章里小編給大家整理的是一篇關(guān)于MYSQL主從復(fù)制的相關(guān)知識點內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。
    2019-11-11
  • PHP MYSQL注入攻擊需要預(yù)防7個要點

    PHP MYSQL注入攻擊需要預(yù)防7個要點

    這篇文章主要介紹了PHP MYSQL開發(fā)中,對于注入攻擊需要預(yù)防的7個要點,大家需要注意了
    2013-11-11
  • MySQL8.0.24版本Release Note的一些改進點

    MySQL8.0.24版本Release Note的一些改進點

    這篇文章主要介紹了MySQL8.0.24版本Release Note的一些改進點,幫助大家更好的對新版本的MySQL進行測試使用,感興趣的朋友可以了解下
    2021-04-04

最新評論