猪猪的IT之路---Java成长之路(MySQL数据库操作——联表查询+范式)
程序员文章站
2024-03-08 16:46:34
...
Mysql数据库-多表(联表)查询
数据库中联表查询:
内连接:查询重合部分,inner join
语法:select 表名.字段名,表名.字段,….from 表名1 inner join 表名2 on(条件)|where 条件
结果:查询出表1和表2的交集
外连接:分为左外连和右外连 left join(left out join)和right join(right out join)
左外连:将在left join左边的表中所有数据全部查询(除了存在交集的部分,还会将左表剩下的部分查询显示),没有的使用null填充
右外连:将在right join右边的表中所有数据全部查询,没有的使用null填充
全连接:union(合并,但是mysql不支持,使用left join union right join)
在查询语句后面继续添加order by设置结果的升序和降序,默认为升序(ASC),还可以设置降序(DESC)
语法:select ……from….where……order by ASC|DESC
提示:所有数据库一般默认都是升序,只有需要使用降序显示时使用该语法
如果想要只获取查询结果的某部分区间数据结果时可以使用
语法:limit 开始索引,获取行数
数据库三大范式:用于减少冗余(重复的数据)数据
第一方式:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项
比如用户的地址字段:
没有遵循第一范式的设计方式是直接将”地址”设置为一个字段
遵循第一范式的设计是将”地址”拆分为”省份” “城市” “详细地址”三个字段。
第二范式:
-
必须先满足第一范式
-
要求表中的字段完全依赖于主键。所谓完全依赖是指不能存在仅依赖主键一部分的字段
一张表中只能存在一种数据,而不能讲多种数据保存在一张表中