由于念经由过程sql语句来查看数据库表的相干束缚疑息,经由过程看了网上的一些资料,感觉有需要一下笔记。
Oracle将用户创建的表、束缚等疑息都放正在数据字典表中,承诺开拓人员查询数据字典表或视图来获与数据库东西的疑息,比圆一个表的创建者疑息、创建时候疑息、所属表空间疑息、用户拜候权限疑息等。假定用户正在对数据库中的数据进止操作时碰到艰易,就可以够拜候数据字典来查看数据库东西的详细疑息,数据字典中包露的首要内容以下所示。
各类圆案东西的定义疑息,如表、视图、索引、同义词、存储进程、函数、包、触发器和各类东西。
存储空间的分拨疑息,如为某个东西分拨了若干好多存储空间,该东西应用了若干好多存储空间。
平安疑息,如账户、权限、脚色、完整性束缚疑息。
数据库真例运转时的机能和统计疑息。
其他数据库运转进程当中的基本疑息。
注意:数字字典表本身没有能被直接拜候,必须经由过程数据字典视图来拜候数据字典中的疑息,系统的数据字典视图以V$开尾。
数据字典表凭据其前缀又可分为以下4类。
user:用户所创建东西对应的数据字典表,比方user_objects、user_tables等。
all:用户所能拜候东西(包括用户创建的东西)对应的数据字典表,比方all_objects、all_tables等。
dba:统统东西对应的数据字典表,比方all_objects、all_tables等。
v$:描写系统机能相干的数据字典表。如经由过程v$version表可得到数据库版本疑息。
有两个数据字典视图供给了束缚的详细疑息。
user_constraints:对表中的每个束缚,正在该表中都有一笔记载描写谁人束缚,该表包露束缚应用到的表,假定知讲束缚名,念知讲束缚典范,可以或许查询user_constraints,谁人视图描写了束缚的定义,可是它没有供给束缚定义正在哪些字段称号上。
user_cons_columns:视图中隐示束缚的字段称号。假定主键是一个结合(多字段)主键,谁人视图中将有谁人束缚的两笔记载,结合主键的每个字段对应一笔记载,每笔记载经由过程position(正在结合主键中的位置)来区别。
比方要查询invoice_check_others表中的统统束缚疑息,可以或许应用以下的SQL语句:
SELECT constraint_name, search_condition, status
FROM user_constraints
WHERE table_name = UPPER ("cityandcode");
可见正在user_constraints 表上有很多的数据库原疑息
上面可以或许查看user_constraints 表中详细有哪些疑息
select * from user_constraints
正在user_constraints视图中并出有包露束缚应用到的列疑息,为了获与invoice_check_单位others表的列束缚疑息,可以或许应用以下的代码查询user_cons_columns视图,如以下代码所示。
--查询束缚应用的列疑息
SELECT constraint_name, column_name
FROM user_cons_columns
WHERE table_name = UPPER ("cityandcode");
其他的作为DBA,可以或许应用all_constraints和all_cons_columns来获与束缚的详细疑息。
先到那里