MySQL中的DQL

首先,见上一篇博客我们可以知道DQL就是(data query language)数据查询语言。

主功能就是查询数据库中的数据。

接下来,我们看一看DQL的基础功能和语法。

具体实例:

一.基础查询

语法:

1.查询多个字段
select 字段列表 from 表名;
select * from 表名; -- 查询所有数据

2.去除重复记录
select distinct 字段列表 from 表名;

3.起别名
as:as也可省略,但需要空格分隔

* 表示所有,但是不建议使用

例:

二.条件查询

1.查询语法
select 字段列表 from 表名 where 条件列表;

注意:null值比较不能用=,!=。需要使用is,is not。

例:

模糊查询

三.排序查询

select 字段列表 from 表名 order by 排序字段名1 排序方式1,排序字段名2 排序方式2,……;

排序方式:

  •  asc(ascend):升序排序(默认值)
  •  desc(descend):降序排序

注意:如果有多个排序条件,当前边条件值一样时,才会根据第二条件进行排序

例:

-- 查询,以数学成绩升序排序,一样的数值下按英语成绩降序排序
select * from stu order by math asc,english desc;

四.分组查询

统计操作(聚合函数)

分组查询

具体是从group by分隔开来,前半部分是分组前的查询,后半部分是分组和分组后考虑的结果。

group by 后的分组字段名值指按什么分组

select后字段列表是指最后表格中显示的哪些东西(列)

例:

原表格:

-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算
select gender,avg(math),count(*) from stu where math > 60 group by gender;

-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算,分组之后人数大于两个人
select gender,avg(math),count(*) from stu where math > 60 group by gender having count(*)>2;

运行结果:

第一句:第二句:

五.分页查询

例:

select id,name,math,english from stu limit 0,3;-- 第一页,每页三条
select id,name,math,english from stu limit 3,3;-- 第二页,每页三人

起始索引是指每页的第一行数据=(当前页码-1)*每页显示条数

分页查询是MySQL的方言

运行结果:

第一句:

第二句:

总:

基础语句就是以下内容了

代码见下

-- 创建学生表
create table stu(
id int primary key auto_increment, -- 编号
name varchar(5), -- 姓名
gender char(1), -- 性别
age int, -- 年龄
admission_date date, -- 入学日期
teacher_s int, -- 教学老师
math int,
english int
);

insert into stu values(1,'李明','男',19,'2021-9-1',1,91,67),
(2,'李花','女',19,'2021-9-1',2,90,89),
(3,'张青','女',18,'2022-9-1',1,68,97),
(4,'王五','男',18,'2022-9-1',1,84,79),
(5,'张三','男',19,'2021-9-1',2,93,96),
(6,'王清','女',20,'2020-9-1',1,58,65),
(7,'姬发','男',20,'2020-9-1',2,96,92);




-- 查询
select * from stu;
select distinct age_s from stu;-- 去重
-- 条件查询
select * from stu where math between 60 and 90;
select * from stu where name like '王_';
-- 排序查询
select * from stu order by math asc,english desc;
-- 分组查询
-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算
select gender,avg(math),count(*) from stu where math > 60 group by gender;
-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算,分组之后人数大于两个人
select gender,avg(math),count(*) from stu where math > 60 group by gender having count(*)>2;
-- 分页查询

select id,name,math,english from stu limit 0,3;-- 第一页,每页三条
select id,name,math,english from stu limit 3,3;-- 第二页,每页三人

其他内容请听下回讲解

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值