oracle逐步学习总结之约束(基础五)

 原创作品,转自请在文章明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10167717.html

oracle中的约束主要有非空约束(not null)、唯一性约束(unique)、主键约束(primary key)和检查约束(check)。

一、not null:指定在该列的数据不能为null,插入数据时,必须有数据,否则不容许插入

二、unique:指定在该列的数据不能重复,是唯一值,但是容许为null

三、primary key :指定该列的数据不能重复,同时其数据也不能为null,一张表只能有一个primary key,但是可以有多个unique

四、check:指定在该列的数据必须在check所设定的范围或者类型,否则,不能保存数据

接下来根据一个案例,使用上面的所有约束,要求如下:

首先根据要求使用命令行建表:

其次,可以直接使用sqlplus建表(操作简单,此处略)

在以上要求得基础上,增加限制,要求如下:

1、限定商品名不能为空

2、增加身份证号不能重复的约束

3、增加客户住址限定,只能在某几个指定的地方

4、删除约束

alter table 表名 drop constraint 约束名

5、显示约束信息:查看数据字典视图:user_constraints就可以(或者直接plsql查看)

此处注意区别表级定义和列级定义:

列级定义:在定义列的同事定义约束

表级定义:在定义了所有列后,再定义约束,注意:not null 只能在列级定义上。

约束就先总结到这里,下次接着总结索引!

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

基于Apache DBUtil、Druid、MySQL与java.util.Scanner的 新闻管理系统【控制台版】

新闻管理系统【控制台版】1.数据库创建,创建新闻表news1.1表结构如下:1.2表创建的SQL语句使用逻辑库imoocUSEimooc;创建数据表news/primarykey表示主键|autoincrement表示自增|COMMENT''表示备注NOTNULL表示非空|UNIQUE表示唯一约束/CREA

sqlserver2005创建唯一约束的方法

对于一个表中非主键列的指定列,唯一(UNIQUE约束|:强制非主键上的实体完整性的约束。UNIQUE约束确保未输入重复值,并创建一个索引以增强性能。)约束确保不会输入重复的值。例如,在employee表中emp\_id列是主键,可以定义一个唯一约束来要求表中社会安全号码(ssn)列的项是唯一的。在数据库关系图中,可以使用"索引/键"属性页创建、

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

oracle逐步学习总结之约束(基础五) - HelloWorld