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 列出數據庫里的所有對象
? ? ? ? ? ? ? ? ? ? ? ? ? ?數據庫元數據查詢
注:數據集和表結構見?SQL基礎操作_1_檢索數據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 NULLOracle:
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 NULLOracle:
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 NULL7.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常见系统数据字典)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检测人员有什么样的重要性呢
- 下一篇: 14-数据库连接池和jdbc优化