mysql怎么进行单表查询_MySQL数据库单表查询

一、 简单查询

1. Select语句

Select [distinct] * | {字段名1,字段名2,字段名3,。。。}

From表名

[where条件表达式1]

[groupby 字段名 [having 条件表达式2]]

[orderby 字段名 [asc|desc]]

[limit[offset] 记录数]

(1) Distinct是可选参数,用于剔除查询结果中重复的数据;

(2) Group by是可选参数,用于将查询结果按照指定字段进行分组;having也是可选次参赛,用于对分组后的结果进行过滤

(3) Order by是可选参数,用于将查询结果按照指定字段进行排序,排序方式由参数ASC或DESC控制,如果不指定,则默认为升序排列(ASC)

(4) Limit 是可选参数,用于限制查询结果的数量,limit后面可以跟两个参数,第一个参数offset表示偏移量,如果偏移量为0,则从查询结果的第一条记录开始,偏移量为n则从查询结果中的第n+1条记录开始。如果不指定,则默认为0. 第二个参数‘记录数’表示返回查询记录的条数。

2. 查询所有字段

(1) 在select语句中指定所有字段

a1de3b0361c1f3f5936e46e89a9f2dc7.png

(2) 在select语句中使用*通配符代替所有字段:查询结果只能按照字段在表中定义的顺序显示。

3. 查询指定字段

62a07c5c68fd846e58ee54b557b48ad1.png

二、 按条件查询

1. 带关系运算符的查询

f8bdf52894e82f2106178db3886daa0a.png

2. 带in关键字的查询:in关键字用于判断某个字段的值是否在指定集合中。

54809152a48ee5798125241c7c808ddf.png

26be2c017701e3bf88ed7eecbdfcb7b8.png

3. 带between and关键字的查询:用于判断某个字段的值是否在指定的范围内。

df762c84ca8a1029e2fc7efbc20c0ca2.png

12d79f12bb3d8173178f2ec8c73cfd00.png

4. 空值查询

102f7a08eb832ae4d6cc700a31e1d729.png

5. 带distint关键字的查询:过滤掉查询记录中重复的值

7724165839405fb1fef9224a3dc4fbe2.png

当distinct关键字作用于多个字段时,只有它后面指定的多个字段值都相同,才会被认为是重复记录。

6. 带like关键字的查询:like关键字可以判断两个字符串是否相匹配。格式如下:

