MySQL数据库七大约束详解MySQL七大约束

MySQL数据库七大限制详解。
作为常用的关系数据库管理系统,MySQL支持多种约束来控制数据库内数据的完整性,避免数据操作过程中的错误和违规行为。

本文详细介绍了MySQL数据库的七个主要限制。
1.PRIMARYKEY约束PRIMARYKEY约束定义表中的主键。
这样保证了每行数据的唯一性,也可以作为表内的引用点,以便其他表可以通过主键引用该表。
记录。
定义PRIMARYKEY约束时,必须为主键字段添加UNIQUE和NOTNULL约束。
例如,创建一个Student表,有两个字段:学号和姓名,并设置学号为主键。
数据在一张表中。
我需要在一个表中创建外键来引用另一表的主键。
FOREIGNKEY约束允许您在表之间创建关联。
这提供了数据完整性和一致,确保表之间的数据符合规范。
例如,在Managers表中创建一个外键,该外键引用另一个表(Employees表)中的EmployeeID列。
CREATETABLEManagers(ManagerIDINTNOTNULL,EmployeeIDINT,ManagerNameVARCHAR(50)NOTNULL),PRIMARYKEY(ManagerID),FOREIGNKEY(EmployeeID)REFERENCESEmployees(EmployeeID));3.UNIQUE约束UNIQUE约束是一列(或一组列)用于保证内部数据值的唯一性。
“无”栏不重复。
定义UNIQUE约束时,必须将UNIQUE关键字添加到列中。
例如,在图书馆的Books表中,向图书ISBN列添加UNIQUE约束,以便每本书都有唯一的标识符。
CREATETABLEBooks(BookIDINTNOTNULL,BookNameVARCHAR(50)NOTNULL),ISBNVARCHAR(13)UNIQUENOTNULL,PRIMARYKEY(BookID));4.CHECK约束CHECK约束检查插入或修改到表中的数据是否满足用于检查的指定条件。
它可用于限制数据中的值的范围或限制值的范围。
指定规格。
定义CHECK约束时,必须将CHECK关键字添加到列中,并在括号内指定必须计算为TRUE的条件。
例如,班级成绩表Scores中,在score列添加CHECK约束,保证成绩大于等于0分且小于等于100分。
CREATETABLEScores(IDINTNOTNULL,StudentIDINTNOTNULL,CourseIDINTNOTNULL,ScoreINTCHECK(Score>=0ANDScorePRIMARYKEY(ID));5.DEFAULT约束DEFAULT约束自动用于设置默认值,定义D时设置为默认值。
对于EFAULT约束,必须向列添加DEFAULT关键字并指定默认值,例如,在Users表中,向活动状态列添加DEFAULT约束,以确保在列为空时默认值有效。
1:创建表用户(UserIDINTNOTNUL)L,UserNameVARCHAR(50)NOTNULL,ActiveINTDEFAULT1,PRIMARYKEY(UserID));6.NOTNULL约束NOTNULL约束在插入期间为空。
用于防止赋值。
这也是MySQL中最常用的约束之一。
如果定义NOTNULL约束,则必须将NOTNULL关键字添加到该列。
例如,在某电商网站的Orders表中,为订单号和订单时间字段添加NOTNULL约束(CREATETABLEOrders(OrderIDINTNOTNULL))。
,OrderTimeDATETIMENOTNULL,PRIMARYKEY(OrderID));7.INDEX约束INDEX约束用于创建索引,以加快表的查询和搜索速度,提高查询效率。
B树、全文索引和哈希索引例如,在学生班级表StudentClasses上,为每个学生ID创建一个B树索引:CREATETABLEStudentClasses(StudentIDINTNOTNULL,ClassID)。
INTNOTNULL,ClassNameVARCHAR(50)NOTNULL,Index(StudentID));以上是MySQL数据库的七个约束的详细解释,有助于管理和保护数据库中的数据,使其更加安全和规范。
运行中。

