DQL(数据查询)
Published on 2023-04-20 11:39 in 分类: MySQL with 7Z/
分类: MySQL

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 @   7Z/  阅读(51)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
    · 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
    · ollama系列01:轻松3步本地部署deepseek,普通电脑可用
    · 25岁的心里话
    · 按钮权限的设计及实现

    点击右上角即可分享
    微信分享提示
    电磁波切换