从MySQL 5开始, 你可以看到多了一个系统数据库information_schema . information_schema 存贮了其他所有数据库的信息。information_schema是一个虚拟数据库,并不物理存在,在select的时候,从其他数据库获取相应的信息。 让我们来看看几个使用这个数据库的例子:
- 查询数据库dj214中表数据超过1000行的表
- 查询数据库dj214中所有没有主键的表
- 查询所有数据库中10张最大表
- 查看MYSQL数据库下所有的数据库
- 列出指定数据库中的所有表名称
- 列出指定数据库下指定表的表结构
- 一段MYSQL存储过程[删除指定库中所有的空表]
-
一段MYSQL存储过程[删除指定库下所有表中的空列,即表中的任何一条记录该列都没有值]
一段MYSQL存储过程[删除指定库下所有表中的空列,即表中的任何一条记录该列都没有值]
-
一段MYSQL存储过程[把指定库中的所有表名改为大写]
其实这段代码完全没必要,默认在linux下mysql表名是区分大小写的,如果想让linux下的mysql不区分表名大小写,修改办法是:
vim /etc/my.cnf
在[mysqld]下加入一行:
lower_case_table_names=1
这句话就表示不区分大小写表名。
重启一下mysql服务再试试看看。
这是最简便的修改办法,但是这种方法也许不是很科学,建议还是写程序的时候就详细规范一下,注意区分大小写。
同时给出一段MYSQL存储过程,功能为把指定库中所有的表名改为全部大写
MYSQL删除指定库下所有的外键
SELECT DISTINCT table_name, constraint_name FROM information_schema.key_column_usage WHERE constraint_schema ='kxschool' AND referenced_table_name IS NOT NULL;
一段MYSQL存储过程[把指定库中的所有表名改为大写]
其实这段代码完全没必要,默认在linux下mysql表名是区分大小写的,如果想让linux下的mysql不区分表名大小写,修改办法是:
vim /etc/my.cnf
在[mysqld]下加入一行:
lower_case_table_names=1
这句话就表示不区分大小写表名。
重启一下mysql服务再试试看看。
这是最简便的修改办法,但是这种方法也许不是很科学,建议还是写程序的时候就详细规范一下,注意区分大小写。
同时给出一段MYSQL存储过程,功能为把指定库中所有的表名改为全部大写
MYSQL删除指定库下所有的外键
SELECT DISTINCT table_name, constraint_name FROM information_schema.key_column_usage WHERE constraint_schema ='kxschool' AND referenced_table_name IS NOT NULL;