oracle中的约束
数据完整性
数据库不仅仅是存储数据,它也必须保证所保存的数据的正确性。如果数据不正确或不一致,那么该数据的完整性可能会遭到破坏,从而给数据库本身的可靠性带来意想不到的问题。
为了维护数据库中的数据完成性,在创建表时通常需要指定一些约束。通过表中的字段(列)定义约束,就可以防止非法数据的插入问题.对约束的定义可以再create table语句中进行,也可以在alter table语句中进行。
什么是约束呢?
约束是表级的强制规定.根据约束的作用域,约束又可分为表级约束和列级约束两种。
列级约束是指是字段定义的一部分,只能够应用在一个列上.
表级约束是指独立于列的定义,可以应用于一个表中的多个列上。
在oracle系统中定义约束时,通过constraint关键字为约束命名,如果用户没有为约束指定名称,系统会自动建立默认的名称。
总结:
备注:在定义约束时,可以通过指定enable或disable关键字将约束的初始状态设置为激活或禁用状态,默认是激活状态。
定义约束的语法格式1:
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr]
[column_constraint],
...
[table_constraint][,...]);
列级约束:
column [CONSTRAINT constraint_name] constraint_type,
表级约束
column,...
[CONSTRAINT constraint_name] constraint_type
(column, ...),
约束的分类为:
-
NOT NULL
-
UNIQUE
-
PRIMARY KEY
-
FOREIGN KEY
-
CHECK
1、 Not null
如下:
2、 unique
特点如下:
-
如果为字段定义了unique约束,该字段不能够包含重复值
-
unique约束既可以在列级定义,也可以在表级定义。
-
在oracle系统中被定义的unique约束会自动建立一个唯一的索引。
-
同一个字段既可以在其上定义为not null 也可以建立unique约束,(为某个字段可以添加多个约束),注意:如果在一个字段仅定义了unique约束,则该字段可以包含多个null值
Unique主要的目的是:是在保证主键列外,其它列的唯一性。
3、 primary key
特点如下:
-
定义为primary key的字段或字段组中不能包含重复值,并且不能为null值.(即满足唯一性,不能为空)
-
在一个表中只能定义一个primary key的约束
-
Oracle会自动为具有primarykey约束的字段添加一个唯一的索引,以及一个not null约束
4、 foreign key
特点如下:
-
被定义了foreign key约束的字段的取值只能为相关表中引用的字段的值或null值。
-
foreign key约束既可以在列级定义,也可以在表级定义。
-
定义了foreign key约束的外键字段和被引用的主键字段可以在同一张表中,这种情况称为:’自引用’(构成了自关联关系)
-
对于同一个字段可以同时定义为foreign key约束和not null约束。
注意:外键的类型、尺寸等一定要与主键完全一致。
备注:
在oracle中级联删除有如下三值:
-
no action 在删除一方的情况下,对多方不进行任何操作.(不能删,删的情况会出现, 违反完整约束条件的异常信息)
-
cascade 在删除一方的时,会把多方所有与1方关联的数据删除掉。
-
set null在删除一方的时,会把多方所有与1方关联的数据的字段值设置为null(注意:该字段必须允许为null 否则的话会出现无法更新***为 NULL)。
5、 check
check约束是所有约束中最灵活的约束,也是最复杂的约束,check约束检查输入到表中的数据值来维护域的完整性,即检查输入的每一个数据,只有符合条件的数据才允许输入到表中.check约束有如下特点:
-
在check约束的表达式中,必须引用表中一个或多个字段,并且表达式的运算结果必须是一个布尔值.
-
Check约束即可以在列级定义,也可以在表级定义
-
对于同一个字段可以定义多个check约束,而且对于同一个字段可以定义check约束和not null约束。
SQL> create table stu(
2 sname varchar2(20) primary key,
3 stel varchar2(11) not null,
4 semail varchar2(40),
5 saddress varchar2(50)
6 );
Table created
SQL> create table teacher(
2 tname varchar2(20) primary key,
3 tsex varchar2(2),
4 ttitle varchar2(40),
5 tage number(3) check(tage<100 and tage>20)
6 );
Table created
SQL> create table stear(
2 sid number(10) primary key,
3 tname varchar2(20) references teacher(tname),
4 sname varchar2(20) references stu(sname)
5 );
Table created
SQL> commit;
分享到:
相关推荐
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
oracle-database-server-12cR2-preinstall-1.0-3.el7.x86_64.rpm
oracle-rdbms-server-11gR2-preinstall-1.0-4.el7.x86_64.rpm
Oracle 数据库提供了多种类型的约束,包括 NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY 和 CHECK 约束。 NOT NULL 约束用于确保某列不能为空,例如,在 customers 表的 name 列上定义 NOT NULL 约束,以确保每个...
Oracle Database Server...总结一下,Oracle Database Server 12cR2 Preinstall是Oracle数据库在Linux环境中快速、高效部署的重要工具,它简化了系统准备阶段,确保了安装的顺利进行,是企业级数据库管理者的得力助手。
c3p0-oracle-thin-extras-0.9.2.1
4. **PRIMARY KEY约束**:作为表的唯一标识符,结合了UNIQUE和NOT NULL约束的特性,且每个表最多只能有一个。 5. **FOREIGN KEY约束**:用于建立表之间的引用关系,确保子表中的外键值在父表的主键或唯一键中存在。 ...
cx_Oracle-5.1.3-11g.win-amd64-py2.7.exe Python 2.7 lib for Oracle 11g.
在Oracle中,约束是定义在表上的规则,用于限制可以存储在表中的数据类型和值。以下是对Oracle中各种约束的基本语法的详细解释: 1. **主键约束(Primary Key)**: - 主键约束用于标识表中的唯一记录,通常由一个...
centos6静默安装oracle,centos7静默安装oracle,oracle11g,linux安装oracle,一键自动安装oracle脚本
oracle11g-client-win-64客户端安装包
Oracle提供了多种类型的约束,包括但不限于NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY和CHECK等。 #### NOT NULL 约束 NOT NULL约束用于确保表中的某一列不能包含空值。例如,在创建表时可以指定某列不能为NULL...
Oracle提供了五种完整性约束:Check、NOT NULL、Unique、Primary key和Foreign key。这些约束可以单独使用,也可以组合使用以满足不同的商业规则。 第一、Check约束 Check约束是一种规则,用于增强表中数据内容的...
Check,Unique,Primary key,not null,Foreign key)。 示例: create table stu( s_id number(8) PRIMARY KEY, s_name varchar2(20) not null, s_sex varchar2(8), clsid number(8), constraint u_1 unique(s_name), ...
内置约束.pdf** - 内置约束是数据库中用来保证数据完整性的规则,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY等。这部分将介绍如何在创建表时定义这些约束,以及如何在后期添加或修改约束,以确保数据的准确性和...
约束包括NOT NULL(非空约束)、UNIQUE(唯一约束)、PRIMARY KEY(主键约束)和FOREIGN KEY(外键约束)。 4. SQL查询:SQL(结构化查询语言)是与Oracle交互的主要工具,包括SELECT语句用于查询数据,INSERT用于...
本文将详细介绍五种常用的约束类型:非空约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY)、外键约束(FOREIGN KEY)和检查约束(CHECK),并给出具体的创建和管理这些约束的方法。 #### 1. 非空...
约束可以分为多种类型,包括主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)以及检查(CHECK)约束。本文将重点讨论在Oracle数据库中如何创建外键约束,同时也会提及其他类型的约束。 ...
在Oracle数据库中,约束是用于确保数据完整性的规则或规定,它们定义了表中的数据必须遵循的特定条件。约束可以在创建表时定义,也可以在表已经存在后通过修改表结构来添加。以下是对Oracle数据库中四种主要约束类型...
在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的字段上,用来限制存储在表中的数据类型。通过实施约束,我们可以确保数据的质量,并避免错误的数据输入,...