MySql学习笔记24常见约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
六大约束
NOTNULL:非空约束,用于保证该字段的值不能为空
DEFAULT:默认约束,用于保证该字段有默认值
PRIMARYKEY:主键约束,用于保证该字段的值具有唯一性,并且非空
UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空
CHECK:检查约束〔mysql中不支持〕
FOREIGNKEY:外键约束,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值。
外键特点:
1、要求在从表设置外键约束关系
2、从表的外键约束列的类型和主表的关联列的类型要求一致或兼容,名称无要求
3、主表的关联列必须是一个key(一般是主键约束或唯一键约束)
4、插入数据时,先插入主表,再插入从表;删除数据时,先删除从表,再删除主表
添加约束的时机:
1。创建表时
2。修改表时
约束的添加分类:
列级约束:六大约束语法。上都支持,但外键约束没有效果
表级约束:除了非空、默认,其他的都支持
语法:CREATETABLE表名(
字段名字段类型列级约束,
字段名字段类型,
表级约束);
创建表时添加约束
1。添加列级约束
直接在字段名和类型后面追加约束类型即可。
只支持:默认约束、非空约束、主键约束、唯一约束
案例:创建专业表
CREATETABLEmajor(
idINTPRIMARYKEY,
majorNameVARCHAR(20)
);创建学生信息表
CREATETABLEstudent(
idINTPRIMARYKEY,主键约束
NameVARCHAR(20)NOTNULL,非空约束
sexCHAR(1)CHECK(sex男ORsex女),检查约束(此处语法不报错,但无实际效果)
seatINTUNIQUE,唯一约束
ageINTDEFAULT18,默认约束
majorIdINTFOREIGNKEYREFERENCESmajor(id)外键约束(此处语法不报错,但无实际效果)
);
2。添加表级约束语法:在各个字段的最下面
〔constraint约束名〕约束类型(字段名)
案例:创建专业表
CREATETABLEmajor(
idINTPRIMARYKEY,
majorNameVARCHAR(20)
);创建学生信息表
CREATETABLEstudent(
idINT,
nameVARCHAR(20),
sexCHAR(1),
seatINT,
ageINT,
majoridINT
CONSTRAINTpkPRIMARYKEY(id),主键约束
CONSTRAINTuqUNIQUE(seat),唯一键约束
CONSTRAINTckCHECK(sex男ORsex女),检查约束
CONSTRAINTfkstudentmajorFOREIGNKEY(majorid)REFERENCESmajor(id)
外键约束
);
主键与唯一键的比较
约束名称
保证唯一性
是否允许为空
一个表中可以有多少个
是否允许组合
主键约束
至多有1个
唯一约束
可以有多个
组合主键约束,组合唯一约束的写法CREATETABLEstudent(
idINT,
nameVARCHAR(20),
sexCHAR(1),
classroomVARCHAR(20),
seatINT,
ageINT,
majoridINT
CONSTRAINTpkPRIMARYKEY(id,name),组合主键约束
CONSTRAINTuqUNIQUE(classroom,seat),组合唯一键约束
);修改表时添加约束
语法:1、添加列级约束
altertable表名modifycolumn字段名字段类型新约束;
2、添加表级约束
altertable表名add【constraint约束名】约束类型(字段名)【外键的引用】;
案例:创建专业表
CREATETABLEmajor(
idINTPRIMARYKEY,
majorNameVARCHAR(20)
);CREATETABLEstudent(
idINT,
nameVARCHAR(20),
sexCHAR(1),
classroomVARCHAR(20),
seatINT,
ageINT,
majoridINT
);
1。添加非空约束
ALTERTABLEstudentMODIFYCOLUMNnameVARCHAR(20)NOTNULL
2。添加默认约束
ALTERTABLEstudentMODIFYCOLUMNageINTDEFAULT18;
3。添加主键列级约束语法:
ALTERTABLEstudentMODIFYCOLUMNidINTPRIMARYKEY;
表级约束语法:
ALTERTABLEstudentADDPRIMARYKEY(id);
4。添加唯一列级约束语法:
ALTERTABLEstudentMODIFYCOLUMNseatINTUNIQUE;
表级约束语法:
ALTERTABLEstudentADDUNIQUE(seat);
5。添加外键
ALTERTABLEstudentADDfkstudentmajorFOREIGNKEY(majorid)REFERENCESmajor(id);修改表时删除约束
1。删除非空约束
ALTERTABLEstudentMODIFYCOLUMNnameVARCHAR(20)NULL;
2。删除默认约束
ALTERTABLEstudentMODIFYCOLUMNageINT
3。删除主键
ALTERTABLEstudentDROPPRIMARYKEY;
4。删除唯一
ALTERTABLEstudentDROPINDEXseat;
5。删除外键ALTERTABLEstudentDROPFOREIGNKEYfkstudentmajor;
进博会沉浸式预展酒会,悦享苏格兰自然之道11月5日10日,第四届中国国际进口博览会即将在上海国家会展中心拉开帷幕!作为第二次参展进博会的苏格兰展团,今年在苏格兰国际发展局的组织下扩容至37个品牌企业,将为中国的采购商……
自从国庆自驾开了这款车,朋友们都说我越来越凡尔赛了早就开始关注东风雪铁龙凡尔赛C5X这款车了,毕竟这款车用料扎实,颜值又高,不过之前一向听说法系车可靠性一般,华而不实,保值率又低,所以对于这款车还是很犹豫的。不过当东风雪……
陪读妈妈电视剧陪读妈妈好看吗,陪读妈妈剧情陪读妈妈:电视剧《陪读妈妈》好看吗,陪读妈妈剧情陪读妈妈好看吗剧情如何,两代戏骨共踏求学路引期待。电视剧《陪读妈妈》已经进入开播倒计时了,那么《陪读妈妈》好看吗?剧情如何……
活久见?部分车型购买价回收,二手车价格上涨随着汽车产能的逐渐提升,及自主品牌的逐渐崛起,近年来在总体上,国内汽车的价格呈现下降走势。然而如果你最近关注汽车价格,特别是中高端品牌的汽车品牌,就会发现其售价不降反升。……
大秦赋嬴政娶了谁同时迎娶两位美人却只有她的结局可怜近段时间以来,电视剧《大秦赋》正在热播当中,大家都十分好奇嬴政娶了谁呢?据说,嬴政同时迎娶了两位美人,却只有她的结局可怜,一起来看一下具体的情况。1大秦赋嬴政娶了谁电视剧……
大秦赋嬴政是谁的儿子看完这个你就明白了近段时间以来,电视剧《大秦赋》正在热播当中,剧中嬴政的生母是赵姬,但是嬴政的生父一直都是一个迷,大家都十分好奇,嬴政到底是谁的儿子呢?看完这个你就明白了。1大秦赋嬴政是谁的儿子……
大秦赋嬴政多少集亲政赵姬吕不韦为何不想还政给嬴政相信很多看过《大秦赋》的观众都知道,嬴政到目前的剧情为止都一直没有亲政,很多人都很好奇嬴政多少集亲政呢?赵姬和吕不韦为何不想还政给嬴政呢?一起来看一下具体的情况。1大秦赋嬴政多……
大秦赋嬴政摔孩子第几集嬴政为何不摔孩子近段时间以来,电视剧《大秦赋》正在热播当中,观众看到现如今的剧情都纷纷表示嬴政到底什么时候摔孩子呢?最新预告来了,最高光的时刻到了,一起来看一下具体的情况。1大秦赋嬴政摔孩子第……
数码宝贝绝境求生确认再次跳票2022年已延期三年万代南梦宫官方今日正式在其《数码宝贝》游戏社交账号上发布公告,《数码宝贝绝境求生》将于原定的2021年延期至2022年。虽然目前本作已经获得了澳洲游戏评级,但是在2018年公开……
2020年中国眼镜镜片行业白皮书核心摘要:2019年全国眼镜产品零售市场规模超过800亿元。镜片作为眼镜功能属性的核心载体,在眼镜产品构成中占据极为重要的位置,2019年全国眼镜镜片零售市场规模为305……
小敏家陈佳佳结局是什么,小敏家陈佳佳扮演者小敏家说出很多人不清楚,可小敏家剧中陈佳佳的结局是什么样的经历,很多网友就想去了解一下有关的故事,看小敏家剧情里面把陈佳佳的结局提前做好铺垫,过后用精彩形式呈现,但有的网友就不……
起售7。69万,续航达到401km,哪吒VPro实力如何?作为造车新势力的一员,哪吒汽车在2021年销量上得到大的腾飞,就拿今年1月到10月数据来看,一共交付了5。1万台,对比去年增长了398,家族主力车型受到了一定认可。主要是价格上……