数据库CONSTRAINT是什么意思?

在数据库中,CONSTRAINT是一个关键概念,用于标准化和限制数据的存储和操作。
本文将详细介绍三种常见的数据库约束:主键约束(PrimaryKey)、唯一约束(UniKey)和外键约束(ForeignKey)。
首先,主键约束(PRIMARYKEY)在每个表中都有一个UNIQUE条件,保证数据的唯一性和完整性,不允许存在,并且每个表只能有一个。
同样,唯一性约束(UniqueKey)也要求数据唯一,但允许NULL值,因此,可以说PrimaryKey加NULL相当于UniqueKey,但主键的唯一性更加严格。
接下来,使用外键约束(ForeignKey)来链接两个表之间的数据,确保引用的行存在于另一个表中。
在关系数据库中,维护数据的一致性和完整性非常重要。
所谓“列”是指数据库术语中的字段,是数据存储的基本单位。
每个表通常包含多个字段,这些字段共同定义了表的结构和数据的格式。
总的来说,数据库约束是数据管理的关键组成部分,它们保证数据的有效性和一致性,通过规则限制数据的输入和操作,提高数据查询的效率。
在当今的互联网时代,数据的重要性不言而喻,无论是文本、图像还是音频,都应该用来支持各种业务和分析需求。
To存储在常规数据库中。

数据库的4键2约束指的是什么

