Oracle数据库学习教程
基本的查询命令
1.基本语法
select *|列名 from 表名;
- * 即选择全部列:
select * from emp;
- 选择需要的列名:
select empno,empname from emp;
(性能更优) - 可以运算,比如sal是月月薪,年薪:
select sal*12 from emp;
- 可以取别名:
select sal*12 as "年薪" from emp;
- 取不重复:
select DISTINCT empno,empname from emp;
2.算数运算 + - * /
- 乘除的优先级高于加减
- 优先级相同时,按照从左至右运算
- 可以使用括号改变优先级
3.NULL值问题
- 问题一:包含NULL的表达式都为空
查询: 员工号、姓名、月薪、年薪、奖金、年收入。SQL> select deptno, ename, sal, sal * 12, comm, comm+sal*12 from emp;
结果不正确。没有奖金的员工,年收入不正确。
解决:滤空函数nvl(a,b)
,如果a为NULL,返回b. nvl(comm,0)
- 问题二:NULL != NULL
查询奖金为NULL的员工信息: SQL> select * from emp where comm = NULL; (SQL中不使用==)
解决:在SQL中,判断一值是否等于另外一值不用“=” 和“!=”而使用is和is not。
4.连接符
- '||'用于连接字符串
SQL> select ename || ‘ is a ’ || ‘job’ from emp;
- 使用concat(),假如 ename 是 "emp name"
SQL> select concat('emp',' name') from emp;