约束(Constraint)SQL约束有哪几种?【常用的约束】【有例子】【非空约束】【唯一约束】【主键约束】【外键约束】【检查约束】
常用约束
- 非空约束(not null):约束的字段不能为NULL;只有列级约束,没有表级约束(也就是说,只能约束某个字段值不为空);
- 唯一约束(unique):约束的字段不能重复;既有列级约束,也有表级约束;
- 主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK);既有列级约束,也有表级约束;
- 外键约束(foreign key):...(简称FK);
- 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束;
not null:只有列级约束,没有表级约束(也就是说,只能约束某个字段值不为空);
create table t_student(student_name varchar(25) not null, )
unique:既有列级约束,也有表级约束;
unique约束修饰的字段具有唯一性,不能重复。
但可以是NULL,NULL不是值,所以多个NULL不是重复
列级约束
create table t_user(id int,username varchar(255) unique);
多个字段联合起来添加1个约束unique 【表级约束】
create table t_user(id int,usercode varchar(255),username varchar(255),unique(usercode,username) );
主键约束:primary key:既有列级约束,也有表级约束;
主键相关的术语?
- 主键约束 : primary key
主键字段 : id字段添加primary key之后,id叫做主键字段
主键值 : id字段中的每一个值都是主键值。
主键特点:不能为NULL,也不能重复
一张表的主键约束只能有一个;
有表级约束也有列级约束
表级约束
create table t_user(id int,username varchar(255),primary key(id) );
列级约束
create table t_student()student_id int(10) primary key,
student_name varchar(20) not null,sex char(2) default 'm',birthday date,email varchar(30) ,classes_id int(3) )
主键值自增
drop table if exists t_user;create table t_user(id int primary key auto_increment, username varchar(255));
外键约束:foreign key
关于外键约束的相关术语:
- 外键约束: foreign key
- 外键字段:添加有外键约束的字段
- 外键值:外键字段中的每一个值。
外键可以为NULL;
如果表中某个字段为外键字段,则该字段的值必须来源参照表的主键;
外键主要是维护表之间的关系的,主要是为了保证参照完整性,如果表中的某个字段为外键字段,那么该字段的值必须来源于参照的表的主键。
顺序要求:
- 删除数据的时候,先删除子表,再删除父表。
- 添加数据的时候,先添加父表,在添加子表。
- 创建表的时候,先创建父表,再创建子表。
- 删除表的时候,先删除子表,在删除父表。
create table t_class(cno int,cname varchar(255),primary key(cno));create table t_student(sno int,sname varchar(255),classno int,primary key(sno),foreign key(classno) references t_class(cno));
级联更新与级联删除
- 父表中的数据更改,子表中的数据也会跟着变动。
- 父表中的数据删除,子表中的数据也会删除。
约束(Constraint)SQL约束有哪几种?【常用的约束】【有例子】【非空约束】【唯一约束】【主键约束】【外键约束】【检查约束】相关推荐
- SQL的主键和外键约束
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...
- SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建
文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...
- SQL Server的主键与外键约束
SQL Server的主键与外键约束SQL Server有许多的重要知识,开始也说过许多的SQL知识了.SQL Server中的约束也是一个重要性的知识,下面我来说说关于SQL Server约束的知识 ...
- 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...
- mysql外键_MySQL外键约束(FOREIGN KEY)
MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用.对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表). 外键用 ...
- mysql 未能启用约束_未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。...
来源:http://www.cnblogs.com/JuneZhang/archive/2013/01/10/2853981.html 今天运行项目,提示"未能启用约束.一行或多行中包含违反 ...
- 数据库元数据数据字典查询_5_列出给定表的主键、外键约束
列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...
- 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
来源:http://www.cnblogs.com/JuneZhang/archive/2013/01/10/2853981.html 今天运行项目,提示"未能启用约束.一行或多行中包含违反 ...
- MySQL设置主键、联合主键、外键、唯一约束、非空约束、默认约束
MySQL登录.查看记录等基本操作 MySQL设置表的属性值自动增加 auto_increment 1.主键.联合主键.外键 1.什么是主键 主键是在多条记录中用于确定一条记录时使用的标识符.主键具备 ...
- templet 显示字段外键对应名_主外键和外键约束
主外键和外键约束 主键 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 . 外键 外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个 ...
最新文章
- python 简单trace 过滤处理
- 2012年最佳30款免费 WordPress 主题
- DataSet数据导入到Excel
- python mock server_python学习笔记6--mockserver
- 软件系统上线前演示剧本
- java 获取拼音_Java获取汉字对应的拼音(全拼或首字母)
- 虚拟机opnsense作为dhcp服务器,ESXI 与 OPNSense 配合
- 视频画面大小剪裁操作教程
- 俄罗斯技术宅教你如何花5万美元制作家用DNA测序仪
- 【NTL密码算法开源库-概述】
- Hibernate第九篇【组件映射、继承映射】
- Finger.02 - 搭建MQTT服务器
- 基于Springboot的学生信息管理系统
- 【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图
- 如何在Docker容器里开启fail2ban防止SSH暴力破解
- A review of 3D vessel lumen segmentation techniques: Models, features and extraction schemes
- 深度学习--超参数(持续更新)
- 腾讯会议突围背后:端到端实时语音技术是如何保障交流通畅的?
- 习题4-5 换硬币 (20分)
- STL源码剖析-第一章STL概论与版本简介