键值约束与扩展属性、ER关系图、三大范式、分组查询、多表联查

3 篇文章 1 订阅

键值约束与扩展属性,ER关系图,三大范式,分组查询,多表联查
在这里插入图片描述

键值约束与扩展属性

键值约束与扩展属性:
	键值约束:约束表中指定字段的数据必须符合某种规则;
种类:
	非空约束:NOT NULL —— 约束指定字段数据不能为NULL
	唯一约束:UNIQUE —— 约束指定字段数据不能出现重复
	主键约束:primary key —— 数据非空且唯一,一个表中只能有一个主键
	外键约束:foreign key —— 表中指定字段数据受父表数据约束
			foreign key (字段名) references 主表名(字段名)
	默认值:DEFAULT —— 为指定字段设置默认值
	自增属性:AUTO_INCREMENT —— 整形字段数据自动+1(用于主键字段)

分组查询:group by —— having
分组查询的字段只能是分组依据字段以及聚合函数
分组查询中不能使用where,如果要用条件过滤使用having
select role,sum(salary),max(salary),min(salary),avg(salary) from tbname group by role having avg(salary)>1500;

聚合函数:针对结果中的数据的某个字段进行某种统计运算
count(*) ——统计数据条数
sum(fields) ——统计指定字段的和
max(字段) ——统计指定字段中最大值
min(fields) ——统计指定字段中最小值
avg(fields) ——统计指定字段的平均值

数据库中表的设计:ER,三大范式

ER关系图

ER关系图:
一对一:一个学生只有一个学生证
能唯一标识一个学生的字段就是主键

一对多:向学生实体(多的一方)添加一个班级id

在这里插入图片描述
一个学生能学多个课,一个课可以有多个学生上
多对多:设计一个中间表包含两个实体的ID,通过中间表将两个实体关联
在这里插入图片描述

三大范式

三大范式:数据库表设计的三大规范
第一范式:表中每个字段都必须具有不可分割的原子操作(第一范式是其他范式的前提)(确保每列保持原子性)
在这里插入图片描述
上表违反第一范式,后两栏可分割。
不遵循第一范式会导致按照某个非原子字段进行查询时效率降低。

第二范式:表中每个字段都应与主键完全关联,而不是部分关联(确保表中的每列都和主键相关)
在这里插入图片描述
上图不遵循第二范式标准品那个会出现大量数据冗余。
在这里插入图片描述
第三范式:表中每个字段都应该与主键直接关联,而不是间接关联
在这里插入图片描述
上图不遵循第三范式,班主任信息和学生信息间接关联,可拆分为下面
在这里插入图片描述
在这里插入图片描述

多表联查

多表联查:将多张表合在一起进行查询
将多张表合在一起:笛卡尔积
在这里插入图片描述

连接方式:内连接+外连接(左连接,右连接)
内连接:连接数据交集 inner join

class |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| stu
在这里插入图片描述
select stu.name,class.name from stu inner join class on class.id=stu.class_id
在这里插入图片描述
左连接:以左表为基表在右表中查询符合条件的进行连接
select stu.name,class.name from stu left join class on stu.class_id=class.id
在这里插入图片描述
右连接:以有表为基表在左表中查询符合条件的进行连接
select stu.name,class.name from stu right join class on stu.class_id=class.id

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值