Oracle_数据库表的约束

完整性约束分类
域完整性约束 (非空not null,检查check)
实体完整性约束 (唯一unique,主键primary key)
参照完整性约束 (外键foreign key)
三种完整性约束的区别
域完整性约束:字段约束
实体完整性约束:行和行之间的约束

引用完整性约束:表和表之间的约束

 

实例:

--设计要求:
--建立一张用来存储学生信息的表
--字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息
 
 
--学号是主键
--姓名不能为空
--性别默认值是男
--年龄范围18至30岁

--Email唯一  

完整性约束
 
 
--完整性约束
--创建表时添加约束,也可以在修改表时添加约束
 
--主键约束 primary key
--联合主键(不能在列级别定义,因为一个表只允许有一个主键),只有多列同时相同的时候才算重复,多列都不允许为null
drop table stu;
create table stu(
       ),
       sname ),
       gender ),
       age ),
       enterdate date,
       clazz ),
       email ),
       --constraints pk_id primary key (id)    
       constraints pk_id primary key (id, sname)  

);  

 
 
--非空约束 not null, 只能在列级定义
drop table stu;
create table stu(
       ) primary key,
       sname )  not null,
       gender ),
       age ),
       enterdate date,
       clazz ),
       email ), 
       --constraints pk_id primary key (id)

);  

 
 
--唯一约束 unique
drop table stu;
create table stu(
       ) primary key,
       sname )  not null,
       gender ),
       age ),
       enterdate date,
       clazz ),
       email ), 
       --constraints pk_id primary key (id),
       constraints uk_email unique (email)

);  

 
 
--检查约束  check
drop table stu;
create table stu(
       ) primary key,
       sname )  not null,
       gender ) default '男' check(gender in('男','女')),
       age )  and 30),
       enterdate date,
       clazz ),
       email ) unique
       --constraints pk_id primary key (id),
       --constraints uk_email unique (email),
       --constraints ck_age check (age>=18 and age <=30)
);
 

insert,'阿三');  

 
 
--外键约束  foreign key
--先有主表dept,后有依赖表emp
drop table clazz;
create table clazz(
       ),
       cname ) not null,
       constraints pk_clazz_id primary key(id)
);
insert,'JavaEE班');
insert,'Android班');
insert,'iOS班');
insert,'UI班');
 
 
drop table stu;
create table stu(
       ),
       sname )  not null,
       gender ) default '男',
       age ),
       enterdate date,
       email ),
       cid ),
       constraints pk_stu_id primary key (id),
       constraints ck_stu_gender check(gender in ('男','女')),
        and 30),
       constraints un_stu_email unique (email),
       --constraints fk_stu_cid foreign key(cid) references clazz(id) on delete cascade--级联删除,将子表中相关项一起删除
       constraints fk_stu_cid foreign key(cid) references clazz(id) on delete set null--级联删除,将字表对应的列设置为null
);
 
insert,,);

insert,,);

 
delete;
 
 
select * from stu;

select * from clazz;

 
drop table clazz;--表中的主键/唯一键被引用
--强制将主键删除

drop table clazz cascade constraints;

 
 
--修改表的时候添加约束信息
drop table stu;
create table stu(
       ),
       sname ) not null,
       gender ) default '男', 
       age ),
       enterdate date,
       email ),
       clazz )
         
);
 
alter table stu add constraints pk_stu_id primary key (id);
alter table stu add constraints ck_stu_gender check(gender in ('男','女','妖'));
alter and 30);
alter table stu add constraints un_stu_email unique (email);
alter table stu rename column clazz to cid;
alter));
alter table stu add constraints fk_stu_cid foreign key(cid) references clazz(id) on delete cascade;
 
 
--删除约束  不能修改,只能删除约束

alter table stu drop constraints ck_stu_gender;  

sequence序列
 
 
--序列: sequence
--创建序列
create increment by 1;
 
--删除序列
drop sequence seq_stu_id;
 
 
--查看序列
 
 
insert into stu values (seq_stu_id.nextval, '小明1', '妖', 18, 
sysdate);
 

select * from stu;  

index索引
 
--索引: index
--创建索引
create index index_stu_sname on stu(sname);
--删除索引
drop index index_stu_sname;
 

select sname from student;

