赣州市规划建设局网站改,整形网站模板,百度引擎搜索引擎,手机app与手机网站的区别目录 一、完整性约束。 #xff08;1#xff09;概念与目的。 1概念。 2目的。 #xff08;2#xff09;各个约束的详细#xff08;表格#xff09; #xff08;3#xff09;各个约束的简要总结。 1主键约束。 2唯一约束。 3非… 目录 一、完整性约束。 1概念与目的。 1概念。 2目的。 2各个约束的详细表格 3各个约束的简要总结。 1主键约束。 2唯一约束。 3非空约束。 4默认值约束。 5外键约束。 6检查约束。 4设置约束的操作演示。 1两种添加约束方式。 2创建表时同时添加约束。 1、创建学生表。 2、在列声明后面直接声明主键跟着书写。 编辑 3、另起一行声明主键。创建班级表。 3表已经创建好了以修改表的方式来添加约束。 4主键约束设计。 5自动递增约束。 6外键约束。 5表与表之间的关系。 1三种关系。 1、一对一。 2、一对多。多对一 3、多对多。 2简要的概述。 组合主键。联合主键 3外键与外键约束区别。 1、外键约束。 2、外键。 一、完整性约束。
MySQL的完整性约束用于确保数据库中的数据准确性和一致性。这些约束通过定义规则来限制表中可以存储的数据类型和值。 1概念与目的。 1概念。 约束是作用于表中字段上的规则用于限制存储在表中的数据。 2目的。 保证数据库中数据的正确、有效性和完整性。 2各个约束的详细表格 约束名称描述关键字主键约束 1、主键是一行数据的唯一标识要求非空且唯一。 2、唯一标识表中的每一行。 3、可以由一个或多个列组成复合主键。 PRIMARY KEY (primary key) 唯一约束 1、保证该字段的所有数据都是唯一、不重复的。 2、确保一列或多列的值在表中是唯一的。 3、允许为空值但多个空值不视为重复。 UNIQUE (unique) 外键约束 1、用来让两张表的数据之间建立连接保证数据的一致性和完整性。 2、确保一个表中的值在另一个表中存在参照完整性。 3、用于维护表之间的关系例如一对多、多对多。 FOREIGN KEY (foreign key) 非空约束 1、限制该字段的数据不能为null 。 2、适用于所有数据类型。 NOT NULL (not null) 默认(值)约束1、保存数据时如果未指定该字段的值则采用默认值 DEFAULT (default) 自动递增约束1、通常与主键一起使用自动生成唯一的数字序列。 2、通常用于主键列确保每次插入新行时都有唯一的标识符。 AUTO_INCREMENT (auto_increment) 检查约束(8.0.16及更高版本支持) 1、保证字段值满足某一个条件。 2、check(age 0)确保年龄列中的值是非负的。 CHECK (check) 注意。约束是作用于表中字段上的可以在创建表/修改表的时候添加约束。 3各个约束的简要总结。 1主键约束。 唯一且不为null空。每一张表只能有一个主键约束如果一个表的其它字段想要设置唯一怎么办用唯一约束 2唯一约束。 只能保证唯一。但不能保证不为空。每一张表可以有多个唯一约束如一张用户表的邮件、电话号码等等都需要唯一。 3非空约束。 不能为null。必须要赋值。 4默认值约束。 给列设置一个默认值。如给sex(性别)设置默认值男如果性别没有赋值就是男。 5外键约束。 关于两张表的约束。子表某列的数据来源于主表的某列数据。比如有一张学生表其里面有一个班级id字段。那么这个班级id在另外一张班级表中是存在的。 6检查约束。 MySQL的高版本里才有。(8.0.16及更高版本支持)限定值的范围。限制性别只能是男或女、年龄在18~50岁等等。低版本不支持这个约束的使用。 4设置约束的操作演示。 1两种添加约束方式。 第一种。表已经创建好了。以修改表的方式添加约束。不过最好前提表里面没有数据否则可能会因为一些数据冲突导致加不进去。第二种。在创建表时一起将需要的约束添加好也就是在数据库设计的时候就要考虑清楚。推荐使用 2创建表时同时添加约束。 1、创建学生表。 其中id (唯一不能为空, 主键约束)name(非空)sex(默认值 男)ageemail(唯一)。 2、在列声明后面直接声明主键跟着书写。 create table tb_student(id int primary key, #主键约束name varchar(50) not null, #非空约束sex varchar(10) default 男, #默认值约束age int,email varchar(100) unique #唯一约束
); 张三没有赋值性别系统自动使用默认值男。其它数据插入时没有任何冲突所以添加成功 主键约束。唯一且非空。王五学生添加失败 唯一约束。不允许王五与李四邮箱一样 修改后。 3、另起一行声明主键。创建班级表。 一般默认约束与非空约束不能另起一行写 班级表: id(主键)cname 班级名称(非空)loc 教室位置(唯一)。 创建表。其中主键、唯一约束另起一行书写声明。 create table tb_class(id int,cname varchar(100) not null,loc varchar(100),primary key(id),unique (loc)
); 测试失败。原因 测试成功 3表已经创建好了以修改表的方式来添加约束。 如果表中的数据违反约束则添加失败。 主键操作方式。补充一般批量插入数据的时候表中选择没有添加约束。否则执行sql脚本、批量添加数据时就会一个个检查约束查看数据是否符合约束就会很慢所以等添加完数据再添加约束也是可以的。 4主键约束设计。 每张表都应该有一个主键。主键加在非业务数据上列主键不允许修改。 5自动递增约束。 auto_increment自增列只能有一个加在主键唯一键。自增列。默认开始值: 1, 每次加1。 如果手动给自增列赋值程序是否报错? 不报错 。id100 则下一个自增列的值101。程序如下。具体测试大家可以自己试试 create table tb_class(id int auto_increment,cname varchar(100) not null,loc varchar(100),primary key(id),unique (loc)
); insert into tb_class values (100,一年级三班,2栋304);insert into tb_class(cname,loc) values (一年级四班,2栋305); 6外键约束。 其实就是为了防止数据的不完整性下次补充 5表与表之间的关系。 1三种关系。 1、一对一。 2、一对多。多对一 3、多对多。 2简要的概述。 一对一。例如t_person表和t_card表即人和身份证。这种情况需要找出主从关系即谁是主表谁是从表。人可以没有身份证但身份证必须要有人才行所以人是主表而身份证是从表。设计从表可以有两种方案。 在t_card表中添加外键列相对t_user表并且给外键添加唯一约束 给t_card表的主键添加外键约束相对t_user表即t_card表的主键也是外键。 一对多多对一。 最为常见的就是一对多 一对多和多对一这是从哪个角度去看得出来的。 t_user和t_section的关系从t_user来看就是一对多而从t_section的角度来看就是多对一这种情况都是在多方创建外键 例如存在一张员工表emp与一张部门表dept。一个部门里有多个员工但是一个员工只能对应一个部门。则部门是一而员工是多。那么外键应该设置在员工表emp中的部门iddept_id对应着部门表dept的主键dept_id。 多对多。 例如t_stu和t_teacher表即一个学生可以有多个老师而一个老师也可以有多个学生。 这种情况通常需要创建中间表来处理多对多关系。 所以需要创建一张表tb_stu_tea表给出两个外键一个相对t_stu表的外键另一个相对t_teacher表的外键。 组合主键。联合主键 为了防止存相同的值。 可以设置组合主键联合主键——primary key(stu_id,tea_id)变成了需要两个字段的值——两两相等才会违背主键唯一。 3外键与外键约束区别。 1、外键约束。 对外键的一种约束。外键的值只能来源于主表主键值唯一键值。 2、外键。 是一个列。用来维护两张表的关系。