1.1
检索表中所有的行和列?
使用 SELECT 语句来查询表,并使用特殊字符 * 指定返回所有的列:
select * from table
1.2
从表中检索部分行?
使用 WHERE 子句来指定要返回哪些行。例如,要查看部门编号为 10 的所有员工,可以像下面这样做。
select *
from table
where deptno = 10
1.3
查找满足多个条件的行?
结合使用 WHERE 子句、OR 子句和 AND 子句。例如,要查找部门编号为 10 的员工、有业务提成的员工以及薪水不超过 2000 美元且部门编号为 20 的员工,可以像下面这样做。
select *
from emp
where deptno = 10
or comm is not null
or sal <= 2000 and deptno=20
1.4
从表中检索部分列?
指定要查看的列。例如,只查看员工的姓名、部门编号和薪水。
select ename,deptno,sal
from emp
1.5 拼接列值?
CONCAT用法
select concat(ename, job) as msg
from emp3
where deptno=10
1.6 在SELECT语句中使用条件逻辑?
在 SELECT 语句中,你想执行基于值的 IF-ELSE 操作。例如,在生成结果集时,你想在员工的薪水不超过2000 美元时返回消息 UNDERPAID,在员工的薪水不低于 4000 美元时返回消息 OVERPAID,在员工的薪水为 2000~4000 美元时返回消息 OK。
select ename,sal,
case when sal <= 2000 then 'UNDERPAID'
when sal >= 4000 then 'OVERPAID'
else 'OK'
end as status
from emp
1.7 将NULL转换为实际值?
使用函数 COALESCE 将 NULL 值替换为实际值
select coalesce(comm,0)
from emp
1.8 模糊匹配?
部门编号为 10 和部门编号为 20 的员工中,你只想返回那些姓名包含字母 I 或职位名称以 ER 结尾的员工。
结合使用 LIKE 运算符和 SQL 通配符(%)
select ename, job
from emp3
where deptno in (10,20)
and (ename like '%I%' or job like '%ER')