MySQL学习笔记(2)

  • 条件查询
SELECT 字段 FROM 表名 WHERE 筛选条件

where相当于其他编程语言中的if条件语句
1.按照条件表达式进行筛选:

#条件运算符
>大于 <小于 =等于(注意一个等号) !=(不等于) 
<>(不等于推荐使用)
>=(大于等于)  <=(小于等于)

2.按照逻辑表达式进行筛选:

#逻辑运算符
&&||!and or not  推荐使用

案例:
MySQL学习笔记(2)_第1张图片
用条件查询上述表中年龄大于30岁的记录:

USE test;
SHOW TABLES;
SELECT
	*
FROM
	employee
WHERE
	age>30;

MySQL学习笔记(2)_第2张图片

  • 模糊查询
    1.关键字LIKE(意为“像”,并不是精确查询)
    例如查询字段employee_name中含有字符t的记录:
USE test;
SHOW TABLES;
SELECT
	*
FROM
	employee
WHERE
	employee_name LIKE "%t%";

MySQL学习笔记(2)_第3张图片
也可以查询employee_name中以字符t开头的记录:

SELECT
	*
FROM
	employee
WHERE
	employee_name LIKE "t%";

在这里插入图片描述
其中%为通配符,可以匹配任意多个字符,包括0个字符。
也可以用_作为占位符,查询某个位置处的相应字符:
MySQL学习笔记(2)_第4张图片
比如对于上表我们要查询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;

MySQL学习笔记(2)_第5张图片
3.IN关键字

USE test;
SHOW TABLES;
SELECT 
		employee_id,employee_name
FROM
		employee
WHERE
		department IN ("R&D","Personnel");

MySQL学习笔记(2)_第6张图片
查询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;

MySQL学习笔记(2)_第7张图片
此外也可以使用安全等于,即"<=>",来判断某个字段的值是否等于Null,将等于Null的记录查询出来,"<=>"也可以用来判断其他数据类型的值。

SELECT
	*
FROM
	employee
WHERE
	bonus_rate <=> NULL;

你可能感兴趣的:(MySQL学习笔记)