SQL基础操作_3_数据字典(涵盖SQL Server、Oracle、Mysql常见系统数据字典)
目录
数据库元数据查询
7.5.1 列出模式中所有的表
7.5.2 列出所有的数据库
7.5.3 列出给定表的基本信息
7.5.4 列出给定表的索引信息
7.5.5 列出给定表的主键、外键约束
7.5.6 列出给定表的外键引用
7.5.7 列出给定表的检查约束
7.5.8 列出给定表的默认约束
7.5.9 列出给定表的所有约束
7.5.10 列出数据库里的所有对象
数据库元数据查询
7.5.1 列出模式中所有的表
需求:查询给定模式下创建的所有表和创建时间。
解决方法:通过各个数据库里提供的系统视图查询。
Sql Server:
USE Shenl;
GO
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables
WHERE TABLE_TYPE='BASE TABLE'
或:
SELECT NAME as table_name FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME
或:
SELECT name as table_name,create_date as create_time FROM [sys].[all_objects]
WHERE type='U' AND is_ms_shipped=0
ORDER BY NAME
执行结果:
Database_Name |
Create_time |
master |
2003-04-08 09:13:36.390 |
tempdb |
2017-04-16 09:36:02.723 |
model |
2003-04-08 09:13:36.390 |
msdb |
2014-02-20 20:49:38.857 |
ReportServer |
2017-03-19 09:58:21.533 |
ReportServerTempDB |
2017-03-19 09:58:22.640 |
AdventureWorks2014 |
2017-03-19 15:34:10.683 |
AdventureWorksDW2014 |
2017-03-19 15:39:02.770 |
Shenl |
2017-04-11 12:57:23.723 |
Mysql:
use shenl;
SELECT TABLE_NAME,CREATE_TIME,TABLE_COMMENT FROM INFORMATION_SCHEMA.tables
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA='shenl'
ORDER BY TABLE_COMMENT DESC
执行结果:
TABLE_NAME |
CREATE_TIME |
TABLE_COMMENT |
emp |
2017/4/16 9:14:40 |
雇员表 |
dept |
2017/4/16 9:14:39 |
部门表 |
salgrade |
2017/4/16 9:14:41 |
工资等级表 |
bonus |
2017/4/16 9:14:41 |
奖金表 |
Oracle:
SELECT TABLE_NAME FROM USER_TABLES;
SELECT TABLE_NAME FROM ALL_TABLES
WHERE OWNER='SHENL;SELECT OBJECT_NAME ,CREATED
FROM ALL_OBJECTS
WHERE OBJECT_TYPE='TABLE'
AND OWNER='SHENL'
ORDER BY CREATED DESC
执行结果:
table_name |
create_time |
TMP_V |
2017/3/31 18:49:06 |
SALGRADE |
2017/3/27 15:25:47 |
BONUS |
2017/3/27 15:25:47 |
DEPT |
2017/3/27 15:25:46 |
EMP |
2017/3/27 15:25:44 |
7.5.2 列出所有的数据库
需求:查询给当前数据库实例下所有的数据库名和创建时间。
解决方法:通过各个数据库里提供的与数据库相关的数据字典进行查询。
SqlServer:
SELECT NAME AS Database_Name,create_date AS Create_time
FROM sys.databases
执行结果:
Database_Name |
Create_time |
master |
2003-04-08 09:13:36.390 |
tempdb |
2017-04-16 09:36:02.723 |
model |
2003-04-08 09:13:36.390 |
msdb |
2014-02-20 20:49:38.857 |
ReportServer |
2017-03-19 09:58:21.533 |
ReportServerTempDB |
2017-03-19 09:58:22.640 |
AdventureWorks2014 |
2017-03-19 15:34:10.683 |
AdventureWorksDW2014 |
2017-03-19 15:39:02.770 |
Shenl |
2017-04-11 12:57:23.723 |
Oracle:
Oracle里的数据库概念跟Sql Server略有不同,oracle里一个数据库对应多个实例,当然在Sql Server里也可以安装多个实例。不过一般不这么做。Oralce里的用户类似于Sql Server里的数据库,即一个用户下可能会有很多表。所以当前命题可以查询当前实例里的用户名。
注: 这里关于oracle的数据库、数据库实例、表空间、表、用户没有做过多的展开。简单的说一个数据库可以对应多个数据库实例,而一个数据库实例对应多个表空间,每个表空间对应多个用户和数据库文件。一个用户可以创建多个表。见下图示意:
select name from v$database;
select USERNAME,Created AS Create_time from dba_users;
执行结果:
USERNAME |
Create_time |
Sys |
2003-04-08 09:13:36.390 |
Scott |
2003-04-16 09:36:02.723 |
Shenl |
2003-04-08 09:13:36.390 |
… |
… |
注:
1 oralce数据库、实例、表空间、用户、表分析参考来源 http://blog.csdn.net/haiross/article/details/20357675
2 用户数据较多,这里用…省略。
Mysql:
show databases
-- 或
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA
执行结果:
SCHEMA_NAME |
information_schema |
mysql |
performance_schema |
shenl |
7.5.3 列出给定表的基本信息
需求:查询出给定的表dept,emp,bonus,salgrade里的表名,字段名、字段类型、字段注释、表注释信息。
解决方法:通过各个数据库里提供的与数据库相关的数据字典进行查询。
Oracle:
SELECT B.TABLE_NAME,B.COLUMN_NAME,B.DATA_TYPE,A.COMMENTSAS Table_Comm ,C.COMMENTSASColumn_Comm
from user_tab_comments A
JOIN user_tab_columns B
ON A.TABLE_NAME = B.TABLE_NAME
JOIN user_col_comments C
ON B.TABLE_NAME = C.TABLE_NAME AND B.COLUMN_NAME = C.COLUMN_NAME
WHERE A.TABLE_NAME IN ('DEPT','EMP','BONUS','SALGRADE')
Mysql:
SELECT A.TABLE_NAME,A.COLUMN_NAME,A.DATA_TYPE,B.TABLE_COMMENTAS Table_Comm,A.COLUMN_COMMENT AS Column_Comm
FROM INFORMATION_SCHEMA.COLUMNS A
JOIN INFORMATION_SCHEMA.TABLES B
ON A.TABLE_NAME = B.TABLE_NAME
WHERE A.TABLE_SCHEMA='SHENL'
AND A.TABLE_NAME IN('DEPT','EMP','BONUS','SALGRADE')
SqlServer:
USE Shenl;
GO
SELECTA.name AS table_name,B.name AS column_name,C.name AS data_type,D.value AS column_comm
FROM sys.tables A
INNER JOIN
(
SELECT B.object_id,NULL AS name,NULL AS user_type_id,0 as column_id FROMsys.tables A
INNER JOIN sys.columns BON B.object_id= A.object_idWHERE A.name IN ('dept','emp','bonus','salgrade') AND column_id = 1
UNION
SELECT object_id,name,user_type_id,column_id FROM sys.columns
)BON B.object_id= A.object_id
LEFT JOIN sys.systypes C
ON B.user_type_id= C.xtype
INNER JOIN sys.extended_properties DON D.major_id= B.object_id ANDD.minor_id = B.column_id
WHERE A.name IN ('dept','emp','bonus','salgrade')
ORDER BY A.name-- 或:USE Shenl;
GO
SELECT table_name,column_name,data_type,column_comm,F.value as table_comm FROM
(
SELECT A.object_id AS Object_id,A.name AS table_name,B.name AS column_name,C.name AS data_type,D.value AS column_comm
FROM sys.tables A
INNER JOIN sys.columns BON B.object_id= A.object_id
LEFT JOIN sys.systypes C
ON B.user_type_id= C.xtype
INNER JOIN sys.extended_properties DON D.major_id= B.object_id ANDD.minor_id = B.column_id
WHERE A.name IN ('dept','emp','bonus','salgrade')
)E
JOIN
(
SELECT major_id,value FROM sys.extended_propertiesA
JOIN sys.tables B
ON A.major_id= B.object_id
AND B.name IN ('dept','emp','bonus','salgrade') AND A.minor_id = 0
)F
ON E.object_id= F.major_id
执行结果:
table_name |
column_name |
data_type |
column_comm |
table_comm |
dept |
deptno |
int |
部门编号 |
部门表 |
dept |
dname |
varchar |
部门名称 |
部门表 |
dept |
loc |
varchar |
部门所在位置 |
部门表 |
emp |
empno |
int |
雇员编号 |
雇员表 |
emp |
ename |
varchar |
雇员名称 |
雇员表 |
emp |
job |
varchar |
雇员职位 |
雇员表 |
emp |
mgr |
int |
雇员对应的领导的编号 |
雇员表 |
emp |
hiredate |
date |
雇员的雇佣日期 |
雇员表 |
emp |
sal |
decimal |
雇员的基本工资 |
雇员表 |
emp |
comm |
decimal |
奖金 |
雇员表 |
emp |
deptno |
int |
所在部门 |
雇员表 |
salgrade |
grade |
int |
工资等级 |
工资等级表 |
salgrade |
losal |
int |
此等级的最低工资 |
工资等级表 |
salgrade |
hisal |
int |
此等级的最高工资 |
工资等级表 |
bonus |
ename |
varchar |
雇员姓名 |
奖金表 |
bonus |
job |
varchar |
雇员职位 |
奖金表 |
bonus |
sal |
decimal |
雇员工资 |
奖金表 |
bonus |
comm |
decimal |
雇员资金 |
奖金表 |
注:
1 sql server里的第一种实现方式是将表的注释作为一行,其它字段如(column_name、data_type)均以NULL值显示。
2 如果不了解各个数据库的注释方式,如下做个简单示例:
Oracle:
comment on table EMP is '雇员表';
comment on column EMP.EMPNO is '雇员的编号,由四位数字所组成';
Sql Server:
sql server里的注释存储在系统表sys.extended_properties中,一般我们通过调用存储过程sp_addextendedproperty来对表和字段加注释。
EXECUTE sp_addextendedproperty N'MS_Description',N'奖金表',N'user',N'dbo',N'table',N'bonus',NULL,NULL
EXECUTE sp_addextendedproperty N'MS_Description',N'雇员姓名',N'user',N'dbo',N'table',N'bonus',N'column',N'ename'
Mysql:
ALTER TABLE `EMP` COMMENT '雇员表';
ALTER TABLE `EMP` MODIFY COLUMN `empno` COMMENT '雇员编号';
7.5.4 列出给定表的索引信息
需求:查询出给定的表emp的索引信息。
解决方法:通过各个数据库里提供的与索引相关的数据字典进行查询。
Oracle:
CREATE INDEX Idx_EMP_EMPNO ON EMP(EMPNO);SELECT table_name,index_name,column_name,column_position
FROM sys.all_ind_columns
WHERE table_name ='EMP'ANDtable_owner='SHENL';
执行结果:
TABLE_NAME |
INDEX_NAME |
COLUMN_NAME |
COLUMN_POSITION |
EMP |
IDX_EMP_EMPNO |
EMPNO |
1 |
Sql Server:
SELECT a.name AS table_name,
b.name AS index_name,
d.name AS column_name,
c.index_column_id
FROM sys.tables a,sys.indexes b,sys.index_columns c,sys.columns d
WHERE a.object_id= b.object_idAND b.object_id= c.object_idAND b.index_id= c.index_idAND c.object_id= d.object_idAND c.column_id= d.column_idAND a.name='EMP'
执行结果:
table_name |
index_name |
column_name |
index_column_id |
emp |
PK__emp__AF4C318A634F478A |
empno |
1 |
Mysql:
show indexfrom emp;
7.5.5 列出给定表的主键、外键约束
需求:查询出给定的表emp的外键约束信息。
解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询。
SqlServer:
SELECT 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_schema='SHENL'
AND a.table_name= b.table_name
AND a.table_schema= b.table_schema
AND a.constraint_name= b.constraint_name
执行结果:
table_name |
CONSTRAINT_NAME |
COLUMN_NAME |
CONSTRAINT_TYPE |
emp |
FK__emp__deptno__38996AB5 |
deptno |
FOREIGN KEY |
emp |
PK__emp__AF4C318A634F478A |
empno |
PRIMARY KEY |
如果只是查主键信息可以:
SELECTtab.name AS table_name,idx.name AS pk_name,col.name AS column_name
FROMsys.indexes idxJOIN sys.index_columns idxColON idx.object_id= idxCol.object_idAND idx.index_id=idxCol.index_idAND idx.is_primary_key= 1JOIN sys.tables tabON idx.object_id= tab.object_idJOIN sys.columns colON idx.object_id= col.object_idAND idxCol.column_id=col.column_idAND tab.name='EMP'
执行结果:
table_name |
pk_name |
column_name |
emp |
PK__emp__AF4C318A634F478A |
empno |
注:
1 如果想查唯一约束可以将上述高亮处修改为:
ANDidx.is_unique_constraint = 1。
2 默认情况下会在基于主键建立个索引。
3 这里说的主外键约束对应constraint,一般包括PK、FK、UK即主键、外键、唯一键。而约束一般指的是default、check即默认值约束、检查约束。
Mysql:
SELECT CONSTRAINT_NAME,TABLE_NAME,COLUMN_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_SCHEMA='SHENL'
AND TABLE_NAME IN('emp')
Oracle:
SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A,USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME =B.CONSTRAINT_NAMEAND B.CONSTRAINT_TYPEIN('P','R')AND A.TABLE_NAME ='EMP'
7.5.6 列出给定表的外键引用
需求:查询出给定的表emp的外键约束信息。
解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询。
SqlServer:
SELECTRefObj.name AS RefTab_Name,fk.name AS Fk_Name,RefCol.name AS RefTab_Column_Name,RefedObj.name AS RefedTab_Name,RefedCol.name AS RefedTab_Column_Name
FROM sys.foreign_keys fk
JOIN sys.all_objects RefObj ON fk.parent_object_id= RefObj.object_id
JOIN sys.all_objects RefedObjON fk.referenced_object_id=RefedObj.object_id
JOIN sys.foreign_key_columns fkColsON fk.object_id= fkCols.constraint_object_id
JOIN sys.columns RefColON RefObj.object_id= RefCol.object_id AND fkCols.parent_column_id=RefCol.column_id
JOIN sys.columns RefedColON RefedObj.object_id= RefedCol.object_id AND fkCols.referenced_column_id=RefedCol.column_id;
执行结果:
RefTab_Name |
Fk_Name |
RefTab_Column_Name |
RefedTab_Name |
RefedTab_Column_Name |
emp |
FK__emp__deptno__38996AB5 |
deptno |
dept |
deptno |
Mysql:
SELECT CONSTRAINT_NAME,TABLE_NAME,COLUMN_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_SCHEMA='SHENL' AND TABLE_NAME IN('emp') AND REFERENCED_TABLE_NAME IS NOT NULL
Oracle:
SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A,USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME =B.CONSTRAINT_NAMEAND B.CONSTRAINT_TYPEIN('R')AND A.TABLE_NAME ='EMP'
7.5.7 列出给定表的检查约束
需求:查询出给定的表emp的检查约束(check)信息。
解决方法:通过各个数据库里提供的与检查约束(check)相关的数据字典进行查询。
SqlServer:
-- 新增check约束以检查emp表的enmae字段长度不超过16
ALTER TABLE EMP DROP CONSTRAINT CK_Emp_Ename;
ALTER TABLE EMP ADD CONSTRAINT CK_Emp_Ename CHECK(LEN(ename)<16);
SELECT A.name AS CKConstraint_Name,B.name AS Table_Name,C.name AS CKConstraint_ColumnName,A.definition AS DF_Def,A.create_date AS Create_time,A.modify_date AS Modify_time
FROM sys.check_constraints A
JOIN sys.tables BON A.parent_object_id= B.object_id
JOIN sys.columns CON B.object_id= C.object_idAND A.parent_column_id= C.column_id
执行结果:
CKConstraint_Name |
Table_Name |
CKConstraint_ColumnName |
DF_Def |
Create_time |
Modify_time |
CK_Emp_Ename |
emp |
ename |
(len([ename])<(16)) |
2017-04-19 10:17:41.640 |
2017-04-19 10:17:41.640 |
Mysql:
ALTER TABLE EMP ADD CONSTRAINT CK_Emp_Ename CHECK (LEN(ename)<16);
注;Mysql数据字典里没有存check约束,所以暂时无法查阅。
Oracle:
ALTER TABLE EMP ADD CONSTRAINT CK_Emp_Ename CHECK (LENGTH(ename)<15);SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A,USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME =B.CONSTRAINT_NAMEAND B.CONSTRAINT_TYPEIN('C')AND A.TABLE_NAME ='EMP'
7.5.8 列出给定表的默认约束
需求:查询出给定的表emp的默认约束(default)信息。
解决方法:通过各个数据库里提供的与默认约束(default)相关的数据字典进行查询。
SqlServer:
-- 新增default约束以设置emp表的comm默认值是0
alter table EMP drop constraint DF_EMP_Comm;
alter table EMP add constraint DF_EMP_Comm DEFAULT((0)) for comm;
alter table EMP with check add constraint DF_EMP_Comm DEFAULT((0)) for comm;
alter table EMP with nocheck add constraint DF_EMP_Comm DEFAULT((0)) for comm;SELECT A.name AS DFConstraint_Name,B.name AS Table_Name,C.name AS DFConstraint_ColumnName,A.definition AS DF_Def,A.create_date AS Create_time,A.modify_date AS Modify_time
FROM sys.default_constraints A
JOIN sys.tables BON A.parent_object_id= B.object_id
JOIN sys.columns CON B.object_id= C.object_id AND A.parent_column_id= C.column_id;
执行结果:
DFConstraint_Name |
Table_Name |
DFConstraint_ColumnName |
DF_Def |
Create_time |
Modify_time |
DF_EMP_Comm |
emp |
comm |
((0)) |
2017-04-19 09:24:14.050 |
2017-04-19 09:24:14.050 |
Mysql:
SELECT TABLE_NAME,COLUMN_NAME,COLUMN_DEFAULT
FROM information_schema.columns
WHERE TABLE_NAME = 'EMP'
AND column_default IS NOT NULL
Oracle:
alter table EMP modify comm default 0;
SELECT t.COLUMN_NAME,t.nullable,t.data_default
FROM USER_TAB_COLS t
WHERE TABLE_NAME ='EMP'AND data_default IS NOT NULL
7.5.9 列出给定表的所有约束
需求:查询出给定的表emp的相关的约束信息。
解决方法:通过各个数据库里提供的与约束相关的数据字典进行查询。
SqlServer:
SELECT B.name AS Constraint_Name,B.type,CASE B.type WHEN 'PK' THEN '主键'WHEN 'F'THEN '外键'WHEN 'D'THEN '默认值约束'WHEN 'C'THEN '检查约束' END AS ConstaintType_Desc,CASE B.type WHEN 'PK' THEN G.COLUMN_NAMEWHEN 'F' THEN G.COLUMN_NAMEWHEN 'D' THEN E.nameWHEN 'C' THEN F.name END AS Column_name,CASE B.type WHEN 'PK' THEN NULLWHEN 'F' THEN NULLWHEN 'D' THEN C.definitionWHEN 'C' THEN D.definition END AS Define,B.create_date AS Create_Time,B.modify_date AS Modify_TimeFROM sys.all_objects AJOIN sys.all_objects BON A.object_id= B.parent_object_idJOIN sys.default_constraints CON B.parent_object_id= B.parent_object_idJOIN sys.check_constraints DON B.parent_object_id= D.parent_object_idJOIN sys.all_columns EON E.object_id= C.parent_object_idAND C.parent_column_id= E.column_idJOIN sys.all_columns FON F.object_id= D.parent_object_idAND D.parent_column_id= F.column_id
LEFT JOIN information_schema.key_column_usage GON B.name= G.CONSTRAINT_NAME
WHERE A.NAME='EMP'
执行结果:
Constraint_Name |
type |
ConstaintType_Desc |
Column_name |
Define |
Create_Time |
Modify_Time |
PK__emp__AF4C318A634F478A |
PK |
主键 |
empno |
NULL |
2017-03-27 16:27:00.583 |
2017-03-27 16:27:00.583 |
FK__emp__deptno__38996AB5 |
F |
外键 |
deptno |
NULL |
2017-03-27 16:27:00.583 |
2017-03-27 16:27:00.583 |
DF_EMP_Comm |
D |
默认值约束 |
comm |
((0)) |
2017-04-19 09:24:14.050 |
2017-04-19 09:24:14.050 |
CK_Emp_Ename |
C |
检查约束 |
ename |
(len([ename])<(16)) |
2017-04-19 10:17:41.640 |
2017-04-19 10:17:41.640 |
注:
sys.all_objects里的type的枚举类型有如下:
执行结果:
type |
数据库对象类型 |
AF |
聚合函数(CLR) |
C |
CHECK约束 |
D |
DEFAULT(约束或独立) |
F |
FOREIGNKEY约束 |
PK |
PRIMARYKEY约束 |
P |
SQL存储过程 |
PC |
程序集(CLR)存储过程 |
FN |
SQL标量函数 |
FS |
程序集(CLR)标量函数 |
FT |
程序集(CLR)表值函数 |
R |
规则(旧式,独立) |
RF |
复制筛选过程 |
SN |
同义词 |
SQ |
服务队列 |
TA |
程序集(CLR)DML触发器 |
TR |
SQLDML触发器 |
IF |
SQL内联表值函数 |
TF |
SQL表值函数 |
U |
表(用户定义类型) |
UQ |
UNIQUE约束 |
V |
视图 |
X |
扩展存储过程 |
IT |
内部表 |
注:数据库对象类型这列为自己添加的备注。
Mysql:注意mysql内并无同一视图可以满足上述需求。
Oracle:
SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A,USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME =B.CONSTRAINT_NAMEAND A.TABLE_NAME ='EMP'
7.5.10 列出数据库里的所有对象
需求:查询出给定的数据库里的所有对象的信息。
解决方法:通过各个数据库里提供的数据对象相关的数据字典进行查询。
SqlServer:
SELECT name,object_id,parent_object_id,type,type_desc,create_date,modify_date
FROM sys.all_objects
WHERE is_ms_shipped = 0
执行结果:
name |
object_id |
parent_object_id |
type |
type_desc |
create_date |
modify_date |
tb_marketrecommlog |
245575913 |
0 |
U |
USER_TABLE |
2017-03-25 15:05:20.850 |
2017-03-25 15:05:20.850 |
dept |
885578193 |
0 |
U |
USER_TABLE |
2017-03-27 16:27:00.580 |
2017-03-27 16:27:00.583 |
PK__dept__BE2C337D15A7E7E3 |
901578250 |
885578193 |
PK |
PRIMARY_KEY_CONSTRAINT |
2017-03-27 16:27:00.580 |
2017-03-27 16:27:00.580 |
emp |
917578307 |
0 |
U |
USER_TABLE |
2017-03-27 16:27:00.580 |
2017-04-19 10:17:41.640 |
PK__emp__AF4C318A634F478A |
933578364 |
917578307 |
PK |
PRIMARY_KEY_CONSTRAINT |
2017-03-27 16:27:00.583 |
2017-03-27 16:27:00.583 |
FK__emp__deptno__38996AB5 |
949578421 |
917578307 |
F |
FOREIGN_KEY_CONSTRAINT |
2017-03-27 16:27:00.583 |
2017-03-27 16:27:00.583 |
salgrade |
965578478 |
0 |
U |
USER_TABLE |
2017-03-27 16:27:00.590 |
2017-03-27 16:27:00.590 |
bonus |
981578535 |
0 |
U |
USER_TABLE |
2017-03-27 16:27:00.593 |
2017-03-27 16:27:00.593 |
tmp_v |
1557580587 |
0 |
V |
VIEW |
2017-04-12 10:44:00.703 |
2017-04-12 10:44:00.703 |
translate |
1573580644 |
0 |
FN |
SQL_SCALAR_FUNCTION |
2017-04-12 10:51:52.840 |
2017-04-12 10:51:52.840 |
DF_EMP_Comm |
1877581727 |
917578307 |
D |
DEFAULT_CONSTRAINT |
2017-04-19 09:24:14.050 |
2017-04-19 09:24:14.050 |
CK_Emp_Ename |
1893581784 |
917578307 |
C |
CHECK_CONSTRAINT |
2017-04-19 10:17:41.640 |
2017-04-19 10:17:41.640 |
f_splitSTR |
1909581841 |
0 |
TF |
SQL_TABLE_VALUED_FUNCTION |
2017-04-19 11:25:32.807 |
2017-04-19 11:25:32.807 |
Mysql:暂无相关视图可以满足此需求。
Oracle:
SELECT OBJECT_NAME,OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER=UPPER('SHENL')
SQL基础操作_3_数据字典(涵盖SQL Server、Oracle、Mysql常见系统数据字典)相关推荐
- SQL基础操作_5_字符串处理
目录 7.6 处理字符串 7.6.1 生成自增值 7.6.2 遍历字符串里的每个值 7.6.3 处理含引号的字符串 7.6.4 计算某个字符出现的次数 7.6.5 字符串里过滤不需要的字符 7.6.6 ...
- SQL基础操作_7_时间运算
目录 7.8 时间运算 7.8.1 对时间列进行加减 7.8.2 计算两个时间列的差值 7.8.3 计算两个时间列工作日差值 7.8.4 计算时间列所在的周的序号 7.8.5 计算时间列所在年的周序号 ...
- SQL基础操作_6_处理数字
目录 7.7 处理数字 7.7.1 计算某列的最小/大值 7.7.2 计算某列的平均值 7.7.3 计算某列的总和 7.7.4 计算表的行数 7.7.5 非NULL值的列的个数 7.7.6 NULL值 ...
- SQL基础操作_4_表的插入、更新、删除、合并操作
目录 表的插入.更新.删除.合并操作 7.4.1 插入新的记录 7.4.2 插入含自增列的记录 7.4.3 插入新的多条记录 7.4.4 同时往多个表插入记录 7.4.5 通过其它表插入 7.4.6 ...
- SQL基础操作_2_操作多个表
目录 操作多个表 7.3.1 记录集的叠加 7.3.2 组合相关的行 7.3.3 查询两个表共同的行 7.3.4 从一个表中查询另外一个表里没有的值 7.3.5 在一个表中查询与其它表不匹配的记录 7 ...
- 第1章 数据库系统与SQL基础知识!什么是SQL数据库系统?SQL类型?
第1章 数据库系统与SQL基础知识 1.1 数据库系统基本概念 数据库和SQL构成了整个数据库系统,两者一个是用来存储数据,一个是用来读取数据.本节通过简单的概念入手,让读者对数据库系统有个大概的 ...
- oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...
- c# 数组中的空值_C# 数据操作系列 - 1. SQL基础操作
0.前言 前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识.这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句. SQL(Structured Quer ...
- SQL基础操作_8_基础概念
目录 3 基础概念 3.1 数据库基础概念 3.2 集合相关概念 3.3 常见数据库对象 3.3.1 表 3.3.2 模式 3.3.3 视图 3.3.4 触发器 3.3.5 函数 3.3.6 存储过程 ...
最新文章
- 从缓冲上看阻塞与非阻塞socket在发送接收上的区别
- Entity相互关系
- leetcode算法题--飞地的数量
- java 服务端客户端数据传输出现乱码
- Navicat数据库非常实用的技巧 (create_time、edit_time 设置默认值和自动更新)
- 图片文字识别(一):tesseract-ocr-4.00的安装与初步进行图片文字识别
- 两个字符串的删除操作
- Android之播放一首简单的音乐
- Java 并发(JUC 包-01)
- 【ROS学习笔记】(六)客户端Client的编程实现
- CART树算法的剪枝算法
- 微信导航——引入百度地图api
- 团队作业——项目验收与总结博客
- 从Uniswap v3来看新的期权范式?
- 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例
- Excel2013 基本用法(上)
- 微信公众号开发——关键词自动回复
- iOS开发中那些容易被我们忽略的代码,常用代码集合
- unity3d 动态合批设置_Unity动态合批(Dynamic Batching)与静态合批(Static Batching)
- 【第二章 线性代数之 线性组合、张成的向量空间】3Blue1brown
热门文章
- boost::system::is_error_code_enum相关的测试程序
- boost::range_reference相关的测试程序
- boost::mpl模块实现list_c相关的测试程序
- boost::math::quadrature::trapezoidal用法的测试程序
- boost::geometry::detail::overlay::select_rings用法的测试程序
- boost::callable_traits移除const成员的测试程序
- Boost:双图bimap与mi_bidirectional地图的测试程序
- ITK:创建一个向量
- DCMTK:OFCharacterEncoding的测试程序
- DCMTK:测试框架内容Frame Content FG类