create index index_cname on clazz(cname desc);

select cname from clazz;  
  

 
 
 
 
 

 

Oracle_数据库表的约束的更多相关文章

  1. 数据库表的约束constraints

    数据库表的约束constraints 数据完整性约束 表的数据有一定的取值范围和联系,多表之间的数据有时也有一定的参照关系. 在创建表和修改表时,可通过定义约束条件来保证数据的完整性和一致性. 约束条 ...

  2. DDL创建数据库,表以及约束(极客时间学习笔记)

    DDL DDL是DBMS的核心组件,是SQL的重要组成部分. DDL的正确性和稳定性是整个SQL发型的重要基础. DDL的基础语法及设计工具 DDL的英文是Data Definition Langua ...

  3. MySQL 表的约束与数据库设计

    DQL 查询语句 排序 # 单列排序 * 只按某一个字段进行排序,单列排序 # 组合排序 * 同时对多个字段进行排序,如果第1个字段相等,则按照第2个字段排序,依次类推 * 语法: # 具体操作 * ...

  4. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

    Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...

  5. Python进阶----数据库引擎(InnoDB),表的创建,mysql的数据类型,mysql表的约束

    Python进阶----数据库引擎(InnoDB),表的创建,mysql的数据类型,mysql表的约束 一丶MySQL的存储引擎 什么是存储引擎:    MySQL中的数据用各种不同的技术存储在文件( ...

  6. 数据库之 MySQL --- 数据处理 之 表的约束与分页(七)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有)     1.约束 :为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制 ​ ...

  7. 数据库表结构设计方法及原则(li)

    数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满 ...

  8. 数据库(SQL Server)管理数据库表~新奇之处

    说到“数据库”,我总有一种莫名的感觉,在刚刚接触到的数据库中就让我似懂非懂渡过着,于是思考着.于是在冷静的时空中让我回想到了很多的知识,不知你们是怎样过来的,真心希望我的这篇数据库总结能够让我们都有一 ...

  9. C# 操作数据库表和数据库

    <1>c#创建数据库表: private void CreatTable(string name)      //创建数据库源数据表,name为表名 { con.ConnectionStr ...

随机推荐

  1. 正则表达式与grep

    一.回溯引用 1.将页面中合法的标题找出来,使用回溯引用匹配 (需要使用 -E 或 -P 来扩展grep语法支持) 2.查找连续出现的单词 二.前后查找 (grep 只能使用 -P 选项) 1. 向前 ...

  2. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  3. weex Mac开发环境

    安装: 1.java的jdk下载和安装 1-1.下载.安装:省略 1-2.配置 第一步:命令行内输入touch .bash_profile命令,生成.bash_profile的隐藏配置文件,用于配置j ...

  4. Mac下持久化路由配置

    缘由 mac 下有个小命令,networksetup,之前电脑装了IKEv2 的VPN,每天能正常FQ,由于所有流量都走了VPN隧道,导致了公司内部的其它网络无法访问得到,必须每次的来回拨VPN,断V ...

  5. 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用

    说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...

  6. thinkinginjava学习笔记03_基本语法

    由于java是c系语言,基本保留c语言的所有基本操作,就快速过一下: java中的基本操作符仅仅对基本类型有效:=.==.!=对所有对象有效(值传递),String类支持+.+=; 在对基本数据进行算 ...

  7. Swift3中数组创建方法

    转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...

  8. PE文件详解(九)

    本篇文章转载自小甲鱼的一篇日志,原文地址 我们知道,Windows 将程序的各种界面定义为资源,包括加速键(Accelerator).位图(Bitmap).光标(Cursor).对话框(Dialog ...

  9. 有关求任意一个正整数的n的因数的个数的求解思路

    已知条件:n=p1^a1xp2^a2xp3^a3........xpk^ak;求解n的因数的个数: 求解的主要思想:递归 设所有的因数的个数为U1: 则U1会等于什么呢? 不妨设求得p2^a2xp3^ ...

  10. mvc接口、webapi、webservice 对比

    最近做了很多项目,也同时使用了mvc的接口,webapi的接口,以及webservice 的接口.先两两对比如下: mvc和webapi区别: 1.MVC是建站的一种框架,倾向于返回用户的页面请求:a ...