- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
笔记_ORACLE之查询DML
笔记_ DML+查询
Oracle日常操作的命令分为两大类 :sqlpl s命令和一般sql语句。
示例的情况 :
CREATE USER scott IDENTIFIED BY m123;
GRANT DBA TO scott;
【一般查询】 :
1.求员工的年工资。
错 :SELECT sal*13+comm 年工资 ,ename FROM emp;
对 :SELECT sal*13+nvl(comm,0) 年工资 ,ename FROM emp;
2.查询1980年4月2日后入职的员工名单。
两种方式 :SELECT hiredate, ename FROM emp WHERE hiredate to_date(1980-4-2, yyyy-mm-dd);
或SELECT hiredate, enameFROM emp WHERE hiredate 2-4月-1980;
其中 , 2-4月-1980是oracle能默认识别的Date格式。
3.查询工资在2000至2500的员工名单。
SELECT sal 工资,ename FROM emp WHERE sal2000 AND sal2500;
注意条件之间别忘了and。
4.查询名字第三个字母为大写字母O的员工名单。
SELECT ename FROM emp WHERE ename LIKE __O%;
like操作符 :%表示任意0到多个字符。_表示任意单个字符。
这个例子中 ,注意O后面的%不要落写了。
5.查询员工号码为123或324或550的员工名单。
SELECT * FROM emp WHERE empno IN(123,324,550);
查询多个条件时建议用in( ) ,而不是多个or。
因为oracle对in()这种方式的查询有优化 ,效率特别高。
6.查询工资高于500 或岗位为MANAGER 并且姓名首字母为大写J的员工名单。
SELECT sal,j ob,ename FROM emp
WHERE (sal500 OR j ob=MANAGER)
AND ename LIKE J%;
注意括号。
[ORDER BY] :
1.按薪水从低到高排列员工信息。
SELECT * FROM emp ORDER BY sal;
注意ORDER BY默认 (ASC )是从小到大 (升序 )的顺序 ;从大到小 (降序 )须加上DESC。
2.按部门号升序而员工工资降序排列员工信息。
SELECT * FROM emp ORDER BY deptno,sal DESC;
多个排序字段 ,则用逗号隔开 ,前面的为第一排序字段 ,后面的一次降级。
比如此例 ,若是ORDER BY sal DESC ,deptno ,则结果完全不一样。
3.按部门号升序而员工入职时间降序排列员工信息。
只需将上例的sal改为hiredate。
注意 ,Oracle中日期、时间 (Date )字段可排序 ,即有大小 ,应该是时间戳形式的。
4.按年薪降序排序 (或者说 查询员工的年薪并按从高到低排序)。
SELECT sal*12+NVL(comm,0) 年薪,ename FROM emp
ORDER BY 年薪 DESC;
这里用到了Oracle的 “别名” :
a.别名可以是中文或英文 ,都是用半角双引号 (一大特点 );
b.别名钱可加as ,也可省略 ;
c.别名作为整体可作为ORDER BY的字段 ;
类似本例这种带别名的排序查询 ,在统计系统、
文档评论(0)