Oracle 表约束

1.创建表:
CREATE TABLE student
(s_id        NUMBER,
 s_name      VARCHAR2(30),
 s_sex       VARCHAR2(10),
 s_age       NUMBER,
 s_birthday  VARCHAR2(15),
 s_phone     VARCHAR2(11),
 s_addr      VARCHAR2(40)
 s_country   VARCHAR2(30),
 s_email     VARCHAR2(30)
 s_sal       NUMBER);
 
 2.添加约束:
 
ALTER TABLE student     --主键约束
ADD CONSTRAINT pk_id PRIMARY KEY(s_id);

ALTER TABLE student      --取值唯一性约束
ADD CONSTRAINT unique_phone UNIQUE(s_phone);

ALTER TABLE student     --非空约束
ADD CONSTRAINT null_id CHECK(s_id IS NOT NULL);

ALTER TABLE student       --检查约束
ADD CONSTRAINT chk_sex CHECK(s_sex='male' OR s_sex='female');
或者
ALTER TABLE student
ADD CONSTRAINT chk_sex CHECK (s_sex IN ('meal', 'femeal'));

3.添加新字段后:
SQL> DESC student
Name       Type         Nullable Default Comments 
---------- ------------ -------- ------- -------- 
S_ID       NUMBER                                 
S_NAME     VARCHAR2(30) Y                         
S_SEX      VARCHAR2(10) Y                         
S_AGE      NUMBER       Y                         
S_BIRTHDAY VARCHAR2(15) Y                         
S_PHONE    VARCHAR2(11) Y                         
S_ADDR     VARCHAR2(40) Y                         
S_COUNTRY  VARCHAR2(20) Y                         
S_EMAIL    VARCHAR2(30) Y                         
S_SAL      NUMBER       Y      

4.取消s_id字段的非空约束:
ALTER TABLE student
DROP CONSTRAINT null_id;

5.查看表的约束字段和类型:
SQL> SELECT constraint_name,constraint_type FROM user_constraints
  2  WHERE table_name='student';    --   table_name='student';
 
CONSTRAINT_NAME                CONSTRAINT_TYPE
------------------------------ ---------------
 
SQL> COMMIT;
 
Commit complete
 
SQL> SELECT constraint_name, constraint_type FROM user_constraints
  2  WHERE table_name='STUDENT';         -- table_name='STUDENT';
 
CONSTRAINT_NAME                CONSTRAINT_TYPE
------------------------------ ---------------
PK_ID                          P
UNIQUE_PHONE                   U
CHK_SEX                        C
UNIQUE_MAIL                    U
CHK_SAL                        C

--提示,在条件语句WHERE中,表明必须大写。
SQL> SELECT constraint_name, constraint_type FROM user_constraints
  2  WHERE table_name='STUDENT'
  3  ORDER BY constraint_name ASC;
 
CONSTRAINT_NAME                CONSTRAINT_TYPE
------------------------------ ---------------
CHK_SAL                        C
CHK_SEX                        C
PK_ID                          P
UNIQUE_MAIL                    U
UNIQUE_PHONE                   U


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、付费专栏及课程。

余额充值