-- 一 基础查询
-- 1查询多个字段
-- SELECT 字段列表 FROM 表名 ;
-- SELECT *FROM 表名; -- 查询所有数据
-- 2去除重复记录
-- SELECT DISTINCT 字段列表 FROM 表名;
-- 3起别名
-- AS --AS也可以省略
-- select name,sex as 性别 from stu;
-- select DISTINCT name from stu;
-- 二 条件查询
-- 1条件查询语法
-- SELECT 字段列表 FROM 表名 WHERE 条件列表;
-- NULL值的比较不能用= ,!= 需要使用is ,is not
-- 2条件
-- > < >= <= = <>或!=
-- BETWEEN...AND... 在某个范围内(都包含)
-- IN(...) 多选一
-- LIKE 占位符 模糊查询 _单个任意字符 %多个任意字符
-- IS NULL 是NULL
-- IS NOT NULL 不是NULL
-- AND或&& 并且
-- OR或|| 或者
-- NOT或! 非,不是
-- 3模糊查询 like
-- /*
-- 通配符:
-- (1)_:代表单个任意字符
-- (2)%:代表任意个数字付
-- */
select *from stu;
-- 如:查询姓马的学员信息
SELECT * from stu where name like '马%';
-- 查询第二个字是‘花’的学员信息
SELECT *from stu where name like '_花%';
-- 查询名字中包含'德'的学员信息
SELECT *FROM stu where name like '%德%';
-- 三 排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2[排序方式2]...;
/排序方式:
ASC:升序排列(默认值);
DESC:降序排列;/
-- 如果有多个排序条件,当前面的条件值一样时,才会根据第二条件进行排序
-- 如:按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列
-- SELECT *FROM stu order by math desc ,english asc ;
-- 四 分组查询
-- 1聚合函数
-- 1.1概念:将一列数据作为一个整体,进行总想计算
-- 1.2聚合函数分类:
/count(列名) 用于统计数量
取值:1.主键(非空且唯一) 2.
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值*/
-- 1.3聚合函数语法:
SELECT 聚合函数名(列名) FROM 表;
-- ps:null 值不参与所有聚合函数运算
-- 2分组查询语法:
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
-- ps:分组后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义。即语法找那个的字段列表为聚合函数和分组字段
SELECT sex,avg(math) FROM stu GROUP BY sex;
/*where 和 having的区别:
·执行时机不一样:where是分组前进行限定,不满足where条件则不参与分组,而having是分组之后对结果进行过滤
·可判断的条件不一样:where 不能对聚合函数进行判断,having可以
执行顺序:where > 聚合函数 > having */
-- 五 分页查询
-- 1.分页查询语法:
SELECT 字段列表 FROM 表名 LIMIT 起始索引 ,查询条目数;
/起始索引:从 0 开始
计算公式:起始索引 = (当前页码数 - 1)每页显示的条目数
tips:分页查询 Limit 是MySQL数据库的方言
Oracle 分页查询使用的是 rownumber
SQL Server分页查询使用top */