mysql 5个约束条件_数据库中的五大约束条件
数据库中的约束条件,在数据库中使用约束条件可以定义规则使得数据能够朝我们希望的方向发展,也就是可以保证数据的完整性。在数据库中有五大约束条件,分别为主键约束,非空约束,唯一约束,检查性约束,外键约束。
1)主键约束(primary key)
主键约束通常都是在id字段上使用,它有两个特点,不能为空,不能重复。
例如:create table p(
uid number(20) primary key,
uname varchar2(6)
//主键也可以自己指定
constraint primary_key_name primary key (uid)
);
2)非空约束(not null)
非空约束,就是保证一个字段不能为空,不能有空值存在,如果插入空值,则会报错。
3)唯一约束(unique)
如果想让某个字段唯一,则为它加上unique唯一约束,当插入了相同的值时会报错。
例如:create table p3(
uname varchar2(6) unique,
uid number(10) primary key
//唯一约束也可以自定义
constraint unique_name unique(字段)
);
4)检查性约束(check (字段名 in (一个合法范围)))
使用检查性约束可以用来约束某个字段值的合法范围。例如用1表示男,2表示女。
create table p4(
gender number(1) check (gender in(1,2)),
//检查约束也可以自己指定
constraint check_name check(字段 in(1,2))
);
5)外键约束
外键约束用于两张表之间,用来保证关联数据的完整性。例如订单和订单明细表,一对多关系。
创建订单表:
create table orders(
order_id number(10),
total_price number(10,2),
order_time date,
constraint orders_order_id_pk primary key (order_id)
);
创建订单明细表:
create table order_detail(
detail_id number(10),
order_id number(10),//在order表中是主键
item_name varchar2(10),
quantity number(10),
constraint order_detail_detail_id_pk primary key (detail_id),
constraint order_detail_order_id_fk foreign key (order_id) referencs orders(order_id)|on delete cascade|on update cascade
);
外键关联时要注意的是:1.外键一定是主表的主键,2.删除表时要先删子表在删主表。
可以强制删除,而不用管约束条件:drop table orders cascade constraint;
可以使用级联更新和级联删除,这样在主表中进行更新或者删除操作,子表中的数据也会保证同步更新或者删除。on delete cascade|on update cascade。
mysql 5个约束条件_数据库中的五大约束条件相关推荐
- mysql 中文数字转换_数据库中数字和中文的转换问题
public class DaoUtil{ /** * 系统字典表 * 适用于列表循环时,根据编码获取汉字 * @param appdicid * @return */ public static H ...
- mysql block是什么_数据库中block代表什么意思?
数据库中block代表什么意思? 发布时间:2020-04-01 10:47:37 来源:亿速云 阅读:182 作者:小新 随着互联网的发展,越来越多的的人进入了IT行业,那么数据库中block代表什 ...
- mysql表的组成_数据库中的数据表由什么组成?
在数据库中,数据表是由表名.表中的字段和表的记录三个部分组成的.在建立表之前都必须先设计它的结构,表结构描述了一个表的框架.设计表结构实际上就是定义组成一个表的字段个数,每个字段的名称.数据类型和长度 ...
- mysql数据归档原则_数据库中的归档是什么意思?
若干套 MySQL 环境,只有一套: ∘ 行为异常,怀疑触发 bug ∘ 性能异常,比其他环境都要低 在这种场景下,我们一般的做法是首先控制变量,查看软硬件配置,以及 MySQL 的参数配置.关于 M ...
- mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
Left Join / Right Join /inner join相关 关于左连接和右连接总结性的一句话: 左连接where只影向右表,右连接where只影响左表. Left Join select ...
- MySQL unique啥意思_数据库中unique是什么意思
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- java mysql不重复读写_数据库中的-脏读,幻读,不可重复读[转] - Java天空 - BlogJava...
数据库带来的并发问题包括: 1.丢失或覆盖更新.(幻像读) 2.未确认的相关性(脏读). 3.不一致的分析(非重复读). 详细描述如下: 一.丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值 ...
- mysql大于等于怎么写_数据库中大于等于0小于等于100怎样表达
展开全部 大于等于52610小于等于100,表达式为X>=0 and X<=100,4102或者用另一种写法1653X between 0 and 100: 举例如下:版 1.创建测试表, ...
- NodeJS同步MySQL上游数据到ElasticSearch数据库中
NodeJS同步MySQL上游数据到ElasticSearch数据库中 项目地址: https://github.com/Miazzy/xdata-elasticsearchs-service.git ...
最新文章
- 营销自动化为什么能吸引企业的喜欢?它有何魅力?
- ssh配置公钥_如何使用公钥认证免密码ssh远程登录Linux服务器
- 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
- Leetcode-520. 检测大写字母
- uva 12589——Learning Vector
- linux安装apache+mysql+php3.8练习环境
- 触发C#Button的双击事件
- 与计算机相关的线性代数题,2007级计算机123班线性代数复习题及答案.doc
- 《Python黑帽子》学习笔记
- 网络工程毕业设计之--校园网络规划与设计
- VS2017生成可执行程序,执行提示“不是有效的win32应用程序”
- 函数的正交与向量正交
- 墨尔本python培训班_墨的解释|墨的意思|汉典“墨”字的基本解释
- 房贷还款方式等额本息等额本金比较和这两种提前还款的区别
- 无人值守自动称重系统的组成和结构
- 苹果8a1660是什么版本_苹果A1660是什么型号?
- 西门子1200PLC程序恒压供水系统
- FII-PRA006/010开发板硬件实验一
- 内网接入外网的几种方式
- css自定义盒子形状及动画应用