Mysql数据库---约束类型_MySQL约束类型及举例介绍
约束
约束保证数据的完整性和一致性
约束分为表级约束和列级约束
约束类型包括:NOT NULL (非空约束),PRIMARY KEY(主键约束),UNIQUE KEY(唯一约束),DEFAULT(默认约束),FOREIGN(外键约束)
1.主键约束
PRIMARY KEY
每张数据表只能存在一个主键
主键保证记录的唯一性,主键的值不重复
主键自动为 NOT NULL
举例,创建一张student表,将学号设置为主键创建完表之后,通过SHWO COLUMNS FROM student查看表结构
CREATE TABLE student(
id int PRIMARY KEY,
stu_name varchar(20)
);
2.唯一约束
UNIQUE KEY
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束
举例,创建一个teacher表,id字段自增,tea_name唯一
CREATE TABLE teacher(
id int AUTO_INCREMENT PRIMARY KEY,
tea_name varchar(20) NOT NULL UNIQUE KEY
);
3.默认约束
DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
举例,创建一张course表,默认上课时间为40分钟
CREATE TABLE course(
id int AUTO_INCREMENT PRIMARY KEY,
cou_name varchar(20) NOT NULL UNIQUE KEY,
time int DEFAULT 40
);
INSERT INTO course(cou_name) values('语文');
4.非空约束
NOT NULL
强制列不能为 NULL 值,约束强制字段始终包含值。
这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
举例,在 "Persons" 表创建时在 Id列、name列创建 not null 约束:
create table Persons(
id int not NULL,
p_name varchar(20) not null,
deparment varchar(20),
address varchar(20),
telNum varchar(20)
)
DESC Persons;
5.外键约束
FOREIGN KEY
保持数据的一致性,完整性
实现1对1或1对n关系
1.父表与子表必须使用相同的存储引擎,而且禁止使用临时表。
2.数据表的存储引擎只能是InnoDB
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
CREATE TABLE school(
id int AUTO_INCREMENT PRIMARY KEY,
sname varchar(20) NOT NULL
);
CREATE TABLE student2(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id)
);
外键约束的参照操作
CASCADE : 从父表删除或更新且自动删除或更新子表中匹配的行
父表中被引用的列删除了某个数据,子表中删除对应数据的行
CREATE TABLE student3(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id) ON DELETE CASCADE
);
SET NULL:从父表删除或更新行,并设置子表的外键列为NULL。如果使用该项,必须保证子表列没有指定NOT NULL
父表中删除数据,将子表中的引用设置为NULL
RESTRICT:拒绝对父表的删除或更新操作
NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
本文标题: MySQL约束类型及举例介绍
本文地址: http://www.cppcns.com/shujuku/mysql/242104.html
Mysql数据库---约束类型_MySQL约束类型及举例介绍相关推荐
- mysql 数据库 数组类型转换_mysql数字类型的数据如何进行转换?
如何将MySQL数据库中的数字类型转换为数字函数,今天给大家介绍mysql中的转换函数,这个在实际的生活应用中是运用广泛的,大大减少了我们自己手动进行数字类型的转换. 我们今天主要向大家介绍的是用My ...
- java 修改mysql数据库表结构_MYSQL数据库表结构优化方法详解
摘要:这篇MySQL栏目下的"MYSQL数据库表结构优化方法详解",介绍的技术点是"mysql数据库表结构.MySQL数据库.数据库表结构.MySQL.据库表结构.数据库 ...
- mysql数据库访问记录_MySQL数据库运行、访问记录与日志
以下的文章主要向大家介绍的是查看MySQL数据库运行.访问记录与日志的实际操作,我们大家都知道MySQL数据库运行.访问记录与日志的实际应用可以说很是广泛,以下的文章就是对这些内容的详细介绍. 1.首 ...
- mysql数据库blob区别_MySQL中TEXT与BLOB字段类型的区别
在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程序的博主不知道改为自己的博客正文字段选择TEXT还是BLOB类型. 下面给出几点区别: 一.主要差别 TEXT ...
- mysql数据库blob换行_mysql数据库blob类型
Java -- JDBC 学习--处理Blob Oracle LOB LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的 ...
- Mysql数据库(1.表的约束,以及数据表相关操作和字段名的相关操作)
1.windows10中命令行进入mysql mysql -u root -p 然后输入数据库的密码即可 MySQL创建表并设置约束 1.1创建表,设置id为主键 (primary ...
- MySQL数据库,数据的约束
目录 1.数据的约束 1.1约束的类型 1.2NULL约束 1.3UNIQUE约束 1.4DEFAULT约束 1.5PRIMARY KEY约束 1.6FOREIGN KEY约束 1.数据的约束 首先, ...
- mysql完整字段包括_MySQL字段类型最全解析
前言: 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇 ...
- mysql 表 类型_mysql表类型
MySQL支持6种不同的表类型:BDB.InnoDB.HEAP.ISAM.MERGE以及MyISAM.其中 BDB,InnoDB单独属于一类,称为"事务安全型"(transacti ...
最新文章
- 2022-2028年中国服务器行业投资分析及前景预测报告
- 利用JS判断是手机端还是PC端 浏览网站
- android 无线调试
- 智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序
- 本地启动 Hybris 服务器调试模式后,监听在 8000 端口
- 牛客网暑期ACM多校训练营(第一场)
- 如何进行云主机带宽测试
- 【2021新版】一线大厂 Go 高频面试题,整理分析合集
- screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()...
- 阿里云中获取文件及目录列表的方法
- win10卸载电脑管家就蓝屏_Win10系统运行腾讯软件出现蓝屏TesSafe.sys 解决方案
- 什么是自然语言处理,自然语言处理的技术优势和应用领域
- python制作病毒_python做病毒
- html input粘贴功能,原生js实现复制粘贴功能
- bzoj:1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名
- jacod 使用 WPS或 office相关注册表信息
- vue核心之虚拟DOM(vdom)与真实DOM页面渲染过程
- WkwebView调节字体大小获取高度
- ERROR: Failed to open zip file. Gradle‘s dependency cache may be corrupt (this sometimes occurs afte
- FFmpeg内存管理
热门文章
- 里奥机器人控制app_Mio控制APP-mio机器人控制app1.1.3 安卓版【咪奥机器人控制】-东坡下载...
- 实例【GPA计算器】的制作过程之MFC初体验收获
- OpenCV-Python投影透视变换函数getPerspectiveTransform及warpPerspective详解
- IO有Buffered IO 和 Direct IO
- JVisualVM工具查看Java堆的情况
- 查看linux服务器的内存和CPU信息
- Skia深入分析6——skia中图像编解码代码概述
- CSS布局—网格布局Grid(一)
- [附源码]计算机毕业设计springboot家庭医生签约服务管理系统
- java.io.IOException: Resetting to invalid mark