数据库约束
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. 如何清除SQLServer服务器名称、登录名等

    SQLServer 2008 R2清理方法: 找到下面路径:C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100 ...

  2. 对thinkphp5.0框架的实例学习

    不论是渗透测试还是代码审计的过程中会碰到用不同的框架搭建起来的网站,熟悉这些框架的基本原理,会帮助我们快速的理解漏洞原理,提高干活效率,所以自己本地搭了个php环境,来入门实例学习下thinkphp5 ...

  3. nginx ngx_http_image_filter_module 简单试用

    nginx包含了一个ngx_http_image_filter_module 模块,我们可以方便的进行图片的缩略图,平时一些简单的功能 已经够用了 环境准备 为了简单使用docker-compose ...

  4. npm run dev--The 'mode' option has not been set, webpack will fallback to 'production' for this value

    npm run dev时报警告: warning configurationThe 'mode' option has not been set, webpack will fallback to ' ...

  5. 西门子S7-300 PLC视频教程(百度网盘)

    西门子S7-300 PLC视频教程(百度网盘) 百度网盘链接地址: 链接:https://pan.baidu.com/s/1MqC0DJbv-ndCzk9XGU2AYQ 提取码:u5eq 祝大家天天开 ...

  6. Kettle解决方案: 第三章 安装和配置

  7. HTML5 拖放实例

    <!DOCTYPE HTML><html><head><meta charset="utf-8"> <title>菜鸟教 ...

  8. storm中的一些概念

    1.topology 一个topolgy是spouts和bolts组成的图,通过stream groupings将图中的spout和bolts连接起来:如图所示: 一个topology会一直运行知道你 ...

  9. windows环境下ElasticSearch6 安装head插件

    转: https://blog.csdn.net/shubingzhuoxue/article/details/80998738 https://blog.csdn.net/camelcanoe/ar ...

  10. html的换行代码<br/>介绍和写法

    在网页中,我们要对文字进行换行,就需要使用到<br/>标签,写法如下 换行:<br/> <br/>属于一个单独标签,仅需要将需要换行的文字后方加入此标签即可实现换行 ...