数据分析之SQL系统表

作者: 数据蛙datafrog | 来源:发表于2018-12-26 23:47 被阅读14次

这里主要是整理些常用系统表的知识点,有时候面试数据分析的时候会问到的。先给大家出一道面试题目:
已知道一个用户表的名字是 brands,如何查找出表中的所有列名字呢?

看完下面的内容,你肯定会明白的

一:Sysobjects表

Sysobjects 主要存放着数据库中的所有对象,如表,列,索引等等。字段xtype代表对象类型,比如u代表用户表,p代表存储过程,tr代表触发器等。name字段表示对象名称。

如: select * from sysobjects where xtype='u'
二:Syscolumns表

当前数据库的所有字段都保留在里面。

select col.name,obj.name 
from syscolumns col join sysobjects obj
 on col.id=obj.id where obj.xtype='u' 

这时候,我们再来回顾下刚刚的问题,因为表示用户表,所以xtype='u' ,对象名字就是'brands',所以结合Sysobjects表、
Syscolumns表
,容易查找出来。

select obj.name,col.name
 from syscolumns  col join  sysobjects 
 obj on col.id=obj.id where obj.type='u'
and obj.name='brands'

3.systypes
保存当前数据库中的所有数据类型,包含系统提供的数据类型和用户定义的数据类型。比如查看所有的用户表

select obj.name from systypes stype  join sysobjects obj
on stype.id=obj.id where xtype='u'


其中xtype分别对应:

C = CHECK 约束 
D = 默认值或 DEFAULT 约束 
F = FOREIGN KEY 约束 
FN = 标量函数 
IF = 内嵌表函数 
K = PRIMARY KEY 或 UNIQUE 约束 
L = 日志 
P = 存储过程 
R = 规则 
RF = 复制筛选存储过程 
S = 系统表 
TF = 表函数 
TR = 触发器 
U = 用户表 
V = 视图 
X = 扩展存储过程
五:Object_ID函数

如果查询数据库中是否存在指定名称的索引或者外键约束等,经常会用到object_id('name','type')方法。
比如要取出约束名为fk_xxx_xx的ID值

select object_id('fk_xxx_xx','F')

type如下列表:

AF = Aggregate function (CLR)
C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
FN = SQL scalar function
FS = Assembly (CLR) scalar-function
FT = Assembly (CLR) table-valued function
IF = SQL inline table-valued function
IT = Internal table
P = SQL Stored Procedure
PC = Assembly (CLR) stored-procedure
PG = Plan guide
PK = PRIMARY KEY constraint
R = Rule (old-style, stand-alone)
RF = Replication-filter-procedure
S = System base table
SN = Synonym
SQ = Service queue
TA = Assembly (CLR) DML trigger
TF = SQL table-valued-function
TR = SQL DML trigger
U = Table (user-defined)
UQ = UNIQUE constraint
V = View
X = Extended stored procedure

其实上面的就是这样的

#
select ID from sysobjects where name='fk_xxx_xx' and type='F'

相关文章

  • 数据分析之SQL系统表

    这里主要是整理些常用系统表的知识点,有时候面试数据分析的时候会问到的。先给大家出一道面试题目:已知道一个用户表的名...

  • left join的一些问题 数据行数减少、增多 数据重复

    数据行数减少 A表数据 B表数据 SQL: 结果: 结论: 数据行数增多 A表数据 B表数据 SQL: 结果: 结...

  • 决胜B端学习笔记07-数据分析

    技能目录 数据埋点UML建模技术知识数据库与SQL数据分析产品文档 数据库与SQL 数据库表设计 从ER图到数据表...

  • Mysql数据库优化

    数据库优化顺序:Sql及索引->数据库表结构->系统配置->硬件 第一章:Sql语句优化 如何判断有问题Sql? ...

  • Oracle SQL调优系列之定位生产性能问题方法

    Oracle SQL调优系列之定位生产性能问题方法 1、AWR整体分析 场景:最近遇到紧急生产问题,因为数据库锁表...

  • mysql语句

    表结构 表数据 数据字典SQL

  • 智慧商超管理系统

    智慧商超管理系统 绘制E-R图 将E-R图转化为数据表 根据数据表,在SQL server 2008中建表

  • MySQL

    数据类型 sql基础 数据库表 SQL SELECT 语句: SQL WHERE 子句: SQL AND & OR...

  • Mysql索引优化

    1、单表索引优化 单表索引优化分析 创建表 建表 SQL 表中的测试数据 查询案例 查询category_id为1...

  • 小迪16期-20170305

    第三天:Sql注入技巧篇 1.Sql注入之access注入 access数据库结构数据库表名数据库列名数据 1.a...

网友评论

    本文标题:数据分析之SQL系统表

    本文链接:https://www.haomeiwen.com/subject/afvscqtx.html