-
分页查询:
假分页/逻辑分页/内存分页
一次性查询出所有的数据,存放到内存中(集合),每次翻页的时候,都是从内存中取出的指定条数
特定:翻页比较快.如果数据量过大,可以回造成内存溢出
真分页/物理分页/数据库分页
每次翻页都是从数据库中截取指定的条数,
假设每页10条数据,
第一页查询0-9条 ,第二页 10-19 ....
分页:
语法:select * from 表名 LIMIT ? , ?;
第一个参数 ? (当前页数 -1) * 当前页数要显示的数据条数
第二个参数 ? 代表的是实际页数要显示的数据条数(这一页要显示多少数据)
第一页SELECT * FROM product LIMIT 0, 3 --> 0,1,2
第二页SELECT * FROM product LIMIT 3, 3 --> 3,4,5
第三页SELECT * FROM product LIMIT 6, 3 --> 6,7,8
9, 3 ---> 9,10,11
12, 3 ---? 12,13,14
书写循序: select -- from -- where -- group by -- [having -- order by] -- limit
ps:执行循序:
from --> where -->group by --> having --> select ---> order by --> limit
-
统计函数
- 操作一组数据,并返回一个值
- COUNT 统计结果记录数:
- MAX 统计最大值
- MIN 统计最小值
- SUM 求和
- AVG 平均值
AVG:需求: 查询所有商品的平均零售价格
select AVG(salePrice) from product;
COUNT:需求:查询所有商品记录
select COUNT(id) from product;
需求:查询分类为2的商品总数
select COUNT(id) from product where dir_id=2;
MAX、MIN、SUM:需求:查询产品的最小零售价格,最高零售价格及所有商品的总零售价格
select MIN(salePrice),MAX(salePrice),SUM(salePrice) from product;
-
外键约束
- 外键约束的由来可以说是因为需要从多个表中查询出想要的结果,但是多表查询时会出现一个问题
- 多表查询:select 列 from 表A,表B;
- 将多个表联合起来进行查询,查询到想要的结果
- 但是在进行多表查询时回出现错误-------->笛卡尔积
- 笛卡尔积
- 所谓的笛卡尔积就是包含集合中任意取出两个元素进行组合
避免笛卡尔积的出现 - 数学中的定义: A={a,b} b={0,1,2} 两个集合的笛卡尔积;
{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}
- 所谓的笛卡尔积就是包含集合中任意取出两个元素进行组合
- 外键约束:FOREIGN KEY
- 一个表中的外键约束指向另一个表中的主键
- 外键约束的创建就是根据所需要得到的结果进行两个表格的比较找出相关属性创建外键
- 用于消除笛卡尔积的现象
- 主键(PRIMARY KEY):约束当前表中指定的类非空唯
- 外键(FOREIGN KEY):A表中的外键列的值必须是B表中的主键类的值
- 用于消除笛卡尔积的现象
- 主键约束:PRIMARY KEY
- PRIMARY KEY 约束唯一表示数据库中的每条记录
- 主键必须包含唯一的值
- 主键不能包含null
- 每个表都应该有一个主键,并且只能应有一个主键
-
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, PRIMARY KEY (P_Id) )
CREATE TABLE Persons ( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, )
特殊情况:多个主键约束
-
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) )
注释:在上面的实例中,只有一个主键PRIMARY KEY(pk_PersonID),但是pk_PersonID 的值是由两个列(P_Id 和 LastName)组成的。