MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
/* MySQL进阶13 常见六大约束: 1.not null 非空2.default :默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-103.primary key : 主键,用于保证该字段的值具有唯一性,并且非空4.unique : 唯一约束,保证该字段的值可以为空,具有唯一性5.check : 检查约束[mysql不支持,不报错,没有实际效果]6.foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;在从表中添加外键约束,用于引用主表中的某列的值;比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号; 添加约束的时机:1.创建表时2.修改表时---------- 约束的添加分类:列级约束 : 六大约束语法上都支持,但外键没有效果!! 表级约束 : 除了非空,默认, 其他的都支持!语法 : constraint 约束名 约束类型(字段名) 主键和唯一:都可以组合!#二. 修改表的时候添加列级约束alter table 表名 modify column 字段名 字段类型 新类型;添加表级约束alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用];#********添加表名# alter table 表名 add column 字段名 字段类型; */CREATE TABLE 表名(字段名 字段类型 列级约束,字段名 字段类型,表级约束 );#一: 创建表时添加约束 CREATE DATABASE students; #1.添加列级约束 USE students; CREATE TABLE stuinfo(id INT PRIMARY KEY, #主键stuName VARCHAR(20) NOT NULL, #非空gender CHAR(1) CHECK(gender IN ('男','女')), #检查约束seat INT UNIQUE, #唯一age INT DEFAULT 18 , #默认约束majorId INT REFERENCES major(id) #设置为外键 ); DESC stuinfo; CREATE TABLE major(id INT PRIMARY KEY,majorName VARCHAR(20) );#2 添加表级约束 DROP TABLE IF EXISTS stuinfo; CREATE TABLE stuinfo(id INT , #主键stuName VARCHAR(20), #非空gender CHAR(1), #检查约束seat INT, #唯一age INT , #默认约束majorid INT,CONSTRAINT pk PRIMARY KEY(id), #设置主键CONSTRAINT uq UNIQUE(seat), #唯一键CONSTRAINT ck CHECK(gender ='男' OR gender ='女'), #检查CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id) #外键 ); SHOW INDEX FROM stuinfo;#组合写法,更常用! 主键和唯一:都可以组合! DROP TABLE IF EXISTS stuinfo; CREATE TABLE stuinfo(id INT , #主键stuName VARCHAR(20), #非空gender CHAR(1), #检查约束seat INT, #唯一age INT , #默认约束majorid INT,PRIMARY KEY(id,stuName), #设置主键UNIQUE(seat), #唯一键CHECK(gender ='男' OR gender ='女'), #检查CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id) #外键 );#二. 修改表的时候添加约束 DROP TABLE IF EXISTS stuinfo; CREATE TABLE stuinfo(id INT , stuName VARCHAR(20),gender CHAR(1), seat INT, age INT , majorid INT); DESC stuinfo;#1.添加非空约束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;#2 添加默认约束 ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;#3添加主键: 1)列级约束 ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;#2) 表级约束 ALTER TABLE stuinfo ADD PRIMARY KEY(id);#4.添加唯一#1.列级约束 ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;#2) 表级约束 ALTER TABLE stuinfo ADD UNIQUE(id);#5.添加外键 ALTER TABLE stuinfo ADD FOREIGN KEY(majorid) REFERENCES major(id); ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id);#三 .删除约束#1.删除非空约束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL; #2 删除默认约束 ALTER TABLE stuinfo MODIFY COLUMN age INT; #3删除主键 ALTER TABLE stuinfo DROP PRIMARY KEY; #4删除唯一 ALTER TABLE stuinfo DROP INDEX seat; #5.删除外键 ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;DESC stuinfo;
转载于:https://www.cnblogs.com/zhazhaacmer/p/9872081.html
MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...相关推荐
- 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...
- 数据库字段设置为非空默认值
为什么数据库要设置默认值呢?因为我们希望在插入数据时,有意或无意间被忽略的字段能够交由MySQL按我们事先预想的方式处理,例如一些默认正常状态码.用户插入数据时候尚未设置的文本字段,诸如此类. 假设s ...
- mysql 引擎 外键_mysql的事物,外键,与常用引擎
### part1 时间类型 date YYYY-MM-DD 年月日 (出现日期) time HH:MM:SS 时分秒 (竞赛时间) year YYYY 年份值 (红酒年份 82年矿泉水) datet ...
- Mysql中外键作用以及Navicat建立外键失败总结
本文摘自参考三篇文章,从这篇文章中将了解到外键作用以及navicat建立外键常见错误解决,帮助读者更加深刻了解外键. 文章目录 一.外键的作用 二. 不设置外键行不行? 三.那到底使不使用外键? 四. ...
- MySQL中的主键、唯一键、外键对比
一.主键 主键:每张表中只能有一个字段(复合主键可以有多个字段)使用此属性,用来唯一约束该字段中的数据,不能重复 1.增加主键: 在创建表的时候,直接在字段后,添加primary key关键字 CRE ...
- mysql 外键有啥用途_Mysql外键是什么?有哪些用处?(图文+视频)
本篇文章主要给大家介绍mysql外键是什么以及mysql数据库中的外键的作用. 首先大家要简单了解下什么mysql? MySQL是一个关系型数据库管理系统,也是最流行的关系型数据库管理系统之一,在 W ...
- 约束——非空约束和唯一性约束
1.什么是约束? 约束对应的英语单词:constraint 在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的 完整性.有效性!!!约束的作用就是为了保证:表中的数据有效!! 1. ...
- [JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)
约束 * 概念: 对表中的数据进行限定,保证数据的正确性.有效性和完整性. * 分类:1. 主键约束:primary key2. 非空约束:not null3. 唯一约束:unique4. 外键约束: ...
- oracle去除检查非空,oracle 主键,非空,检查,唯一,默认,外键约束
--首先添加主键约束 alter table student add constraint PK_student_sno primary key(sno) --删除约束 alter table stu ...
- mysql外键约束查询语句_MySQL数据库 : 查询语句,连接查询及外键约束
查询指定字段 select 字段1,字段2 from 表名; 消除重复行(重复指的是结果集中的所有完全重复行) select distinct 字段1,字段2.. ...
最新文章
- ZigZag 与 反ZigZag编码
- jquery的实时触发事件(textarea实时获取中文个数)
- 离线轻量级大数据平台Spark之MLib机器学习库Word2Vec实例
- FastReport4.6程序员手册_翻译 转
- 【蓝桥杯省赛】冲刺练习题【循环】倒计时【15】天
- c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为
- 深度学习笔记(6) 实践层面(一)
- 教师节快乐:删了库之后,不要着急跑路
- 从源码深入理解Spring IoC 注解
- MapXtreme2004 连接oracle spatial的问题
- canny边缘检测_每日习题-图像处理-Canny边缘检测(2020.4.15)
- google font 字体下载方式
- Web前端开发工程师常用技术网站整理
- 你好旧时光,斗罗大陆,红楼梦词云词频分析(动词形容词名词)
- win10 DOS命令操作
- 毕业4年年薪200万是怎样的一种体验?
- 不了解外贸装箱,这一篇够够的
- 使用leaflet仿原神提瓦特大地图制作日记
- 首页 干货教程 大数据动向 大数据应用 数据可视化 数据分析 投资并购 企业专区 注册 登录 随机森林入门攻略(内含R、Python代码)
- 关于调用高德地图路径规划清除问题解决方案【js】
热门文章
- web安全day16:人人都要懂的OSI和TCP/IP协议簇
- 九、K8s deployment相关操作
- 浅议组播(一文看懂组播)
- 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of #39;JmsMessagingTemplate#39; type found...
- Android 用户可以直接在搜索页面上安装 app 了
- codeforces 665A Buses Between Cities
- 用C语言写一个函数返回参数二进制中1的个数
- Android动态加载字节码
- ANDROID 中设计模式的採用--结构型模式
- JBOSS EAP6.2.0的下载安装、环境变量配置以及部署