Select * | [{字段名1,字段名2,…} from 表名

Where 字段名 [not] like ‘匹配字符串’;

(1) 百分号(%)通配符:匹配任意长度的字符串,包括空字符串

cfeb335c0d902901a44cdfac5041ae1f.png

032281357d76ee0e91e3a2c2fb091f1d.png

可以使用多个%通配符,也可以和not一起使用

255391e5f7541e07388d61d7ccb41f79.png

(2) 下划线(_)通配符:只能匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符,如果使用多个下划线匹配多个连续的字符则下划线之间不能有空格。如‘M_ _QL’中间有一个空格,只能匹配’My SQL’而不能匹配‘MySQL’。

6f28a7e908233aafeeb9a65aa564dbb7.png

(3) 使用百分号和下划线通配符进行查询操作:

注意:如果要匹配字符串中的百分好和下划线,就需要在铜牌字符串中使用‘\’对百分号和下划线进行转义,如’\%’匹配百分号字面值。

7. 带and关键字的多条件查询:使用and关键字可以连接两个或者多个查询条件,只有满足所有条件的记录才会被返回。每多加一个查询条件就多加一个and关键字。

4749be8f168f1bde60c7528c55f500a1.png

42d1914ac2de1e1eb18f066c97e5a99c.png

8. 带or关键字的多条件查询:只要满足一个条件即返回记录。

ba4a04412668cf5cb390d5155da3832e.png

9. Or和and关键字在一起使用的情况:and的优先级高于or, 应优先运算and两边的条件表达式,再运算or两边的条件表达式。

三、 高级查询

1. 聚合函数:count(),sum(),avg(),max()和min()

(1) count()函数用来统计记录的条数:selectcount(*) from 表名

13cb4b2f3720cbece1d28731724ed95a.png

(2) sum()函数用于求出表中某个字段所有值的总和:select sum(字段名) from 表名

80eef222eef198b0385e2a77dd9dcc6d.png

(3) avg()函数用于求出某个字段所有值的平均值:select avg(字段名) from 表名;

cf60d3f4203a915a7d2589b4d6ea46e9.png

(4) max()函数是求最大值的函数,用于求出某个字段的最大值:select max(字段名) from 表名。

db03541e0eb92a4e659977621b683b85.png

(5) min()函数是求最小值的函数:selectmin(字段名) from 表名

2dc9c098fa0b4fb0eca9001e6f4a6a00.png

2. 对查询结果排序

Select 字段名1,字段名2,… from表名 order by 字段名1[ASC | DESC],字段名2[ASC | DESC]…

6d6ca3c8ce18b5088c86b23feba33ff0.png

0b857f87b88d301f14f804e8aa349440.png

3. 分组查询

Select 字段名1,字段名2,… from 表名 group by 字段名1,字段名2,… [having 条件表达式];

(1) 单独使用group by分组:查询结果安装字段中不同的值进行分类,查询结果只显示每个组中的一条记录。

032bbe417a45ac3fb019be3b42b5d91e.png

(2) Group by 和聚合函数一起使用

6ad565e2228303ad890d3c8b049daf50.png

(3) Group by和having关键字一起使用

Having关键字和where关键字的作用相同,都用于设置条件表达式对查询结果进行过滤,两者的区别在于having关键字后可以跟聚合函数,而where关键字不能。通常having关键字都和group by一起使用,用于对分组后的结果进行过滤。

4. 使用LIMIT限制查询结果的数量:指定查询结果从哪一条记录开始以及一共查询多少条信息。

Select 字段名1,字段名2,… from表名 limit [offset,] 记录数

63930bafc3431b3d4718471e9d7646a4.png

5. 函数(列表)

数学函数函数名称作用

Abs(x)返回x的绝对值

Sqrt(x)返回x的非负2次方根

Mod(x,y)返回x被y除后的余数

Ceiling(x)返回不小于x的最小整数

Floor(x)返回不大于x的最大整数

Round(x,y)对x进行四舍五入操作,小数点后保留y位

Runcate(x,y)舍去x中小数点y位后面的数

Sign(x)返回x的符号,-1,0或1

字符串函数函数名称作用

Length(str)返回字符串str的长度

Concat(s1,s2,…)返回一个或者多个字符串连接产生的新的字符串

Trim(str)删除字符串两侧的空格

Replace(str,s1,s2)使用字符串s2替换字符串str中所有的字符串s1

Substring(str,n,len)返回字符串str的子串,起始位置为n,长度为len

Reverse(str)返回字符串反转后的结果

Locate(s1,str)返回子串s1在字符串str中的起始位置

日期和时间函数函数名称作用

Curdate()获取系统当前日期

Curtime()获取系统当前时间

Sysdate()获取当前系统日期和时间

Time_to_sec()返回将时间转换成秒的结果

Adddate()执行日期的加运算

Subdate()执行日期的减运算

Date_format()格式化输出日期和时间值

条件判断函数函数名称作用

If(expr, v1, v2)如果expr表达式为true返回v1,否则返回v2

Ifnull(v1,v2)如果v1不为null返回v1,否则返回v2

Case expr when v1 then r1 [when v2 then r2…] [else rn] end如果expr值等于v1、v2等,则返回对应位置then后面的结果,否则返回else后的结果rn

加密函数函数名称作用

Md5(str)对字符串str进行MD5加盟

Encode(str, pwd_str)使用pwd作为密码加密字符串str

Decode(str, pwd_str)使用pwd作为密码解密字符串str

(1) Concat(str1,str2,…)返回结果为连接参数产生的字符串,如果任何一个参数为null,则返回值为null.

d870422b961668b55b7fb69b801778a1.png

a83190dc652ae348b1df5d79f15a010a.png

四、 为表和字段取别名

1. 为表取别名:select * from 表名 [as] 别名;

如下例子,s.gender表示student表的gender字段

be6e279ca42a81395eab05ced98f327c.png

2. 为字段取别名:select 字段名 [AS] 别名 [,字段名 [as] 别名,…] from 表名;

37d81dcea87b7c02feca2d103252a55d.png

本文讲解了MySQL数据库单表查询,更多相关内容请关注Gxl网。

相关推荐:

$选择器--是如何将DOM封装成jquery对象

原生js组件化开发简单轮播图实例代码

css3动画导航栏3D

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

曹阳明

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值