数据库约束
1、非空约束
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20) not null,
email varchar2(30) ,
constraint pk_mid PRIMARY KEY(mid)
);
insert into member(mid,name,email)values(10,'李四','111')
2、唯一约束 null不受null约束 设置别名
UNIQUE,NK
查看约束
user_constraints;
CREATE TABLE member(
mid number,
name varchar2(20) not null,
email varchar2(30) ,
constraint uk_email UNIQUE(email)
);
3、主键约束
=唯一约束+非空约束
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20) not null,
email varchar2(30) ,
constraint pk_mid PRIMARY KEY(mid)
);
一般正常情况,一张只有一个主键
但也有符合主键
复合主键
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20) not null,
email varchar2(30) ,
constraint pk_mid_name PRIMARY KEY(mid,name)
);
4、检查约束(check,ck)
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20) not null,
email varchar2(30) ,
age number(3)
constraint ck_age CHeck(age between 0 and 250)
); insert into member(mid,name,email,age)values(10,'李四','111',330);
5、外键
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20) not null,
constraint pk_mid PRIMARY KEY(mid)
);
DROP TABLE book PURGE;
CREATE TABLE book(
bid number ,
title varchar2(20),
mid number,
constraint pk_bid PRIMARY KEY(bid),
constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
); insert into member(mid,name)values(10,'zs');
insert into member(mid,name)values(20,'lisi');
insert into member(mid,name)values(30,'wangwu');
insert into book(bid,title,mid)values(1,'java',10);
insert into book(bid,title,mid)values(2,'java1',20);
insert into book(bid,title,mid)values(3,'java2',30);
insert into book(bid,title,mid)values(44,'java2',40);
限制一:删除父表需要先删除子表
强制删除:不关注子表是否存在,父表直接删除
DROP TABLE member CASCADE CONSTRAINT;
限制二:外键在父类中必须为主键或唯一约束
限制三:默认情况下父类中在子类中有被使用的数据,不能被直接删除
数据级联删除
DROP TABLE book PURGE;
CREATE TABLE book(
bid number ,
title varchar2(20),
mid number,
constraint pk_bid PRIMARY KEY(bid),
constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
);
级联跟新
DROP TABLE book PURGE;
CREATE TABLE book(
bid number ,
title varchar2(20),
mid number,
constraint pk_bid PRIMARY KEY(bid),
constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE SET null
); 约束修改
DROP TABLE member PURGE;
CREATE TABLE member(
mid number ,
name varchar2(20)
); insert into member(mid,name) values(1,'张三'); 1/添加约束
ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段)[其他选项]
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid);
增加非空
ALTER TABLE member MODIFY(name varchar2(20) NOT null);
删除约束
ALTER TABLE member DROP CONSTRAINT pk_mid;

orcal - 约束的更多相关文章

  1. ORCAL 数据库的约束以及SQL语言的四种类型

    oracle数据库约束: 定义:要输入的这个值是一个什么样的值, 或者是哪个范围内的值 作用: 确保完整性, 确保精确性 1, 非空约束(not null) 记录一条信息的时候如果用户名和密码没有被记 ...

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

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

  3. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

  4. ASP.NET Core的路由[5]:内联路由约束的检验

    当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...

  5. SQL 约束

    先用设计器创建约束.再用代码创建约束.数据库约束是为了保证数据的完整性(正确性)而实现的一套机制见文件Employee.sql非空约束(选择复选框)主键约束(PK) primary key const ...

  6. mysql 外键约束备注

    梳理mysql外键约束的知识点. 1.mysql外键约束只对InnoDb引擎有效: 2.创建外键约束如下: DROP TABLE IF EXISTS t_demo_product; CREATE TA ...

  7. 如果你发现mysql的外键约束不管用了

    不知为何我机子上的mysql竟然默认关闭外键约束,导致我试了好多遍都可以插入非法值,以下语句可以开启约束 SET foreign_key_checks = 1; (0则关闭) 备忘

  8. C#的泛型的类型参数可以有带参数的构造函数的约束方式吗?

    Review后看到标题让我十分羞愧自己语文功底太差,估计...请见谅......我还特地把这句写回开头了...... 问题 前天遇到的一个问题,所以在MSDN发了个问,刚也丰富了下问题,关于泛型的. ...

  9. Mysql增加、删除和修改列属性和约束,和一些有用的查询语句

    最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧.添加表字段alter table` 表名称` add transactor varchar(10) ...

随机推荐

  1. 微信小程序wx.navigateTo页面不跳转

    排查后发现: 若是在全局app.json中配置了tabBar,引用的链接与wx.navigateTo页面跳转url地址相同就无法实现跳转.

  2. BUAA-OO第二单元小结

    一.设计策略 三次作业中,由于前两次作业都只有一部电梯,因此我的线程只有两个,一个等待队列输入进程,以及一个电梯运行进程.等待队列输入进程实现十分简单,只需要根据输入把request添加到等待队列即可 ...

  3. github上传代码返回403错误

    报错代码: ****************   表示上传的项目地址 remote: Permission to Jayson00/camera.git denied to Minelinkinpar ...

  4. How to run Python code from Sublime

    How to run Python Code from Sublime,and How to run Python Code with input from sublime Using Sublime ...

  5. 【转载】Office软件自定义功能区不完全显示修复方法

    转载地址:http://www.doudouxitong.net/guzhang/xitongjiqiao/2015/0603/8822.html 豆豆系统 Office是比较常用的办公软件,我们也会 ...

  6. A*搜索详解(2)——再战觐天宝匣

    书接上文.在坦克寻径的,tank_way中,A*算法每一步搜索都是选择F值最小的节点,步步为营,使得寻径的结果是最优解.在这个过程中,查找最小F值的算法复杂度是O(n),这对于小地图没什么问题,但是对 ...

  7. MySQL高可用工具--orchestrator

    orchestrator是一款MySQL高可用工具,其支持: 集群拓扑探测 集群拓扑重塑 故障恢复 提供3种使用方式: 命令行 HTTP API web页面 orchestator github地址

  8. javax.el.PropertyNotFoundException: Property 'XXX' not found on type bean.XXXXX

    javax.el.PropertyNotFoundException: Property 'XXX' not found on type bean.XXXXX 先检查页面语法是否有问题,后在页面的el ...

  9. 6.824 LAB1 环境搭建

    MIT 6.824 LAB1 环境搭建 vmware 虚拟机 linux ubuntu server   安装 go 官方安装步骤: 下载此压缩包并提取到 /usr/local 目录,在 /usr/l ...

  10. RTP协议

    RTP协议格式: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+ ...