一,语法:
SELECT 查询列表 FROM 表名 WHERE 筛选条件;
执行顺序:表名,筛选条件,查询列表。
二,分类
1.条件表达式筛选:
条件运算符:<,>,=,!=,<>,>=,<=
案例1:查询年龄>23的人事信息。
SELECT age FROM person WHERE age>23;
案例2:查询年龄不等于30的人名和性别。
SELECT name,gender FROM person WHERE age<>23;
2.逻辑表达式筛选:
逻辑运算符:&&,||,!,and ,or ,not(推荐使用)
作用:用于连接条件表达式。
案例1:查询年龄在20到30之间的人名,性别。
SELECT name,gender FROM person WHERE age>=20 AND age<=30;
3.模糊查询:
like,between and,in,is null(也属于条件运算符)
like 特点:一般和通配符搭配使用。
通配符:%任意多个字符,包含0个字符
_ 任意单个字符
案例1:人名名中含有字母a的员工信息
SELECT * FROM person WHERE name LIKE '%a%';
/* %类似一个通配符,表示任意一个字符含有a */
案例2:员工中第一个字母是a,第三个是b的人名
SELECT name FROM person WHERE name LIKE 'a_e%';
案例3:查询人名中第二个字符为_的人名。
SELECT name FROM person WHERE name LIKE '_\_%';
/* \用来转义 */
或者自定义转义字符:SELECT name FROM person WHERE name LIKE '_q_%' ESCAPE 'q';(q位置可以是任意字符)
between and,
1.包含临界值。
2.两个临界值不要颠倒顺序,不会报错但是效果不同
案例1:查询年龄在20到30之间的人名,性别。
SELECT name,gender FROM person WHERE age>=20 AND age<=30;
SELECT name,gender FROM person WHERE age BETWEEN 20 AND 30;
/*提高语句简洁度*/
in,
含义:判断某字段是否属于in列表中的某一项
特点1.提高语句简洁度。
2.in列表的值类型必须相同或者兼容。
IS NULL,
=或<>不能用来判断null值,要用IS NULL
案例1.查询没有钱的人名和年龄。
SELECT name,age FROM person WHERE money IS NULL;
如果查询有钱的,结尾处改为IS NOT NULL;
安全等于<=>
判断是否等于,等于返回true.(既可以判断null值,也可以判断普通数值)
缺点:可读性比较差。
案例1:查询没有钱的人名和年龄。
SELECT name,age FROM person WHERE money <=> NULL;