1.排序查询
关键字 :Order by 字段名 [ASC||DESC]
ASC:升序(默认)
DESC:降序
例
SELECT pname,price FROM product ORDER BY price (ASC||DESC);
SELECT pname,price FROM product ORDER BY price DESC,id DESC;
(当 price 字段值相同时,对 id 进行降序排序)
注:排序前可用DISTINCT进行去重
2.聚合查询
聚合函数:COUNT:求记录数的聚合函数,count函数会自动忽略空值(仅忽略括号内字段,如是*号则需要为全空方可被忽略)
MAX:求最大值
例:SELECT MAX(price) FROM product;
MIN:求最小值
AVG:求平均值
SUM:求和
例:SELECT MAX(pricr),MIN(price),AVG(price),SUM(pricr) FROM product;
注:可使用AS更改别名
普通查询:横向记录查询
聚合查询:纵向个数查询(即查询对象个数)特点:查询结果是一个单一值
例
SELECT COUNT(*) FROM product;
3.分组查询
即把查询结果分为几个组
关键字:group by 字段
例:SELECT SUM(price) FROM product GROUP BY id;
分组前:
分组后:
特点:先分组,再查询,结果数取决于能分多少组
例
SELECT COUNT(*) FROM product GROUP BY id HAVING COUNT(*) >1;
注:SELECT 后只能跟聚合函数或者分组字段,不能写其他字段
即将product字段排序并统计其大于1的个数
注:GROUP BY 后条件关键字只能用HAVING而不能用WHERE
注:WHERE 与 HAVING的区别
1.WHERE写在基本查询后,HAVING写在分组查询后
2.WHERE后不能写COUNT SUM等聚合函数,HAVING可以写
4.分页查询(只查询记录中的一部分)
关键字:LIMIT 数值1(下标,从0开始),数值2(需要查出来的记录数)
例:SELECT * FROM product LIMIT 5,5;
5.SQL的备份和恢复
增量备份 完全备份
备份过程:
恢复:
6.SQL约束
约束是为了保证数据的完整性
实体完整性:记录的完整性(每一行)约束:主键约束,唯一约束
域完整性:字段的完整性(每一列)约束:数据类型,默认约束(在插入不赋值时给予一个默认值),非空约束
引用完整性:表和表之间的关系 约束:外键约束
各种约束的介绍:
***主键约束:primary key
作用:保证字段唯一且非空
语法:1.在创建表时直接给字段添加
***唯一约束:unique
作用:保证字段唯一可以为空
7.自动增长列
***作用:把字段值交给数据库维护,数据库默认每次加一,初值默认为1
***自动增长列必须为整形,必须为键(一般为主键)
***修改AUTO_INCREMENT的初始值为100
ALTER TABLE XX AUTO_INCREMENT=100;
8.非空约束:NOT NULL
作用:保证字段不为NULL值
9.默认约束:DEFAULT
作用:给该字段添加一个默认值(若添加记录时未赋值的话)
10.多表操作
一对多 多对多 一对一
***一对多关系的建表原则:建立两张表,一张为主表,一张为从表
在从表(多方)创建一个字段,作为外键指向主表
从表中必须由一个字段引用主表的主键,这个字段称为外键
***多对多
多对多的建表原则:建立一张中间表
中间表注意事项:a.必须有自己的主键 b.必须有两个外键