对表中数据进行限制,确保其准确性、有效性、完整性。
类别:1.主键约束:primarykey2.非空约束:notnull3.唯一约束:unique4.外键约束:foreignkey1.非空约束:notnull,某列的值不能为空时。
创建表,添加约束CREATETABLEstu(idINT,NAMEVARCHAR(20)NOTNULL--nameisnotempty);12341234创建表后,添加非空约束CREATETABLEstu(idINT,NAMEVARCHAR(20));ALTERTABLEstuMODIFYNAMEVARCHAR(20)NOTNULL;123456123456在此处插入照片描述并删除约束no空ALTERTABLEstuMODIofnameFYNAMEVARCHAR(20);11在此插入图像描述2.唯一约束:唯一,给定列的值不能重复。
注意:唯一约束可以值为NULL,但只能有一条记录为空。
添加唯一约束CREATETABLEstu(idINT,phone_numberVARCHAR(20)UNIQUE--手机号码);12341234在此插入照片描述删除唯一约束ALTERTABLEstuDROPINDEXphone_number;11在此插入照片描述创建表后,添加唯一约束ALTERTABLEstuMODIFYphone_numberVARCHAR(20)UNIQUE;113.主键约束:主键。
注:①.意义:不空且唯一②。
一张表只能有一个字段作为主键③。
主键是表中记录的唯一标识符。
createtablestu(idintprimarykey,--向id约束添加主键namevarchar(20));12341234在此插入照片描述删除主键--更改estumodifyidint时出错;ALTERTABLEstuDROPPRIMARYKEY;1212在此插入照片描述创建表后添加主键createtablestu(idint,namevarchar(20));ALTERTABLEstuMODIFYidINTPRIMARYKEY;123456123456自动增长:①。
概念:如果列是数字类型,则使用auto_increment来完成值的自动递增。
②创建表时,添加主键约束,完成主键自增createtablestu(idintprimarykeyauto_increment,--add主键到id约束namevarchar(20));12341234此处插入照片描述③,删除自动增长ALTERTABLEstuMODIFYidINT;11此处插入照片描述④、添加自动增长ALTERTABLEstuMODIFYidINTAUTO_INCRMENT114.外键约束:外键,创建表间关系,保证数据准确性。
CREATETABLEemp(idINTPRIMARYKEYAUTO_INCRMENT,NAMEVARCHAR(30),ageINT,dep_nameVARCHAR(30),dep_locationVARCHAR(30));INSERTINTOempVALUES(1,'张三',20,'研发部','广州');INSERTINTOempVALUES(2,'李丝',21,'房间研发部','广州');INSERTINTOempVALUES(3,'王武',20,'研发部','广州');INSERTINTOempVALUES(4,'老王',20,'销售部','深圳');INSERTINTOempVALUES(5,'大王',22,'销售Department','深圳');INSERTINTOempVALUES(6,'帝国',18,'销售部','深圳');12345678910111213141234567891011121314这里插入图片描述通过上表我们可以知道表中的信息是employee中不同的部门,上表可以分开分为两个木板。
部门办公桌和员工办公桌。
--创建部门表(id,dep_name,dep_location)CREATETABLEdepartment(idINTPRIMARYKEYAUTO_INCRMENT,dep_nameVARCHAR(20),dep_locationVARCHAR(20));--创建员工表(id,name,age,dep_id)CREATETABLEemployee(idINTPRIMARYKEYAUTO_INCRMENT,NAMEVARCHAR(20),ageINT,dep_idINT--外键对应主表主键);--添加两个部门INSERTINTOdepartmentVALUES(NULL,'研发部','广州'),(NULL,'销售部','深圳');--添加员工信息INSERTINTOemployee(NAME,age,dep_id)VALUES('张三',20,1);INSERTINTOemployee(NAME,age,dep_id)VALUES('李四',21,1);INSERTINTOemployee(NAME,age,dep_id)VALUES('王五',20,1);INSERTINTOemployee(NAME,age,dep_id)VALUES('老王',20,2);INSERTINTO乘数员工(姓名,年龄,dep_id)VALUE('大王',22,2);INSERTINTO员工(姓名,年龄,dep_id)VALUE('小王',18,2);123456789101112131415161718192021222324123456789101112131415161718192021222324在这里插入照片描述如果我们现在删除教师表中的数据,可能会被删除;……这与实际情况不符。
因为虽然我们现在已经删除了部门表中的数据,但是部门信息仍然存在于员工表中。
只有当部门所有员工都被解雇后,我们才能删除部门表。
1、添加外键创建表时,可以添加外键:createable表名(....约束外键列外键名外键(外键列名)引用主表名(列名主表));1234512345--创建员工表(id,name,age,dep_id)CREATETABLEemployee(idINTPRIMARYKEYAUTO_INCRMENT,NAMEVARCHAR(20),ageINT,dep_idINT,--主表主键CONSTRAINTe对应的外键mp_dept_fkFOREIGNKEY(dep_id)REFERENCESdepartment(id));1234567812345678删除外键ALTERTABLE表名DROPFOREIGNKEY外键名11创建表后添加外键A表名LERTABLEADDCONSTRAINT外键名FOREIGNKEY(外键字段名)REFERENCES名称主表(列主表名称);112、级联操作如果我们直接将department表中的id=1修改为id=5,是不行的。
因为部门ID是链接到员工表的,修改它会导致错误。
;但我们可以通过级联操作来修改。
添加级联操作语法:表名ALTERTABLEADDCONSTRAINT外键名FOREIGNKEY(外键字段名)REFERENCES主表名(主表列名)ONUPDATECASCADEONDELETECASCADE;123123类别:①、级联更新:ONUPDATECASCADE②、级联删除:ONDELETECASCADE示例说明:①、删除表中的外键员工(因为此时表中已经添加了外键,所以需要先将其删除)——删除外键ALTERTABLEemployeeDROPFOREIGNKEYemp_dept_fk;1212②添加外键时,添加级联操作ALTERTABLEemployeeADDCONSTRAINTemplo_dept_fkFOREIGNKEY(dep_id)RE。
FERENCESdepartment(id)ONUPDATECASCADEONDELETECASCADE;11③如果我们现在删除employees表中id=1的数据,那么departments表中的数据也会一起更新。
deletefromdepartmentwhereid=1;11--查询部门表数据select*fromdepartment;1212在此插入照片描述--查询员工表数据select*fromemployee;1212在此插入照片描述