oracle建表的列级约束和表级约束
时间: 2023-11-19 21:06:54 浏览: 46
Oracle中有两种类型的约束,分别是列级约束和表级约束。
列级约束是指在创建表的时候,对表中某一列进行限制,例如:
- PRIMARY KEY:主键约束,用于唯一标识一条记录。
- UNIQUE:唯一约束,用于保证该列的值唯一。
- NOT NULL:非空约束,用于保证该列的值不为空。
- CHECK:检查约束,用于对该列的值进行条件限制。
表级约束是指在创建表的时候,对整张表进行限制,例如:
- PRIMARY KEY:主键约束,用于唯一标识一条记录。
- UNIQUE:唯一约束,用于保证该列的值唯一。
- FOREIGN KEY:外键约束,用于保证该列的值与另一张表的某个列的值相对应。
- CHECK:检查约束,用于对该表的多个列的值进行条件限制。
需要注意的是,列级约束只能对该列进行限制,而表级约束可以对多个列进行限制。同时,列级约束只能在列定义时进行添加,而表级约束可以在创建表后进行添加。
相关问题
oracle建表并添加约束和索引
下面是一个示例Oracle建表语句,其中包括了添加约束和索引的语句:
```
CREATE TABLE employees (
employee_id NUMBER(6),
first_name VARCHAR2(20),
last_name VARCHAR2(25) CONSTRAINT nn_last_name NOT NULL,
email VARCHAR2(25) CONSTRAINT nn_email NOT NULL UNIQUE,
hire_date DATE DEFAULT SYSDATE,
job_id VARCHAR2(10),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
manager_id NUMBER(6),
department_id NUMBER(4),
CONSTRAINT pk_employee_id PRIMARY KEY (employee_id),
CONSTRAINT fk_department_id FOREIGN KEY (department_id)
REFERENCES departments (department_id),
INDEX ix_employee_name (last_name, first_name)
);
```
在上述代码中,我们创建了一个名为employees的表,并添加了以下内容:
- employee_id、first_name、last_name、email、hire_date、job_id、salary、commission_pct、manager_id和department_id列以及其相应的数据类型。
- nn_last_name约束,该约束确保last_name列不为空。
- nn_email约束,该约束确保email列不为空,并且唯一。
- hire_date列的默认值为当前日期。
- pk_employee_id主键约束,该约束将employee_id列指定为主键。
- fk_department_id外键约束,该约束确保department_id列中的值在departments表中存在。
- ix_employee_name索引,该索引用于加速按last_name和first_name列查询的速度。
当然,以上只是一个示例,实际情况会因实际需求而异。例如,你可能需要添加更多的列、约束和索引。
Oracle怎么创建检查表级约束
在Oracle中,可以使用CREATE TABLE语句来创建检查表级约束。检查表级约束用于限制表中某个列的取值范围。下面是一个示例:
```sql
CREATE TABLE 表名 (
列名 数据类型,
...
CONSTRAINT 约束名 CHECK (条件)
);
```
其中,表名是要创建约束的表的名称,列名是要应用约束的列的名称,约束名是约束的名称,条件是约束的条件。
例如,要在表"employees"的"salary"列上创建一个检查约束,要求薪水必须大于等于0,可以使用以下语句:
```sql
CREATE TABLE employees (
employee_id NUMBER,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
salary NUMBER,
CONSTRAINT positive_salary CHECK (salary >= 0)
);
```
这将在"employees"表上创建一个名为"positive_salary"的检查约束,确保"salary"列的值大于等于0。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)