1. 列标题和数据的默认格式
问题:由于字符集的不同而使不同的日期数据的显示有问题.
alter session set NLS_DATE_LANGUAGE = ‘AMERICAN’;
2. 如何在sql语句中使用算术表达式
注意运算符的优先级:
select empno,ename,sal,500+sal
from emp;
3. 如何在sql语句中使用列名
目的:让非计算机人员能够看懂表结构
方法:只需要在列名和别名之间放AS或者空格就可以了
select empno as "Employee Number",
ename name,(500+sal)*12 "Annual Salary"
from emp;
结果:
4. 链接运算符
说明:连接运算符用两条竖线(||)表示,用于把一个或者多个列或字符串连接在一起.
在实际公司中老板可能会让你显示完整的句子,更容易理解.
select ename ||' 年薪为: '||(500+sal)*12 “员工的年薪”
from emp;
5. DISTINCT运算符
说明:去掉重复的行
注意:在查询比较大的表时我们应该尽量避免使用DISTINCT,因为这可能会造成Oracle数据库效率降低,它是通过排序的方式来完成DISTINCT这一功能的,可以查询唯一的那个.
select distinct deptno
from emp;
6. 如何限制所选的数据行(选择操作)
说明:where关键字,其后是限制的条件.
条件是由列名,字符串,算数表达式,常量和比较运算符组成的.
select empno,ename,sal
from emp
where sal >= 1500;
7. 如何使用BETWEEN AND比较运算符
说明:该运算符用于测试指定的数据范围,不但可以用于数字类型还能用于日期型数据,但是数据必须用单引号括起来,如何在前面加NOT则是不在这个范围内的.
select empno,ename,sal,hiredate
from emp
where hiredate BETWEEN ‘01-JAN-81’ AND ‘31-MAY-82’;
8. 在sql语句中使用字符串和日期
说明:在where子句中的字符串是严格区分大小写的,一定要注意.
select empno,ename,job
from emp
where job = ‘SALESMAN’;
9. 使用in比较运算符
说明:它是一个sql语句中很有用的,IN是用来测试某些值是否在这个列表中相反NOT则不在这个列表中
select empno,ename,sal,job
from emp
where job NOT IN('ANALYST','PRESIDENT');
10. 使用LIKE比较运算符
说明:模糊查询,有两个通配符"%"和"_"
%代表0个或者多个字符
_代表一个且只能有一个字符
select empno,ename,sal,job
from emp
where job LIKE'S_L_S%';
11. ORDER BY 排序
说明:一般默认是从小到大的如果要降序则用DESC,注意使用ORDER BY 后,该子句就是SQL语句的最后一个子句.
select empno,ename,sal
from emp
where sal >= 1500
ORDER BY sal DESC;
在order by中也可以使用别名或者表达式
select empno AS "Employee Number,ename name,(500+sal)*12 "Annual Salary"
from emp
order by "Annual Salary" DESC;
ORDER BY 子句中使用列号及使用多列
比如老板让你按职位A到Z排序之后再按工资按高到低排序
select ename,job,sal
from emp
order by job,sal DESC;
这种用法用的不多,易读性太差了