【MySQL】如何实现单表查询?

这篇具有很好参考价值的文章主要介绍了【MySQL】如何实现单表查询?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【MySQL】如何实现单表查询?

在我们对数据进行操作时,查询无疑是至关重要的,查询操作灵活多变,我们可以根据开发的需求,设计高效的查询操作,把数据库中存储的数据展示给用户。


前言

查询是数据操作至关重要的一部分,比如说在所有商品中查找出价格在规定范围内的所有商品,要想把数据库中的数据在客户端中展示给用户,一般都进行了查询的操作。

在实际开发中,我们要根据不同的需求,并且考虑查询的效率来决定怎样进行查询,学习查询前,可以先看看查询的完整语法:

SELECT
	字段列表
FROM
	表名列表
WHERE
	条件列表
GROUP BY
	分组字段
HAVING
	分组后条件
ORDER BY
	排序字段
LIMIT
	分页限定

根据查询的完整语法中的关键字,我们分别来学习基础查询,条件查询,排序查询,分组查询和分页查询。

我们使用以下的案例学习单表查询:

-- 删除stu表
drop table if exists stu;
-- 创建stu表
CREATE TABLE stu (
id int, -- 编号
name varchar(10), -- 姓名
age int, -- 年龄
gender varchar(5), -- 性别
math double(5,2), -- 数学成绩
english double(5,2) -- 英语成绩

);
-- 添加数据
INSERT INTO stu(id,name,age,gender,math,english)
VALUES
(1,'小张',23,'男',66,78),
(2,'小李',20,'女',98,87),
(3,'小陈',55,'男',56,77),
(4,'小樊',20,'女',76,65),
(5,'小马',20,'男',86,NULL),
(6,'小赵',57,'男',99,99);

在Navicat中选中SQL执行:

【MySQL】如何实现单表查询?

1. 基础查询

1.1 基础查询语法

查询多个字段:

select 字段列表 from 表名;

查询全部字段:

select * from 表名;

去除重复记录:

select distinct 字段列表 from 表名;

起别名操作:

select 字段名 别名 from 表名;

1.2 基础查询练习

我们使用前言中的案例进行基础查询练习:

查询多个字段的练习:

select name,math from stu;

【MySQL】如何实现单表查询?

起别名操作练习:

select name,english 英语成绩 from stu;

【MySQL】如何实现单表查询?

2. 条件查询

2.1 条件查询语法

一般语法:

select 字段列表 from 表名 where 条件列表;

条件查询一般配合运行符进行,下面是常见的几个运算符:

运算符 功能描述
> < = ! 大于 小于 等于 不等于
between…and… 在这个范围之内
in(…) 多选一
is null / is not null 是null / 不是null
and 或 && 并且
or 或 || 或者

2.2 条件查询练习

我们使用前言中的案例进行条件查询练习:

查询年龄大于20的学生信息:

select * from stu where age>20;

【MySQL】如何实现单表查询?查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于21岁的学生信息:

select * from stu where age in(18,20,21);

【MySQL】如何实现单表查询?模糊查询使用like关键字,可以使用通配符进行占位:

  • _ : 代表单个任意字符
  • % : 代表任意个数字符

查询姓名中含有张的学生信息:

select * from stu where name like '%张%';

【MySQL】如何实现单表查询?

3. 排序查询

3.1 排序查询语法

select 字段列表 from 表名 order by 排序字段名1 [排序方式]...;

注:排序方式又两种:分别是升序ASC和降序DESC,默认情况下是升序ASC。

3.2 排序查询练习

我们使用前言中的案例进行排序查询练习:

4. 聚合函数

4.1 聚合函数语法

什么是聚合函数呢?在进行查询操作时,我们往往需要对一整列进行运算,例如我们可以计算一整列成绩数据的平均值,我们就要使用聚合函数。下面是常见的聚合函数:

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值

一般语法:

select 聚合函数 from 表名;

注:NULL值不参与聚合函数运算。

4.2 聚合函数练习

我们使用前言中的案例进行聚合函数的练习:

统计该表中一共有几个学生:

select count(id) from stu;

【MySQL】如何实现单表查询?

上面我们使用某一字段进行运算,这样做可能面临的问题是某一个值可能是NULL,所以我们一般使用 * 进行运算,因为一行中不可能所有的字段都是NULL。

select count(*) from stu;

查询数学成绩的平均分:

select avg(math) from stu;

【MySQL】如何实现单表查询?

5. 分组查询

5.1 分组查询语法

select 字段列表 from 表名 [where 分组前的条件限定] group by 分组字段名 [having 分组后的条件过滤]

注:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义。

5.2 分组查询练习

我们使用前言中的案例进行分组查询练习:

查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组:

select gender, avg(math),count(*) from stu where math > 70 group by gender;

【MySQL】如何实现单表查询?

