欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-27 10:05:46
...

1、SELECT基本语法

插叙语句的基本格式

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

如果要查询表中所有内容,可以使用一个* 号表示,如果查询表中指定列,则
如下:
MySQL基础学习笔记(2)-Select

2、WHERE子句

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

2.1、数学符号条件

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

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

表employee中的数据如下:

id name age salary phone in_dpt
1 Tom 26 2500 119119 dpt4
2 Jack 24 2500 120120 dpt2
3 Rose 22 2800 114114 dpt3
4 Jim 35 3000 100861 dpt1
5 Mary 21 3000 100101 dpt2
6 Alex 26 3000 123456 dpt1
7 Ken 27 3500 654321 dpt1
8 Rick 24 3500 987654 dpt3
9 Joe 31 3600 110129 dpt2
10 Mike 23 3400 110110 dpt4
11 Jobs NULL 3600 19283 dpt2
12 Tony NULL 3400 102938 dpt3
#筛选工资小于3000的员工信息
SELECT name,salary FROM employee WHERE salary<3000;

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

2.2、AND 与OR

当多个限制条件时,可以根据条件之间的逻辑关系,使用AND(且)和OR(或)来进行连接,然后筛选3000<salary≤3500
MySQL基础学习笔记(2)-Select
如果我们的条件是3000和3500均包含在结果中,则也可以使用BETWEEN进行查询WHERE salary BETWEEN 3000 AND 3500,其结果与 WHERE salary>=3000 AND salary<=3500是一样的
MySQL基础学习笔记(2)-Select

2.3、IN和NOT IN

还可以通过关键词 IN 和 NOT IN 筛选 “在” 或 “不在” 某个访问
比如说筛选员工某个部门下的员工信息
MySQL基础学习笔记(2)-Select

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___';

结果如下:

name age phone
Jack 24 2500
Jobs NULL 3600

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

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

结果如下:

name age phone
Jack 24 120120
Jim 35 100861
Joe 31 110129
Jobs NULL 19283
# 使用通配符“[charlist] ”
SELECT name age phone FROM employee WHERE name REGEXT '^[JR]+';
name age phone
Jack 24 120120
Rose 22 114114
Jim 35 100861
Rick 24 987654
Joe 31 110129
Jobs NULL 19283

6、排序

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

#按工资升序排列
SELECT name,age,salary FROM employee ORDER BY salary ASC;
name age phone
Tom 26 2500
Jack 24 2500
Rose 22 2800
Jim 35 3000
Mary 21 3000
Alex 26 3000
Mike 23 3400
Tony NULL 3400
Rick 24 3500
Ken 27 3500
Joe 31 3600
Jobs NULL 3600

7、SQL内置函数和计算

8、子查询与连接查询

相关标签: Select