当前位置 博文首页 > 文章内容

    MySQL笔记-INFORMATION_SCHEMA数据库介绍【转】

    作者: 栏目:未分类 时间:2020-09-18 14:01:11

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    介绍

    INFORMATION_SCHEMA提供了访问数据库元数据的方式。 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。 有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。

    操作:

    删除mysql数据库某一张主键表的所有外键关系

    SELECT CONCAT('alter table ', TABLE_NAME  , ' drop foreign key ', constraint_name, ';')
    FROM information_schema.KEY_COLUMN_USAGE a WHERE a.TABLE_SCHEMA='某一个数据库的名称' AND a.constraint_name LIKE 'FK_Reference_%' AND REFERENCED_TABLE_NAME='某一张表的名字';
    

    删除mysql数据库某一张主键表的所有索引

    SELECT * FROM INFORMATION_SCHEMA.STATISTICS a WHERE a.TABLE_SCHEMA = '某一个数据库的名称' AND a.TABLE_NAME = '某一张表的名字' AND (a.INDEX_NAME LIKE 'FK_%' OR a.INDEX_NAME LIKE 'IX_%');
    

    查看数据库服务器上的数据库

    SELECT SCHEMA_NAME AS  'database'
    FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0 , 30
    

    查看某个数据库里面的数据表

    SELECT table_name
    FROM INFORMATION_SCHEMA.TABLES
    WHERE table_schema = '某一个数据库的名称' LIMIT 0 , 30
    

    查看某个数据表里面的字段

    SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = '某一张表的名字' AND table_schema = '某一个数据库的名称' LIMIT 0 , 30
    

    查看某个表下面的索引信息

    SELECT *
    FROM INFORMATION_SCHEMA.STATISTICS
    WHERE table_name = 'authors'AND table_schema = '某一个数据库的名称' LIMIT 0 , 30
    

    查看某个数据库里面数据和索引的大小(M)

    SELECT SUM( DATA_LENGTH ) /1024 /1024, SUM( INDEX_LENGTH ) /1024 /1024
    FROM INFORMATION_SCHEMA.TABLES
    WHERE table_schema = '某一个数据库的名称' 
    

    参考:https://www.cnblogs.com/qiyebao/p/4164772.html