数据库的元数据即数据库对象的数据,如表,库,的属性数据等,存放在informatica——schema数据库中,已虚拟表的形式存在,只能读不能写
一、 获取元数据的方法
- 查询INFORMATION_SCHEMA 数据库表。
- 其中包含MySQL数据库服务器所管理的所有对象的相关数据
- 使用SHOW 语句。
- 用于获取数据库和表信息的MySQL专用语句
- 使用DESCRIBE(或DESC)语句。
- 用于检查表结构和列属性的快捷方式
- 使用mysqlshow客户端程序。
- SHOW 语法的命令行程序
例子
- 列出INFORMATION_SCHEMA 数据库中所有的表:
mysql> use information_schema
mysql> show tables;
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
...
| USER_PRIVILEGES |
| VIEWS
- 列出数据库中所有的表
SELECT TABLE_SCHEMA,table_name,ENGINE FROM information_schema.`TABLES`
- 获取world数据库的所有表的存储引擎
SELECT TABLE_NAME, ENGINE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'world';
- 获取数据类型为type的表
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'set';
- 获取字符集的默认排序规则
SELECT CHARACTER_SET_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLLATIONS
WHERE IS_DEFAULT = 'Yes';
- 获取每个库有多少张表
SELECT TABLE_SCHEMA, COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
GROUP BY TABLE_SCHEMA;
- 备份world库下边所有的表,coucat拼接
mysqldump -uroot -poldboy123 world country >> /bakcup/world_country.bak.sql # 备份命令
SELECT CONCAT("mysqldump -uroot -poldboy123 ",table_schema," ",table_name," >>","/backup/",table_schema,"_",table_name,".bak.sql")
FROM information_schema.tables WHERE table_schema='world'; # 拼接命令,双引号为固定类容,逗号后边为可变的表和库
二、MySQL中的show语句
•
SOHW databases:列出所有数据库
•
SHOW TABLES:列出默认数据库中的表
•
SHOW TABLES FROM <database_name>:列出指定数据库中的表
•
SHOW COLUMNS FROM <table_name>:显示表的列结构 同desc命令
•
SHOW INDEX FROM <table_name>:显示表中有关索引和索引列的信息
•
SHOW CHARACTER SET:显示可用的字符集及其默认整理
•
SHOW COLLATION:显示每个字符集的整理
•
SHOW STATUS:列出当前数据库状态
•
SHOW VARIABLES:列出数据库中的参数定义值