DQL(数据查询)

DQL(数据查询)

DQL1

 

  • 基础查询

    DQL2

     

     

     

    DQL4

     

     

    不推荐 select * from 表名; -- 查询所有列的所有数据,列名的列表可以使用*代替,但是以后在公司是不让使用的 为了语法规范 建议一个个写

    推荐

    select 列名1,列名2,... from stu;

    select id,name,age,sex,address,math,english,hire_date from stu;

    DQL6

     

 

在查询的表中可以发现 有重复的地址信息 那么我们可以用关键字去去除重复的信息

DQL7

 

distinct关键字

DQL8

 

在查询的表中 有些英文单词可能不认识 为了更好的展示,我们可以给列起一个别名 让别人更易于阅读

DQL9

 

DQL10

 

as也可以去掉直接跟上别名但是要与列名之间有一个空格

条件查询(where)

DQL1

 

1,查询年龄大于20岁的学员信息

DQL2

 

2,查询年龄大于等于20岁的学员信息

DQL3

 

3,查询年龄大于等于20岁,并且年龄不小于等于30岁的学员信息

DQL4

 

第二种方法

DQL5

 

4,查询入学目期在1998-09-01 1999-08-01之间的学员信息

DQL6

 

5,查询年龄等于18岁的学员信息

DQL7

 

6,查询年龄不等于18岁的学员信息

DQL8

 

第二种方法

DQL9

 

8.查询英语成绩为null的学员信息 注意null值的比较不能使用= !=需要使用is或者is not比较

DQL10

 

9.查询英语成绩不为null的学员信息

DQL11

 

模糊查询

  • 1,_:代表单个任意字符

  • 2,%:代表任意个数字符

1,查询姓马的学员信息

DQL12

 

2,查询第二个字是'花'的学员信息

DQL13

 

3,查询名字中包含'德'的学员信息

DQL14

 

分组查询(group by)

1

 

-- 分组查询-------------------- /*

SELECT字段列表FROM表名[WHERE分组前条件限定] GROUP BY分组字段名[HAVING分组后条件过滤..;

*/ select * from stu ; -- 1.查询男同学和女同学各自的数学平均分

2

 

select sex, avg(math) from stu group by sex; -- 注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义 -- 2.查询男同学和女同学各自的数学平均分,以及各自人数

3

 

select sex, avg(math),count() from stu group by sex; -- 3.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组

4

 

select sex, avg(math),count() from stu where math>70 group by sex; -- 4,查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2

5

 

select sex, avg(math) from stu WHERE math > 70 group by sex having count(*)>2;

排序查询(order by)

1

 

  • 排序方式: /* ASC 升序排列 (默认) DESC: 降序排列 */ -- 1,查询学生信息,按照年龄升序排列

    2

     

    select * from stu order by age asc; -- 默认

    -- 2,查询学生信息,按照数学成绩降序排列

    3

     

    select * from stu order by math desc;

    -- 3,查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

    4

     

    select * from stu order by math desc ,english asc;

    聚合函数

    1

     

    /聚合函数--------------------- -- count:统计数量 -- 取值: -- 1,主键 -- 2, -- max:求最大值 -- min:求最小值 -- sum:求和 -- avg:求平均值 */ -- 1,统计班级一共有多少个学生

    2

     

    select count(id) from stu; -- count 统计不能为null

    3

     

     

    select count(english) from stu;-- null列没有被统计

    4

     

     

    select count(*) from stu; -- 号将会自动计算最快的一列 来进行统计 -- 2,查询数学成绩的最高分

    5

     

    select max(math) from stu; -- 3,查询数学成绩的最低分

    6

     

    select min(math) from stu; -- 4,查询数学成绩的总分

    7

     

    select sum(math) from stu; -- 5,查询数学成绩的平均分

    8

     

    select avg(math) from stu; -- 6,查询英语成绩的最低分

    9

     

    select min(english) from stu; /*特点 所有聚合函数都不对null值进行运算 */

分页查询(limit)

1

 

-- 分页查询:--------------------- /* SELECT字段列表 FROM表名LIMIT―起始索引,查询条目 起始索引:从0开始 */ select * from stu ; -- 1.从0开始查询,查询3条数据

2

 

select * from stu limit 0,3; -- 2.每页显示3条数据,查询第1页数据--

3

 

select * from stu limit 0,3; -- 3.每页显示3条数据,查询第2页数据

4

 

select * from stu limit 3,3; -- 4.每页显示3条数据,查询第3页数据

5

 

select * from stu limit 6,3;

-- 起始索引= (当前页码-1)*(每页显示的条数)

 DQL小结

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2023-04-20 11:39  7Z/  阅读(41)  评论(0编辑  收藏  举报