首页 > 数据库技术 > 详细

sql 语句系列(列举系列)[八百章之第八章]

时间:2020-03-26 10:04:55      阅读:84      评论:0      收藏:0      [点我收藏+]

前言

这一张就是就是查询自己设计数据库的结构,对于接收一个老的项目相当重要。

列举模式中的表

查询所以表

select table_name
from INFORMATION_SCHEMA.TABLES

有时候需要查询某个管理者管理了那些表可以:

where TABLE_SCHEMA=‘SMEAGOL‘

列举模式中的表

上面的是查表,下面的是查表的列

select COLUMN_NAME,DATA_TYPE,ordinal_position
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = ‘emp‘

技术分享图片

ordinal_position 因为意思就是编号,相当有用的,比如数据迁移。

列举索引列

查询某个表的索引:

select a.name table_name,b.name index_name,d.name column_nmae,c.index_column_id
from sys.tables a,sys.indexes b,sys.index_columns c,sys.columns d
where a.name=‘emp‘and 
a.object_id=b.object_id and
b.object_id=c.object_id and
b.index_id=c.index_id and
c.object_id=d.object_id and
c.column_id=d.column_id

技术分享图片
注意一个index_name 里面不仅显示了索引名,还有索引类型,是主键
mysql 中

show index from emp

列举约束

select a.CONSTRAINT_NAME,b.CONSTRAINT_NAME,a.TABLE_NAME,a.CONSTRAINT_NAME,b.COLUMN_NAME,a.CONSTRAINT_TYPE
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS a,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE b
where a.TABLE_NAME=‘emp‘ and
a.TABLE_NAME=b.TABLE_NAME and
a.TABLE_SCHEMA=b.TABLE_SCHEMA

技术分享图片

你会发现一个问题,就是a.CONSTRAINT_NAME,b.CONSTRAINT_NAME在第二列不相等,后面将会自然揭晓。

sql 语句系列(列举系列)[八百章之第八章]

原文:https://www.cnblogs.com/aoximin/p/12563531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!