Select语句高级应用(4)

select name, initials from players where not exists (select * from penalties where playerno = players.playerno);

1.6 Informatica_schema获取元数据 1.6.1 元数据访问方法

  查询 INFORMATION_SCHEMA 数据库表。其中包含 MySQL 数据库服务器所管理的所有对象的相关数据

  使用 SHOW 语句。用于获取数据库和表信息的 MySQL 专用语句

  使用 DESCRIBE(或 DESC)语句。用于检查表结构和列属性的快捷方式

  使用 mysqlshow 客户端程序。SHOW 语法的命令行程序

INFORMATION_SCHEMA 数据库优点介绍

  充当数据库元数据的中央系统信息库,模式和模式对象,服务器统计信息(状态变量、设置、连接) 。

  采用表格式以实现灵活访问,使用任意 SELECT 语句。是“虚拟数据库”,表并非“真实”表(基表),而是“系统视图”,根据当前用户的特权动态填充表。

列出 INFORMATION_SCHEMA 数据库中所有的表:

 

mysql> USE information_schema; Database changed mysql> SHOW TABLES; +---------------------------------------+ | Tables_in_information_schema | +---------------------------------------+ | CHARACTER_SETS | | COLLATIONS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLUMNS | | COLUMN_PRIVILEGES |

 

1.6.2 对 INFORMATION_SCHEMA 使用 SELECT

示例一:

查找引擎是innodb的表。

SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE= 'innodb';

示例二:

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'set';

sql说明:查找数据类型是set的表 

示例三:

SELECT CHARACTER_SET_NAME, COLLATION_NAME,IS_DEFAULT FROM INFORMATION_SCHEMA.COLLATIONS WHERE IS_DEFAULT = 'Yes';

sql说明:查看找默认为yes的表 

示例四:

SELECT TABLE_SCHEMA, COUNT(*) FROM INFORMATION_SCHEMA.TABLES GROUP BY TABLE_SCHEMA;

sql说明:查看每个数据库下表的个数 

使用 INFORMATION_SCHEMA 表获取有关创建 shell 命令的信息。

SELECT CONCAT("mysqldump -uroot -p ", TABLE_SCHEMA," ", TABLE_NAME, " >> ", TABLE_SCHEMA,".bak.sql") FROM TABLES WHERE TABLE_NAME LIKE 'Country%' 

1.6.3 使用 mysql 命令创建 SQL 语句。

mysql -uroot -p123 --silent --skip-column-names -e "SELECT CONCAT('CREATE TABLE ', TABLE_SCHEMA, '.',TABLE_NAME, '_backup LIKE ', TABLE_SCHEMA, '.',TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'world_innodb';"

1.6.4 MySQL中的show语句

SOHW databases:列出所有数据库 SHOW TABLES:列出默认数据库中的表 SHOW TABLES FROM <database_name>:列出指定数据库中的表 SHOW COLUMNS FROM <table_name>:显示表的列结构 SHOW INDEX FROM <table_name>:显示表中有关索引和索引列的信息 SHOW CHARACTER SET:显示可用的字符集及其默认整理 SHOW COLLATION:显示每个字符集的整理 SHOW STATUS:列出当前数据库状态 SHOW VARIABLES:列出数据库中的参数定义值

 

1.6.5 DESCRIBE 语句

    DESCRIBE 语句 等效于 SHOW COLUMNS

一般语法:

mysql> DESCRIBE <table_name>;

显示 INFORMATION_SCHEMA 表信息

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/cf384f4588e1658d66221ae095a1badf.html