Oracle的表约束

约束是操作表数据的强制规定

有五种约束:not null,unique,primary key,foreign key,check。

在什么时候创建约束:建表的同时,建表之后

可以在表级和列极定义约束

可以通过数据字典视图查看约束


举例:create table employee(

employee_id number(6),

first_name varchar2(20),

...

email varchar2(25),

salary number(8,2),

job_id varchar2(10) not null,

hire_date date not null,

constraint emp_emp_id_pk primary key(employee_id));

constraint emp_email_uk unique(email));


添加约束的语法:

使用alter table语句:

添加或删除约束,但是不能修改约束

有效化或无效化约束

添加not null约束要使用modify

alter table employee add constraint emp_manager_fk foreign key(manager_id) references employee(employee_id);


删除约束

alter table employee drop constraint emp_manager_fk;

alter table department drop primary key cascade;


无效化约束



静态数据字典:

User_*:当前用户拥有的对象信息;

All_*:当前用户能访问的对象信息;

Dba_*:数据库中所有的对象信息;


常用的静态数据字典

*_users,*_tables,*_objects。

例: select * from user_user --当前用户信息

select * from user_tables --当前用户表信息

select * from user_objects --当前用户的对象信息


常用的动态数据字典

数据库运行,不断更新,提供关于内存,磁盘运行的情况,只能读取不能修改。
以V$开头
V$session:当前会话信息。
V$sql:当前查询过的sql语句,访问过的资源与对象。
V$tablespace 表空间信息

常用约束

查询数据字典视图 user_constraints

select constraint_name,constraint_type,serarch_condition from user_constraints where table_name='EMPLOYEES';

查询数据字典视图 user_cons_columns

select constraint_name,column_name from user_cons_columns where table_name='EMPLOYEES';




Oracle 约束是用来保证数据完整性和一致性的规则。它们定义了对中数据的限制,以确保数据的有效性和一致性。 在 Oracle 中,常见的约束包括: 1. 主键约束(Primary Key Constraint):主键约束唯一标识中的每一行数据,并确保主键列的值不为空。 2. 唯一约束(Unique Constraint):唯一约束保证中指定列或列的组合的值是唯一的,但可以包含空值。 3. 外键约束(Foreign Key Constraint):外键约束定义了之间的关系,保证一个中的外键列的值必须在另一个的主键列中存在。 4. 非空约束(Not Null Constraint):非空约束确保指定列的值不为空。 5. 检查约束(Check Constraint):检查约束定义了对中数据的额外条件,只有满足条件的数据才能插入或更新到中。 要在创建时添加约束,可以使用 CREATE TABLE 语句的 CONSTRAINT 子句。例如: ```sql CREATE TABLE employees ( emp_id NUMBER PRIMARY KEY, emp_name VARCHAR2(50) NOT NULL, dept_id NUMBER, salary NUMBER, CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id), CONSTRAINT chk_salary CHECK (salary > 0) ); ``` 这个例子创建了一个名为 employees 的,其中包含主键约束(emp_id 列)、非空约束(emp_name 列)、外键约束(dept_id 列引用 departments 的 dept_id 列)和检查约束(salary 列的值必须大于 0)。 除了在创建时定义约束,还可以使用 ALTER TABLE 语句来添加、修改或删除约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值