MySQL基础学习笔记(2)-Select

这篇博客详细介绍了MySQL的SELECT查询语法,包括基本语法、WHERE子句的数学符号条件、AND与OR逻辑操作、IN和NOT IN操作符的使用,以及通配符和排序的方法。还提到了SQL内置函数和子查询、连接查询的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、SELECT基本语法

插叙语句的基本格式

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

如果要查询表中所有内容,可以使用一个* 号表示,如果查询表中指定列,则
如下:
这里写图片描述

2、WHERE子句

操作符描述
>大于
<小于
<>不等于
=等于
>=大于等于
<=小于等于
BETWEEN在某个访问内
LIKE搜索某种模式

2.1、数学符号条件

一般,我们查询数据,都会有限制条件,使得所查询结果更精确,可以通过WHERE来限制条件,此处使用数学符号(=,<,>,>=,<=)来进行结果筛选,语法:

SELECT 要查询的列名 FROM 表名字 WHERE 列 运算符 值;

表employee中的数据如下:

idnameagesalaryphonein_dpt
1Tom262500119119dpt4
2Jack242500120120dpt2
3Rose222800114114dpt3
4Jim353000100861dpt1
5Mary213000100101dpt2
6Alex263000123456dpt1
7Ken273500654321dpt1
8Rick243500987654dpt3
9Joe313600110129dpt2
10Mike233400110110dpt4
11JobsNULL360019283dpt2
12TonyNULL3400102938dpt3
#筛选工资小于3000的员工信息
SELECT name,salary FROM employee WHERE salary<3000;

这里写图片描述

2.2、AND 与OR

当多个限制条件时,可以根据条件之间的逻辑关系,使用AND(且)和OR(或)来进行连接,然后筛选3000<salary≤3500
这里写图片描述
如果我们的条件是3000和3500均包含在结果中,则也可以使用BETWEEN进行查询WHERE salary BETWEEN 3000 AND 3500,其结果与 WHERE salary>=3000 AND salary<=3500是一样的
这里写图片描述

2.3、IN和NOT IN

还可以通过关键词 IN 和 NOT IN 筛选 “在” 或 “不在” 某个访问
比如说筛选员工某个部门下的员工信息
这里写图片描述

2.4、通配符

SQL 通配符必须与 LIKE 运算符一起使用

LIKE通配符描述
_替代一个未指定的字符
%替代不定个未指定字符

还可以使用正则表达式进行匹配查询

REGEXP通配符描述
.匹配任一单个字符
?匹配前面的子表达式0次或1次
+匹配前面的子表达式1次或多次
*匹配前面的子表达式0次或多次;[0-9]*匹配任何数量的数字
^表示匹配位置开始
$表示匹配位置结束
[charlist][],表示一个集合 ,字符列中的任何单一字符;如:[AB]表示匹配A或B,[A-D]表示匹配A、B、C、D中的任意一个;
[^charlist] 或者 [!charlist]不在字符列中的任何单一字符
{}表重复的次数,如: 8{5},表示匹配5个8,[0-9]{5,11},表示匹配5到11个数字
……
# 使用通配符“_”
SELECT name age phone FROM employee WHERE name LIKE 'J___';

结果如下:

nameagephone
Jack242500
JobsNULL3600

可以看出来,该结果每一个“_”对应一个字符,

# 使用通配符“%”
SELECT name age phone FROM employee WHERE name LIKE 'J%';

结果如下:

nameagephone
Jack24120120
Jim35100861
Joe31110129
JobsNULL19283
# 使用通配符“[charlist] ”
SELECT name age phone FROM employee WHERE name REGEXT '^[JR]+';
nameagephone
Jack24120120
Rose22114114
Jim35100861
Rick24987654
Joe31110129
JobsNULL19283

6、排序

关键词:ORDER BY
顺序:ASC 升序,DESC 降序

#按工资升序排列
SELECT name,age,salary FROM employee ORDER BY salary ASC;
nameagephone
Tom262500
Jack242500
Rose222800
Jim353000
Mary213000
Alex263000
Mike233400
TonyNULL3400
Rick243500
Ken273500
Joe313600
JobsNULL3600

7、SQL内置函数和计算

8、子查询与连接查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值