oracle查询表结构,外键,主键,字段,字段属性

最近用java写的数据库的表复制,用到了下面的一些查询语句,保存上免得以后忘记了

select username,default_tablespace from dba_users;
查询用户的多有默认表空间
select * from dba_data_files where tablespace_name like 'USERS%';
查询当前用户的表空间

1 . 查询表结构基本信息
select * from user_tables t,user_tab_comments c
where c.table_name = t.table_name
and t.table_name = '表名'

2. 查询表的所有列及其属性
select t.COLUMN_NAME,
t.DATA_TYPE,
t.DATA_LENGTH,
t.DATA_PRECISION,
t.NULLABLE,
t.COLUMN_ID,
c.COMMENTS
from user_tab_columns t, user_col_comments c
where t.table_name = c.table_name
and t.column_name = c.column_name
and t.table_name = '表名'
order by t.COLUMN_ID ;

3 . 查找表的主键(包括名称,构成列)
select cu.*,c.DATA_TYPE
from user_cons_columns cu, user_constraints au,user_tab_columns c
where cu.constraint_name = au.constraint_name
and c.COLUMN_NAME = cu.column_name
and c.TABLE_NAME = cu.table_name
and au.constraint_type = 'P'
and au.table_name = '表名'

4 . 查找表的所有索引(包括索引名,类型,构成列)
select t.*, i.index_type
from user_ind_columns t, user_indexes i
where t.index_name = i.index_name
and t.table_name = i.table_name
and t.table_name = '表名'

5.查找表的唯一性约束(包括名称,构成列)
select column_name
from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name
and au.constraint_type = 'U'
and au.table_name = '表名'

6. 查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询)
select *
from user_constraints c
where c.constraint_type = 'R'
and c.table_name = '表名'


7. 查询外键约束的列名

select * from user_cons_columns cl where cl.constraint_name = '外键名称'

8.查询引用表的键的列名
select * from user_cons_columns cl where cl.constraint_name = '外键引用表的键名'
Oracle数据库中,的约束是用来保证数据质量和完整性的重要机制。常见的约束类型包括: 1. **检查约束(Check Constraint)**:它定义了一个条件,该条件必须始终满足,如果插入或更新的数据违反了这个条件,操作将被拒绝。比如,你可以创建一个检查约束来确保某个字段的值总是非负数。 示例: ```sql ALTER TABLE ADD CONSTRAINT constraint_name CHECK (字段 >= 0); ``` 2. **唯一约束(Unique Constraint)**:确保指定列的组合在整个中是唯一的,每个值都是唯一的,除了NULL值。可以单独应用在一个字段上,也可以跨多个字段。 示例: ```sql ALTER TABLE ADD CONSTRAINT constraint_name UNIQUE (字段); ``` 3. **主键约束(Primary Key)**:用于标识中的每一行,它的值在内必须是唯一的,并且不允许为NULL。通常只在单个字段上定义,但也允许通过复合主键(多个字段一起作为主键)。 示例: ```sql ALTER TABLE ADD CONSTRAINT pk_table PRIMARY KEY (字段); ``` 4. **约束(Foreign Key)**:关联两个,引用另一个主键,确保数据的一致性和完整性。这是通过`REFERENCES`关字来指定参照关系。 示例: ```sql ALTER TABLE ADD CONSTRAINT fk_table FOREIGN KEY (字段) REFERENCES 参照 (参照字段); ``` 这些约束的“序号”在Oracle中并不是实际的概念,但你可以通过它们在创建表结构时的顺序来识别它们,比如第一个添加的约束通常会被视为“第一个约束”。然而,为了获取特定约束的详细信息,如约束称、字段称等,你需要查询系统如USER_CONSTRAINTS或ALL_CONSRAINTS。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值