1. 定义主键约束

1.1 在创建表时定义主键约束

create table student
(
name varchar2(8),
studentid varchar2(10) primary key,
sex char(2)
);

1.2 创建表后,使用alter table命令添加约束

1.2.1 创建表

create table student
(
name varchar2(8),
studentid varchar2(10),
sex char(2)
);

1.2.2 添加主键约束

alter table student
add constraint pk_student primary key(studentid);

其中 constraint pk_student 用于给该主键约束定义名称(可省略)

其中 pk_student   为约束名,用于修改约束,

例如:删除该主键约束

alter table student

drop constraint pk_student  ;

2 定义not null约束

not null 约束只能定义为列级约束

2.1 在创建表时定义not null约束

同样的not null约束可以在创建表时定义

eg:

create table tset
(
name varchar2(8) NOT NULL,
studentid varchar2(10) primary key,
sex char(2)
);

2.2 创建表后,在修改表添加not null约束

2.2.1 创建表

create table tset
(
name varchar2(8),
studentid varchar2(10) primary key,
sex char(2)
);

2.2.2添加not null约束

alter table test modify name not null;

3 定义唯一性 unique约束

唯一性约束是指:被约束的字段不能出现重复输入的值

唯一性与逐渐的区别:

(1)unique一个表可以定义多个,而primary key 一个表只能定义一个

(2)unique允许被约束的字段为空,而primary key不允许为空

3.1 创建表示定义unique约束

create table test
(
name varchar2(8) NOT NULL,
studentid varchar2(10) primary key,
sex char(2),
idnum char(18) unique
);

3.2创建表后,为表添加unique约束

3.2.1 创建表

create table test
(
name varchar2(8) NOT NULL,
studentid varchar2(10) primary key,
sex char(2),
idnum char(18)
);

3.2.2 添加约束

alter table test

add constraint un_idnum unique(idnum);

4 定义检查check约束

检查约束用来指定某列的可取值得范围,只有符合条件的值才能输入到表中

4.1 在创建表时定义check

create table test
(
name varchar2(8) NOT NULL,
studentid varchar2(10) primary key,
sex char(2) constraint ch_sex check(sex in ('男','女')),
idnum char(18)
);

4.2.1 创建表

create table test
(
name varchar2(8) NOT NULL,
studentid varchar2(10) primary key,
sex char(2),
idnum char(18)
);

4.2.2 添加检查约束

alter table test add constraint ch_sex

check(sex in('男','女'));

5 定义外键约束

5.1 创建表示定义外键

5.1.1 在定义字段时定义外键

create table course
(
id varchar2(10) primary key,
classname varchar2(10),
studentid VARCHAR2(10) references test(studentid)
)

5.1.2  定义字段后,再定义外键

create table course
(
id varchar2(10) primary key,
classname varchar2(10),
studentid VARCHAR2(10),
constraint fk_course foreign key(studentid) references test(studentid)
);

*************注意两种方式的区别*****************

5.2 通过alter table 命令创建外键约束

alter table course

add constraint fk_course foreign key(studentid) references test(studentid);

oracle 定义数据完整性的更多相关文章

  1. SQL Server-数据库架构和对象、定义数据完整性(二)

    前言 本节我们继续SQL之旅,本节我们如题来讲讲一些基本知识以及需要注意的地方,若有不妥之处,还望指出,简短的内容,深入的理解,Always to review the basics. 数据库架构和对 ...

  2. SQL Server-数据库架构和对象、定义数据完整性

    前言 本节我们继续SQL之旅,本节我们如题来讲讲一些基本知识以及需要注意的地方,若有不妥之处,还望指出,简短的内容,深入的理解,Always to review the basics. 数据库架构和对 ...

  3. Oracle数据库 数据完整性和DML语句

    数据完整性和DML语句 数据完整性 数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability).它是应防止数据库中存在不符合语义规定的数据和防止 ...

  4. 问题:oracle DECLARE 变量重复利用;结果:Oracle 定义变量总结

    首先,当在cmd里办入scott密码提示错误时,可以这样改一下,scott的解锁命令是: 以system用户登录:cmdsqlplus system/tigertigeralter user scot ...

  5. Oracle 定义变量总结

    首先,当在cmd里办入scott密码提示错误时,可以这样改一下,scott的解锁命令是: 以system用户登录:cmdsqlplus system/tigertigeralter user scot ...

  6. Oracle定义varchar2()类型存储汉字的长度问题

    varchar2最大是4000字节,那么就看你的oracle字符集:(select userenv('language') from dual;)如果字符集是16位编码的,ZHS16GBK,那么每个字 ...

  7. Oracle定义两个变量,并对两个变量的值的长度进行判断

    这个例子其实很简单,但是往往简单的东西如果不用心就会漏洞百出,简单的一个逻辑判断,是为了给复杂逻辑判断做出铺垫 语法格式: if<condition_expression> then pl ...

  8. Oracle定义常量和变量

    1.定义变量 变量指的就是可变化的量,程序运行过程中可以随时改变其数据存储结构 标准语法格式:<变量名><数据类型>[(长度):=<初始值>] 示例: declar ...

  9. oracle 定义临时表

    创建Oracle 临时表,可以有两种类型的临时表: 会话级的临时表 事务级的临时表 . 1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有关系, 当你当前SESSION不退出的情况下,临时表 ...

随机推荐

  1. [有向图的强连通分量][Tarjan算法]

    https://www.byvoid.com/blog/scc-tarjan 主要思想 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的 ...

  2. 【二分答案】【POJ3122】【Northwestern Europe 2006】Pie

    Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10629   Accepted: 3744   Special Ju ...

  3. 百度搜索附近加盟店等基于LBS云搜索功能的实现

    一.注册百度账号,进入开发者平台 创建应用并获取ak 地址如下 http://lbsyun.baidu.com/apiconsole/key/update?app-id=7546025 ok获取到了. ...

  4. andrid中的Sqlite 数据库连接(本地版)

    sqlite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前 ...

  5. SQL Server服务启动失败,错误代码:10048

    今天打开电脑后遇到了一个奇葩的问题,启动Sql Server服务时,出现如下图所示错误:

  6. SQL查询语句47题

    select * from student select * from score --select * from grade select * from course select * from t ...

  7. 单链表(Single Linked List)

    链表的结点结构  ┌───┬───┐  │data|next│  └───┴───┘ data域--存放结点值的数据域 next域--存放结点的直接后继的地址(位置)的指针域(链域) 实例:从终端输入 ...

  8. iOS中的下载管理器(支持断点续传)

    在空闲时间自己编写了一个简单的iOS下载管理器.该管理器实现如下功能: 1.能够支持正常的下载,暂停,继续操作. 2.支持断点续传,实现暂停执行继续操作后,依然能正常将文件下载完成. 3.实现实时状态 ...

  9. MVC和传统的以模板为中心的web架构比较

    特性 以模板为中心 MVC架构 页面产生方式 运行并替换标签中的语句 由模板引擎生产HTML页面 路径解析 映射到文件系统路径,也可以通过rewrite等技术来重定向 由控制器定义,并可以通过路由系统 ...

  10. javascript 算法

    前段时间学习算法方面的知识看了一下用C语言写的一些简单的算法自己用js模拟实现一遍现在整理出来和大家分享一下. 河内塔 斐波那契数列 巴斯卡三角形 三色棋 河内之塔(Towers of Hanoi)是 ...