0


零基础学MySQL(四)-- 数据库最常用的操作【查询基础篇 -- 单表查询】

在这里插入图片描述


目录


在这里插入图片描述


📔一、最简单的 select 语句

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名;

(1) SELECT 指定查询哪些列的数据
(2) * 代表查询所有列
(3) DISTINCT 可选,显示结果是否去除重复数据

2️⃣基本练习

以球员表 nba_player 为例

在这里插入图片描述(1) 查询表中所有球员的信息

SELECT*FROM nba_player;

(2) 查询表中所有球员的身高和臂展

SELECT height, arm_span FROM nba_player;

(3) 查询表中去重后的球员身高

SELECTDISTINCT height FROM nba_player;

**

注意:查询的记录,每个字段都相同才会去重

**

3️⃣补充说明

(1) 使用表达式对查询的列进行运算

统计每个球员的身高加臂展

SELECT`name`,(height + arm_span)FROM nba_player;

(2) 在 select 语句中可使用 as 语句取别名

使用别名表示球员的名字和身高

SELECT`name`AS'名字', height AS'身高'FROM nba_player;

📕二、使用 where 子句进行过滤查询

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    WHERE 条件;

2️⃣在 where 子句中经常使用的运算符

在这里插入图片描述

**

使用 LIKE 操作符,% 表示0到多个任意字符,_ 表示单个任意字符

**
**

查询表结构: DESC 表名

**
**

注意:where字句中不能使用聚合函数,如果使用应该事先使用 as 语句取别名

**

3️⃣基本练习

(1) 查询 LeBron James 的信息

SELECT*FROM nba_player
    WHERE`name`='LeBron James';

(2) 查询身高大于200并且臂展大于身高的球员

SELECT*FROM nba_player
    WHERE height >200AND arm_span > height;

(3) 查询身高大于200并且首字母是L的球员

SELECT*FROM nba_player
    WHERE height >200AND`name`LIKE'L%';

(4) 查询第三个字母是m的球员名字与工资

SELECT`name`,sal FROM nba_player
    WHERE`name`LIKE'__m%';

(5) 查询身高在190–200之间的球员

SELECT*FROM nba_player
    WHERE height BETWEEN190AND200;

(6) 查询身高为196,198,201的球员

SELECT*FROM nba_player
    WHERE height IN(196,198,201);

(7) 查询臂展比身高长10以上的球员

SELECT*FROM nba_player
    WHERE arm_span - height >10);

📖三、使用 order by 子句排序查询结果

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    ORDERBY 列名 ASC|DESC;

**

ASC 表示升序(默认),DESC 表示降序

**

2️⃣基本练习

将球员信息按照身高进行降序排列

SELECT*FROM nba_player
    ORDERBY height DESC;

📗四、使用 limit 字句进行分页查询

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    LIMIT从第(n+1)行显示, 显示n行;

2️⃣基本练习

按球员进入NBA的时间降序取出,每页显示3条记录,请分别显示第1页和第2页

-- 第1页
SELECT*FROM nba_player
    ORDERBY enter_nba_time DESCLIMIT0,3;-- 第2页
SELECT*FROM nba_player
    ORDERBY enter_nba_time DESCLIMIT3,3;

📘五、使用 group by 字句进行分组查询

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    GROUPBY 列名;

2️⃣基本练习

显示每个位置的球员数量和平均工资

SELECTCOUNT(*),AVG(sal),`position`FROM nba_player
    GROUPBY`position`

📙六、使用 having 字句对分组后的结果进行过滤

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    GROUPBY 列名
    HAVING 限制条件;

**

having 与 group by 一起使用

**

2️⃣基本练习

显示表中平均工资低于4000的篮球位置及其平均工资

SELECTAVG(sal),`position`FROM nba_player
    GROUPBY`position`HAVINGAVG(sal)<4000;

📒七、总结

如果select语句中同时包含以上字句,那么他们的顺序是:**

where --> group by --> having --> order by --> limit

**

1️⃣基本语法

SELECT[DISTINCT]*|(列名,列名,...)FROM 表名
    WHERE 条件
    GROUPBY 列名
    HAVING 限制条件
    ORDERBY 列名 ASC|DESCLIMIT从第(n+1)行显示, 显示n行;

2️⃣基本练习

统计本表各个位置的平均工资,并且是大于3000的,并按照平均工资从高到低排序,取出前两行记录

SELECTAVG(sal),`position`FROM nba_player
    GROUPBY`position`HAVINGAVG(sal)>3000ORDERBYAVG(sal)DESCLIMIT0,2;
标签: 数据库 mysql sql

本文转载自: https://blog.csdn.net/programmerchiu/article/details/128805191
版权归原作者 邱崇源 所有, 如有侵权,请联系我们删除。

“零基础学MySQL(四)-- 数据库最常用的操作【查询基础篇 -- 单表查询】”的评论:

还没有评论