oracle之SQL结构化查询语言2

一、like (A)

1)条件表达式中字符串匹配操作符是“like”
%通配符表示任意字符出现任意次数
_通配符表示任意字符出现一次
2)技巧和注意事项:
不能过度使用通配符。如果其他操作符能达到目的,就不要使用通配符。
确实需要使用通配符时,除非绝对必要,否则不要把通配符用到搜索模式最开始处,因为这样搜索起来是最慢的。
  select ename from emp where ename like ‘%ALL%’;
  select ename from emp where ename like ‘_A%’;

3)select test

You  query the database with this command:       SELECT name       FROM    employee      WHERE  name LIKE ‘_a%’;
Which names are displayed?
A.   names starting with ‘a’
B.   names starting with ‘a’ or ‘A’
C.   names containing ‘a’ as the second letter
D.   names containing ‘a’ as any letter except the first

二、order by (A)

按照单个列排序
order  by col

降序和升序:
order  by col desc (asc)

按多个列排序(优先级)
order by  col1 desc(asc),  col2  desc(asc)

select ename, sal from emp order by ename;
select ename, sal from emp order by empno;
select ename, sal from emp order by ename asc;
select ename, sal from emp order by deptno desc;
select ename, sal , deptno from emp order by deptno asc, ename desc;

三、创建计算字段(A)

为什么需要计算字段?
我们经常需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序中重新格式化。
计算字段并不实际存在于数据库表
Sql允许select子句中出现+,-,*,/以及列名和常数的表达式
拼接字段(||, +)
首选|| (mysql中||表示or,一般用concat() )

select ename||’ is a ’||job from emp;
select  ename, sal, sal * 12  from emp;
select  ename, sal, sal * 12  + 500 from emp ;
select  ename, sal, sal * (12  + 500) from emp

四、通用函数 nvl (A)

Sql中允许列值为空,空值用保留字NULL表示。NULL不同与0或者空格,它就是代表了一个不确定的内容。任何含有null值的数学表达式最后的结果都为空值
select ename,sal,comm,(sal*12)+comm “income” from emp;
可以通过函数nvl将NULL转换成为一个“actual value”
select ename, comm, nvl(comm,0)  from emp
select ename,sal,comm ,(sal*12)+nvl(comm,0) “income” from emp

五、并集,全集,交集,差集

union all 全集
union 并集(去重)
intersect 交集
minus 差集

六、练习

1、使用基本查询语句.
    (1)查询DEPT表显示所有部门名称.
    (2)查询EMP表显示所有雇员名及其全年收入(月收入=工资+补助),处理NULL行,并指定列别名为"年收入"。(NVL(comm,0) comm取空值时用0替代)
    (3)查询显示不存在雇员的所有部门号。
2、限制查询数据
    (1)查询EMP表显示工资超过2850的雇员姓名和工资。
    (2)查询EMP表显示工资不在1500~2850之间的所有雇员及工资。
    (3)查询EMP表显示代码为7566的雇员姓名及所在部门代码。
    (4)查询EMP表显示部门10和30中工资超过1500的雇员名及工资。
    (5)查询EMP表显示第2个字符为"A"的所有雇员名其工资。
    (6)查询EMP表显示补助非空的所有雇员名及其补助。

3、排序数据
    (1)查询EMP表显示所有雇员名、工资、雇佣日期,并以雇员名的升序进行排序。
    (2)查询EMP表显示在1981年2月1日到1981年5月1日之间雇佣的雇员名、岗位及雇佣日期,并以雇佣日期进行排序。
    (3)查询EMP表显示获得补助的所有雇员名、工资及补助,并以工资升序和补助降序排序。

猜你喜欢

转载自m15047453160.iteye.com/blog/2029106