吉林省住房和城乡建设厅网站官网,网站开发服务税率是多少,网站建设的企业,微商软件代理数据库 数据库表的设计ER 关系图三大范式 聚合函数与分组查询聚合函数 (count、sum、avg、max、min)分组查询 group by fields....having....(条件) 多表联查内连接外连接#xff08;左连接#xff0c;右连接#xff09;自连接子查询合并查询 UNION 数据库表的设计
ER 关系… 数据库 数据库表的设计ER 关系图三大范式 聚合函数与分组查询聚合函数 (count、sum、avg、max、min)分组查询 group by fields....having....(条件) 多表联查内连接外连接左连接右连接自连接子查询合并查询 UNION 数据库表的设计
ER 关系图 ER 图以图形的方式描述表与表之间的关系 矩形实体 圆形实体属性 菱形实体间关系 例如 给定学生信息表的个字段信息画出其 ER 图
学生信息表(学号姓名性别年龄出生日期所属班级) 班级表(班级号班级描述) 其次表与表之间存在一对一、一对多、多对一 的对应关系
上述 ER 图一个学生只能属于一个班级而一个班级里边可以有多个学生因此学生信息表与班级表之间是属于多对一的关系 一般在多对多关系中需要创建一个第三方表来找到两个独立实体之间的关系建立起联系
三大范式 第一范式 1NF表中每个字段都应该具备原子性(即不可再分割特性) 特性属性不可分割即每个属性都是不可分割的原子项。(实体的属性即表中的列) 第二范式 2NF主要针对组合主键的表 表中的每个字段都应该与主键完全关联 特性在1NF的基础上非码属性必须完全依赖于候选码在1NF基础上消除非主属性对主码的部分函数依赖 例如在学生信息表中给定一个主键信息–学生学号 sn则可以确定唯一的学生信息学生姓名学生性别学生年龄出生日期…也就是除学号 sn 以外的其他属性都完全依赖于学生学号 sn 第三范式 3NF表中每个字段都应该与主键直接关联而不应该简介关联 特性在2NF基础上任何非主属性不依赖于其它非主属性在2NF基础上消除传递依赖 聚合函数与分组查询
聚合函数 (count、sum、avg、max、min) 聚合函数数据库提供给用户的用于进行数据统计的函数 实例中使用的表结构信息 1、count 统计个数 count(*)统计查询的结果个数 count(列名)会忽略空值 当要查找的列中含有空值时 2、sum 统计总和 sum(列名)对某属性值进行求和 3、avg 求平均值 avg(列名)对某属性值进行求平均 4、max 对指定字段求最大值 5、min 对指定字段求最小值 分组查询 group by fields…having…(条件)
分组查询本质上是为了进行数据统计 以表中指定字段对数据库表中数据进行分组然后进行数据统计
例如在学生表中求男女生的平均成绩
注意分组查询中需要进行条件过滤时不能使用 where而要使用 having
例如在学生信息表中筛选出平均成绩大于80的性别信息 多表联查
将多张表中的数据进行合并查询--------- 笛卡尔积
给定两张表结果
内连接
在两张表中数据进行连接时候找到了符合连接条件的数据则进行连接找不到符合连接条件的数据则丢弃 内连接 select* from table1 inner join table2 on condition 内连接结果 外连接左连接右连接
1左连接
左连接以左表作为基表在右表中查找符合连接条件的数据找到了则连接找不到连接 NULL 左连接 select* from table1 left join table2 on condition 左连接结果 2右连接
以右表为基表在左表中查找符合连接条件的数据找到了则连接找不到连接 NULL 右连接 select* from table1 right join table2 on condition 右连接结果 自连接
一张表自己连接自己进行查找
在前边查找中我们都是对于同一条记录中的两个不同字段进行比较查找但是当我们需要对同一条记录中同一个字段中的信息进行比较---------- 需要将这个字段的两个值并列连接起来进行比较这就需要进行自连接 as 取别名 子查询
一个 sql 语句的查询过滤条件是基于另一条查询语句的结果进行的
//示例
select * from 表名
where 条件 (
//当子查询结果只有一条结果时候使用 若存在多条结果则使用 INselect* from 表名where 条件 )IN 与 EXISTS 合并查询 UNION
将两条语句的查询结果合并起来进行返回只有当两条语句的查询结果字段保持一致才能进行合并UNION会自动去重 UNION ALL 显示所有合并的结果