MySQL学习笔记(2)
程序员文章站
2022-05-09 19:06:21
...
- 条件查询
SELECT 字段 FROM 表名 WHERE 筛选条件
where相当于其他编程语言中的if条件语句
1.按照条件表达式进行筛选:
#条件运算符
>大于 <小于 =等于(注意一个等号) !=(不等于)
<>(不等于推荐使用)
>=(大于等于) <=(小于等于)
2.按照逻辑表达式进行筛选:
#逻辑运算符
&&与 ||或 !非
and or not 推荐使用
案例:
用条件查询上述表中年龄大于30岁的记录:
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
age>30;
-
模糊查询
1.关键字LIKE(意为“像”,并不是精确查询)
例如查询字段employee_name中含有字符t的记录:
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
employee_name LIKE "%t%";
也可以查询employee_name中以字符t开头的记录:
SELECT
*
FROM
employee
WHERE
employee_name LIKE "t%";
其中%为通配符,可以匹配任意多个字符,包括0个字符。
也可以用_作为占位符,查询某个位置处的相应字符:
比如对于上表我们要查询10月份出生的记录可以这样写:
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
birth_date LIKE "_____10%";
2.BETWEEN AND
查询字段值在某个区间的记录(可以代替大于等于小于等于)
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
age
BETWEEN
24
AND
30;
3.IN关键字
USE test;
SHOW TABLES;
SELECT
employee_id,employee_name
FROM
employee
WHERE
department IN ("R&D","Personnel");
查询department为"R&D"和"Personnel"的employee_id和employee_name,比下面常规的逻辑运算符的写法简便。
USE test;
SHOW TABLES;
SELECT
employee_id,employee_name
FROM
employee
WHERE
department="R&D" OR department="Personnel";
(注意:IN列表中的元素类型必须一致或者可以隐式转换)
4.IS NULL关键字
在MySQL中,=等于号不支持右值为NULL
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
bonus_rate=NULL;
运行程序不能得到结果:
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
bonus_rate IS NULL;
改为IS NULL可以得到我们想要的结果。另外,还有IS NOT NULL:
USE test;
SHOW TABLES;
SELECT
*
FROM
employee
WHERE
bonus_rate IS NOT NULL;
上一篇: Oracle SQL排列组合之排列问题
下一篇: QT连接SQL server数据库