36.笔记 MySQL学习——借助INFORMATION_SCHEMA获取元数据
2017-11-16 20:49
661 查看
36.笔记 MySQL学习——借助INFORMATION_SCHEMA获取元数据
通过SELECT语句可以访问INFORMATION_SCHEMA库。SHOW语句的输出里,列的个数是固定的,无法把输出内容捕获到表里去。
利用INFORMATION_SCHEMA可以选取特定的输出列。
INFORMATION_SCHEMA可以理解成一个虚拟的库,表是各种不同数据库元数据的视图。
查看如下:
mysql> show tables in information_schema;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| OPTIMIZER_TRACE |
| 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_LOCKS |
| INNODB_TRX |
| INNODB_SYS_DATAFILES |
| INNODB_FT_CONFIG |
| INNODB_SYS_VIRTUAL |
| INNODB_CMP |
| INNODB_FT_BEING_DELETED |
| INNODB_CMP_RESET |
| INNODB_CMP_PER_INDEX |
| INNODB_CMPMEM_RESET |
| INNODB_FT_DELETED |
| INNODB_BUFFER_PAGE_LRU |
| INNODB_LOCK_WAITS |
| INNODB_TEMP_TABLE_INFO |
| INNODB_SYS_INDEXES |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_CMP_PER_INDEX_RESET |
| INNODB_BUFFER_PAGE |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_TABLE |
| INNODB_FT_INDEX_CACHE |
| INNODB_SYS_TABLESPACES |
| INNODB_METRICS |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMPMEM |
| INNODB_BUFFER_POOL_STATS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_TABLESTATS |
+---------------------------------------+
61 rows in set (0.00 sec)
查看表里包含哪些列,如下:
mysql> desc information_schema.character_sets;
+----------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+-------+
| CHARACTER_SET_NAME | varchar(32) | NO | | | |
| DEFAULT_COLLATE_NAME | varchar(32) |NO | | | |
| DESCRIPTION | varchar(60) | NO | | | |
| MAXLEN | bigint(3) | NO | | 0 | |
+----------------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> select count(*) frominformation_schema.tables where table_schema = 'sampdb' and table_name ='member';
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
查看表使用的存储引擎是哪一种
mysql> select engine frominformation_schema.tables where table_schema = 'sampdb' and table_name ='student';
+--------+
| engine |
+--------+
| InnoDB |
+--------+
1 row in set (0.00 sec)
通过SELECT语句可以访问INFORMATION_SCHEMA库。SHOW语句的输出里,列的个数是固定的,无法把输出内容捕获到表里去。
利用INFORMATION_SCHEMA可以选取特定的输出列。
INFORMATION_SCHEMA可以理解成一个虚拟的库,表是各种不同数据库元数据的视图。
查看如下:
mysql> show tables in information_schema;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| OPTIMIZER_TRACE |
| 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_LOCKS |
| INNODB_TRX |
| INNODB_SYS_DATAFILES |
| INNODB_FT_CONFIG |
| INNODB_SYS_VIRTUAL |
| INNODB_CMP |
| INNODB_FT_BEING_DELETED |
| INNODB_CMP_RESET |
| INNODB_CMP_PER_INDEX |
| INNODB_CMPMEM_RESET |
| INNODB_FT_DELETED |
| INNODB_BUFFER_PAGE_LRU |
| INNODB_LOCK_WAITS |
| INNODB_TEMP_TABLE_INFO |
| INNODB_SYS_INDEXES |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_CMP_PER_INDEX_RESET |
| INNODB_BUFFER_PAGE |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_TABLE |
| INNODB_FT_INDEX_CACHE |
| INNODB_SYS_TABLESPACES |
| INNODB_METRICS |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMPMEM |
| INNODB_BUFFER_POOL_STATS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_TABLESTATS |
+---------------------------------------+
61 rows in set (0.00 sec)
查看表里包含哪些列,如下:
mysql> desc information_schema.character_sets;
+----------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+-------+
| CHARACTER_SET_NAME | varchar(32) | NO | | | |
| DEFAULT_COLLATE_NAME | varchar(32) |NO | | | |
| DESCRIPTION | varchar(60) | NO | | | |
| MAXLEN | bigint(3) | NO | | 0 | |
+----------------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> select count(*) frominformation_schema.tables where table_schema = 'sampdb' and table_name ='member';
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
查看表使用的存储引擎是哪一种
mysql> select engine frominformation_schema.tables where table_schema = 'sampdb' and table_name ='student';
+--------+
| engine |
+--------+
| InnoDB |
+--------+
1 row in set (0.00 sec)
相关文章推荐
- 37.笔记 MySQL学习——命令行获取元数据
- 【学习笔记】mysql schema设计中的陷阱
- 35.笔记 MySQL学习——通过SHOW获取数据库元数据
- MySQL使用information_schema获取锁表信息
- mysql中元数据库information_schema学习之TABLES表
- MySQL学习系列之关于information_schema(一)
- MySQL学习笔记——获取MySQL命令的帮助信息
- MySQL学习笔记--Schema与数据类型优化
- OpenLayers学习笔记8——使用servlet从mysql获取数据并标注
- Python - mysql中导入CSV数据 【学习笔记】
- mysql学习笔记之基础篇
- 关于mysql的sql语句的汇总(学习笔记)01
- MySQL 学习笔记
- Mysql学习笔记(二)
- mysql 学习笔记
- Mysql学习笔记(五)数学与日期时间函数
- mysql常见的操作命令(拿来主义,算是自己学习的笔记吧)
- Linux学习笔记:MySQL创建表
- mysql 5.7.10使用客户端mysql-font 连接异常 提示:The'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is dis
- Mysql DBA 高级运维学习笔记-sql语言介绍及分类