orcal - 约束
数据库约束
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 - 约束的更多相关文章
- ORCAL 数据库的约束以及SQL语言的四种类型
oracle数据库约束: 定义:要输入的这个值是一个什么样的值, 或者是哪个范围内的值 作用: 确保完整性, 确保精确性 1, 非空约束(not null) 记录一条信息的时候如果用户名和密码没有被记 ...
- 数据库之 MySQL --- 数据处理 之 表的约束与分页(七)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.约束 :为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制 ...
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- ASP.NET Core的路由[5]:内联路由约束的检验
当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...
- SQL 约束
先用设计器创建约束.再用代码创建约束.数据库约束是为了保证数据的完整性(正确性)而实现的一套机制见文件Employee.sql非空约束(选择复选框)主键约束(PK) primary key const ...
- mysql 外键约束备注
梳理mysql外键约束的知识点. 1.mysql外键约束只对InnoDb引擎有效: 2.创建外键约束如下: DROP TABLE IF EXISTS t_demo_product; CREATE TA ...
- 如果你发现mysql的外键约束不管用了
不知为何我机子上的mysql竟然默认关闭外键约束,导致我试了好多遍都可以插入非法值,以下语句可以开启约束 SET foreign_key_checks = 1; (0则关闭) 备忘
- C#的泛型的类型参数可以有带参数的构造函数的约束方式吗?
Review后看到标题让我十分羞愧自己语文功底太差,估计...请见谅......我还特地把这句写回开头了...... 问题 前天遇到的一个问题,所以在MSDN发了个问,刚也丰富了下问题,关于泛型的. ...
- Mysql增加、删除和修改列属性和约束,和一些有用的查询语句
最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧.添加表字段alter table` 表名称` add transactor varchar(10) ...
随机推荐
- 微信小程序wx.navigateTo页面不跳转
排查后发现: 若是在全局app.json中配置了tabBar,引用的链接与wx.navigateTo页面跳转url地址相同就无法实现跳转.
- BUAA-OO第二单元小结
一.设计策略 三次作业中,由于前两次作业都只有一部电梯,因此我的线程只有两个,一个等待队列输入进程,以及一个电梯运行进程.等待队列输入进程实现十分简单,只需要根据输入把request添加到等待队列即可 ...
- github上传代码返回403错误
报错代码: **************** 表示上传的项目地址 remote: Permission to Jayson00/camera.git denied to Minelinkinpar ...
- 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 ...
- 【转载】Office软件自定义功能区不完全显示修复方法
转载地址:http://www.doudouxitong.net/guzhang/xitongjiqiao/2015/0603/8822.html 豆豆系统 Office是比较常用的办公软件,我们也会 ...
- A*搜索详解(2)——再战觐天宝匣
书接上文.在坦克寻径的,tank_way中,A*算法每一步搜索都是选择F值最小的节点,步步为营,使得寻径的结果是最优解.在这个过程中,查找最小F值的算法复杂度是O(n),这对于小地图没什么问题,但是对 ...
- MySQL高可用工具--orchestrator
orchestrator是一款MySQL高可用工具,其支持: 集群拓扑探测 集群拓扑重塑 故障恢复 提供3种使用方式: 命令行 HTTP API web页面 orchestator github地址
- javax.el.PropertyNotFoundException: Property 'XXX' not found on type bean.XXXXX
javax.el.PropertyNotFoundException: Property 'XXX' not found on type bean.XXXXX 先检查页面语法是否有问题,后在页面的el ...
- 6.824 LAB1 环境搭建
MIT 6.824 LAB1 环境搭建 vmware 虚拟机 linux ubuntu server 安装 go 官方安装步骤: 下载此压缩包并提取到 /usr/local 目录,在 /usr/l ...
- 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 +-+-+-+-+-+-+-+-+-+ ...