SQL学习笔记3——SQL中检索数据之条件查询
完整语法
select 列名 from 表名 where 筛选条件;
筛选条件的分类
- 简单条件运算符
> < = <> != >= <=其中<>和!=是一个意思<=>安全等于,相当于=和is的合并,但可读性差,不建议使用
- 逻辑运算符
&& and || or ! not- SQL在处理OR操作符前,优先处理AND操作符,所以好的习惯是总是使用圆括号显示指明顺序,这样做能消除歧义
- 模糊查询
like:一般搭配通配符使用,可以判断字符型或数值型,通配符:%任意多个字符(包含0个),_任意单个字符between and相当于[a,b]闭区间,调换临界值大小关系则结果可能为空in相当于= 第一个 or = 第二个 ...,所以不能搭配正则匹配使用is null /is not null:用于判断null值(不能使用= null代替此功能,is也不能代替=,is只用于和null搭配)- 查询员工名中包含字符
a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%'; - 查询员工名中第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$'; /* 或者之间用转义,但是推荐上面的方式,这样的转义标识符可以由自己任意定义 SELECT last_name FROM employees WHERE last_name LIKE '_\_%'; */- 查询员工作是指定的某些特定工作的员工名及其工作
SELECT last_name, job_id FROM employees WHERE job_id IN('IT_PROT','AD_VP','AD_PRES');
经典问题
select * from 表名;与select * from 表名 where id like '%%';的区别是是什么?- 前者检索所有,后者检索除
null类型外的所有
- 前者检索所有,后者检索除