数据库的三范式:
1.第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)
2. 第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
3.第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
所以第三范式具有如下特征:
1,每一列只有一个值
2,每一行都能区分。
3,每一个表都不包含其他表已经包含的非主关键字信息。
数组组合的情况-笛卡尔积-交叉查询
笛卡尔积:有很多的错误数据,开发中应该避免笛卡尔积
是使用等值关系屏蔽笛卡尔积
内链接查询:是相对于外链接
内连接分为:隐式内连接:Select from s,s1 where s.dir_id = s1.id
Select from S AS s,S1 AS s1 where s.dir_id = s1.id
显示内连接:Select from s INNER JOIN s1 ON s.dir_id = s1.id
排序关键字: ORDER BY 字段名1 DESC,字段名2 DESC 条件查询
ASC-升序 DESC-降序 count 总记录数 max最大值 min最小值
Sum 总和 AVG 平均数
分组:Group by
分页: LIMIT
例:select from SS limit X1,X2
X1:开始的索引位置,X2:需要展示的记录
开始的索引位置 = (当前页-1)pagesize
注意:在where后面不允许使用分组函数
Having:是否存在
外连接查询:左外连接:查询出join左边表的全部数据查询出来,join右边的表不匹配的数据使用null填充数据
子查询:通过对一个数据的查询作为上级查询数据的条件
设置显示格式:
为方便用户浏览查询的结果数据,有时需要设置显示格式,可以使用CONCAT函数来连接字符串。
需求:查询商品的名字和零售价。
格式:xxx商品的零售价为:xxx
SELECT CONCAT(productName,‘商品的零售价为:’,salePrice) AS productSalePrice FROM product;