查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的:


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

【MySQL】如何实现单表查询?

注:where 和 having 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。所以,where 不能对聚合函数进行判断,having 可以。

6. 分页查询

6.1 分页查询语法

在大家的印象中,网页在展示大量的数据时,往往不是把数据一下全部展示出来,也是用分页展示的形式,其实就是对数据进行分页查询的操作,即每次只查询一页的数据展示到页面上。

select 字段列表 from 表名 limit 查询起始索引,查询条目数;

limit 关键字中,查询起始索引这个参数是从0开始的。

5.2 分页查询练习

我们使用前言中的案例进行分页查询练习:

从0开始查询,查询3条数据:

select * from stu limit 0,3;

【MySQL】如何实现单表查询?起始索引 = (当前页码 - 1) * 每页显示的条数

7. 总结

结合经典案例的练习,我们已经完成了单表查询所有的基础和练习训练,查询作为对数据操作最重要的一部分,一定要不断地练习才能熟练的进行操作。文章来源地址https://www.toymoban.com/news/detail-464038.html

到了这里,关于【MySQL】如何实现单表查询?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql单表查询综合

    首先创建一个数据库 d1 然后创建一个表,表的内容如下: “row_format = dynamic” 是 MySQL 中用于设置表格行格式的一种选项。 它表示表格的行格式是动态的,即每一行可以根据需要使用不同的格式。 当使用 “row_format = dynamic” 时,MySQL 会自动根据每一行的实际长度选择最适合

    2024年02月13日
    浏览(37)
  • MySQL之单表查询

    素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE `worker` (  `部门号` int(11) NOT NULL,  `职工号` int(11) NOT NULL,  `工作时间` date NOT NULL,  `工资` float(8,2) NOT NULL,  `政治面貌` varchar(10) NOT NULL DEFAULT \\\'群众\\\',  `姓名` varchar(20) NOT NULL,  `出生日期

    2024年02月01日
    浏览(43)
  • MySQL-单表、多表查询

    创建表并添加数据 查看表结构和表信息

    2024年01月18日
    浏览(40)
  • MySQL每日一练:单表查询、连接查询

    目录 1、创建两张表 student表: score表 : 2.为student表和score表增加记录 student表: score表: 3、按条件查找 student表: score表 : student表:   score表: 1.查询student表的所有记录 2.查询student表的第2条到4条记录 3.从student表查询所有学生的学号(id)、姓名(name)和院系(departme

    2024年02月15日
    浏览(51)
  • MySQL---单表查询综合练习

    创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT \\\'员工编号\\\', ename VARCHAR(10) COMMENT \\\'员工名字\\\', job VARCHAR(10) COMMENT \\\'职位\\\', mgr INT(4) COMMENT \\\'上司\\\', hiredate DATE COMMENT \\\'入职时间\\\', sal INT(7) COMMENT \\\'基本工资\\\', comm INT(7) COMMENT \\\'补贴\\\', deptno INT(2) COMMENT \\\'所属部门编号\\\' ); emp表添加主键 mysql alte

    2024年01月21日
    浏览(40)
  • MySQL单表查询与多表连接查询

    单表查询 创建数据表emp 插入数据 -- 1. 查询出部门编号为30的所有员工 -- 2. 所有销售员的姓名、编号和部门编号。 -- 3. 找出奖金高于工资的员工。 -- 4. 找出奖金高于工资60%的员工。 -- 5. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。 -- 6. 找出部门

    2024年02月13日
    浏览(41)
  • mysql单表查询,排序,分组查询,运算符

    查询插入的数据据 – 1. 查询出部门编号为30的所有员工 – 2. 所有销售员的姓名、编号和部门编号。 – 3. 找出奖金高于工资的员工。 – 4. 找出奖金高于工资60%的员工。 – 5. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。 – 6. 找出部门编号为10中

    2024年02月13日
    浏览(40)
  • MySQL每日一练:单表查询

    一、首先需要创建一个名为worker的表:   二、插入数据: 三、查询 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。   3、求出所有职工的人数。   4、列出最高工和最低工资。    5、列出职工的平均工资和总工资。    6、创建一个

    2024年02月13日
    浏览(29)
  • MySQL单表查询练习题

    目录 第一题  第二题  第三题   1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql create table pet( name varchar(20) not null, owner varchar(20), species varchar(20) not null, sex char(1) not nu

    2024年02月13日
    浏览(36)
  • mysql 指定线程数 并行查询单表

    MySQL是一款开源的关系型数据库管理系统,广泛应用于各种应用场景。在MySQL中,并行查询是一个非常重要的概念,可以加快查询速度。在本文中,我们将介绍如何在MySQL中对一个表进行并行查询。 上述代码创建了一个名为employee的表,该表有id、name、age、title和department五个字

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包