MySQL自我学习路线
- 一、普通查询
-
- 1. 查询单个字段
- 2. 查询多个字段
- 3. 查询全部字段
- 4. 查询出的字段显示为中文
- 二、条件查询
-
- 1. MySQL常见运算符
-
- 1.1 算术运算符
- 1.2 比较运算符
- 1.3 逻辑运算符
- 1.4 位运算符
- 2. 条件查询举例
一、普通查询
1. 查询单个字段
所用数据库链接地址
SELECT sname FROM student;
2. 查询多个字段
SELECT sname,sage FROM student;
3. 查询全部字段
SELECT * FROM student;
SELECT sno,sname,ssex,sage,dept FROM student;
4. 查询出的字段显示为中文
SELECT sno AS '学号',sname AS '姓名',ssex AS '性别',sage AS '年龄',dept AS '系别' FROM student;
二、条件查询
- 使用where,且where必须放到from语句之后
1. MySQL常见运算符
1.1 算术运算符
运算符 |
作用 |
+ |
加法运算 |
- |
减法运算 |
* |
乘法运算 |
/ |
除法运算 |
% |
求余运算 |
1.2 比较运算符
运算符 |
作用 |
== |
等于 |
<=> |
安全的等于 |
<>(!=) |
不等于 |
<= |
小于等于 |
> |
大于 |
IS NULL |
判断一个值是否为NULL |
IS NOT NULL |
判断一个值是否不为NULL |
LEAST |
在有两个或多个参数时,返回最小值 |
GREATEST |
当有2或多个参数时,返回最大值 |
BETWEEN AND |
判断一个值是否落在两个值之间 |
ISNULL |
与IS NULL作用相同 |
IN |
判断一个值是否落在两个值之间 |
NOT IN |
判断一个值不是IN列表中的任意一个值 |
LIKE |
通配符匹配 |
REGEXP |
正则表达式匹配 |
- 安全的等于
这个操作符合=操作符执行相同的比较操作,不过<=>可以用来判断NULL值,在两个操作数均为NULL时,其返回值为1而不为NULL,而当一个操作数为NULL时,其返回值为0而不为NULL
- IS NULL(ISNULL),IS NOT NULL运算符
IS NULL和ISNULL检验一个值是否为NULL,如果为NULL,返回值为1。否则返回值为0;IS NOT NULL检验一个值是否为非NULL,如果非NULL,返回值为1;否则返回值为0
NULL为空,但不是空串,为NULL可以设置这个字段不填值,如果查询为NULL的字段,采用IS NULL
- BETWEEN AND运算符
符合返回值为1,否则返回值为0
between…and…用在数字方面表示左闭右闭,用在字符串方面表示左闭右开,另外and优先级大于or,同时存在要加括号来区分
- LEAST运算符
LEAST(值1,值2,…值n),其中值n表示参数列表中有n个值,在有两个或多个参数的情况下,返回最小值,假如任意一个自变量为NULL,则LEAST()的返回值为NULL
- GREATEST运算符
GREATEST(值1,值2,…值n),其中n表示参数列表中有n个值,当有2个或多个参数时,返回值为最大值,假如任意一个自然变量为NULL,则GREATEST()的返回值为NULL
- IN、NOT IN运算符
IN运算符用来判断操作数是否为IN列表中的其中一个值,如果是,返回值为1;否则返回值为0
in等同于or,所以in后面的值不是区间,而是具体的值
- LIKE运算符
‘%’,匹配任意多个字符,甚至包括0字符;‘_’,只能匹配一个字符
expr LIKE 匹配条件,如果expr满足匹配条件,则返回值为1(TRUE);如果不匹配,则返回值为0(FALSE)。若expr或匹配条件中任何一个为NULL,则结果为NULL
- REGEXP运算符
expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;如果不满足,则返回0;若expr或匹配条件任意一个为NULL,则结果为NULL
‘^’匹配以该字符后面的字符开头的字符串
‘.’匹配任何一个单字符
‘[…]’匹配在方括号内的任何字符,例如,”[abc]”匹配”a”、”b”或”c”。为了命名字符串的范围,使用一个’-‘。”[a-z]”匹配任何字母,而”[0-9]”匹配任何数字
‘*’匹配0个或多个在它前面的字符
…
1.3 逻辑运算符
运算符 |
作用 |
NOT或者! |
逻辑非 |
AND或者&& |
逻辑与 |
OR或者 |
|
XOR |
逻辑异或 |
1.4 位运算符
运算符 |
作用 |
& |
位与 |
^ |
位异或 |
<< |
位左移 |
>> |
位右移 |
~ |
位取反 |
2. 条件查询举例
SELECT sname FROM student WHERE sage = 21;
SELECT sname FROM student WHERE sage <> 21;
- 查询年龄在19到20岁的学生姓名(包括19和20岁)
SELECT sname FROM student WHERE sage BETWEEN 19 AND 20;
SELECT sno FROM sc WHERE grade IS NULL;
SELECT sname FROM student WHERE sage = 19 AND dept = '计算机系'
SELECT sname FROM student WHERE sage = 19 OR dept = '计算机系'
SELECT sname FROM student WHERE sage IN(19,20)
SELECT sname FROM student WHERE sage <> 19 AND sage <> 20
SELECT sname FROM student WHERE NOT(sage = 19 OR sage = 20)
SELECT sname FROM student WHERE sage NOT IN(19,20)
SELECT sno,sname FROM student WHERE sname LIKE '张%'
SELECT sno,sname FROM student WHERE sname LIKE '_小%'
SELECT sno,sname FROM student WHERE sname LIKE '%小%'