oracle学习2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.desc(描述)emp描述emp这张表2.descdept部门表3.descsalgrade薪水等级4.select*fromtable_name查找表中的元素5.dual是系统中的一张单行空表6.select*fromdual7.selectsysdatefromdual取出系统时间8.selectename,sal*12annulsal(取的别名)fromemp;查找用户姓名和用户的年薪9.任何含有空值的数学表达式的值都是空值selectename,sal*12+commfromemp;10.selectename||salfromemp其中的||相当于将sal全部转化为字符串11.表示字符串的方法selectename||'ajjf'fromemp;12.如果其中有一个单引号就用2个单引号来代替他selectename||'sakj''lds'fromemp;13.selectdistinctdeptnofromemp(去除部门字段中重复的部分,关键字distinct)14.selectdistinctdeptno,jobfromemp;(去除这2个字段中重复的组合)15.select*fromdeptwheredeptno=10;取出条件(取出部门编号为10的记录)16.select*fromempwhereename='CLIRK';取出部门中姓名为clirk的记录(注意取出过程中ename用单引号隔开)17.selectename,salfromempwheresal1500;取出部门中薪水大于1500的人的姓名18.selectename,sal,deptnofromempwheredeptno10取出部门中的部门号不等于10的19.selectename,sal,deptnofromempwhereename'CBA'取出部门中员工名字大于CBA的员工(实际比较的是ACIIS码)20.selectename,salfromempwheresalbetween800and1500selectename,salfromempwheresal=800andsal=1500;(取出800和1500之间的数)21.selectename,sal,commfromempwherecommisnull(选出其中的空值)selectenmae,sal,commfromempwherecommisnotnull(选出其中的非空值)22.selectename,sal,commfromempwheresalin(800,1500,2000);取出这3者之中的selectename,sal,commfromempwhereenamein('simth');23.selectename,sal,hiredatefromempwherehiredate'3-4月-81';取出符合条件的日期,月前面的数字只能为1,2,3,4,5,6,7,8,9,10,11,12;日期且要加单引号。24.selectename,sal,fromempwheresal1000ordeptno=10;找出工资薪水大于1000或者部门号等于10的员工25.selectename,salfromempwheresalnotin(500,1000);查找薪水不是500和1000的员工姓名和月薪selectename,salfromempwheresalnotbetween500and1000;查找薪水不在500到1000的员工姓名和月薪26.selectename,salfromempwhereenamelike'%ALL%';selectename,salfromempwhereenamelike'_%A%';selectename,salfromempwhereenamelike'_A%';selectename,salfromempwhereenamelike'__A%';查找姓名中含有ALL的客户信息,一个横线代表一个通配符27.selectename,salfromempwhereenamelike'_%$%%'escape'$';自己指定转义字符,当搜索含有%时,加\或$。selectename,salfromempwhereenamelike'_%\%%';查找中间含有%相匹配的客户信息,运用转义字符28.select*fromdeptorderbydeptno对表中元素按部门号排序select*fromdeptorderbydeptnodesc默认为升序,asc省略,可以用desc按降序29.selectename,salfromempwheresal1000orderbysaldesc按照查询条件来查询,并排序(asc升序排列)30.selectename,sal*12fromempwhereenamenotlike'_%A%'andsal800orderbysaldesc31.selectlower(ename)fromemp将ename都转化为小写lower是函数能将字母转化为小写32.selectenamefromempwherelower(ename)like'_%a%';找出ename中所有的含有a的字符33.selectename,substr(ename,2,3)fromemp;从第2个字符开始截取3个字符34.selectchr(65)fromdual;将65转化为字符35.selectascii('A')fromdual;将ACSII码转化为字符串36.selectround(23.565)fromdual四舍五入36.selectround(23,4565,2)fromdual四舍五入到第二位37.selectto_char(sal,'$999,999,999')fromemp;按指定格式输出selectto_char(sal,'L99,999,9999')fromemp;L代表本地字符38.selecthiredatefromempselectto_char(hiredate,'YYYY-MM-DDHH:MI:SS')fromemp;时间格式的显示selectto_char(sysdate,'YYYY-MM-DDHH:MI:ss')fromdual;十二小时制显示系统时间selectto_char(sysdate,'YYYY-MM-DDHH24:MI:SS')fromdual;二四小时制显示系统时间39.selectename,hiredatefromempwherehiredateto_date('2005-2-312:32:23','YYYY-MM-DDHH:MI:SS');40selectsalfromempwheresalto_number('$1,250.00','$9,999.99');取出比它大的一切字符串(把特定格式的数字转化成字符)41selectename,sal+nvl(comm,0)fromemp;comm值为空的用0来替换,单行函数(以一条记录为条件)一条对一条42.selectMax(sal)fromemp;selectMin(sal)fromemp;selectavg(sal)fromemp;selectsum(sal)fromemp;selectcount(*)fromemp;查看表中一共有多少条记录selectcount(*)fromempwheredeptno=10;查找部门10一共有多少人;43.selectavg(sal),deptnofromempgroupbydeptno;按部门号进行分组selectdeptno,job,max(sal)fromempgroupbyjob,deptno;按工作和部门号进行分组;44.selectenamefromempwheresal=(selectmax(sal)fromemp);子查询,查找部门中薪水最高的员工姓名45.groupby注意:出现在select列表中的字段,如果没有出现在组函数中必须出现在groupby子句中46.selectavg(sal),deptnofromempgroupbydeptnohavingavg(sal)2000;选出部门中平均薪水大于2000的部门,47.select*fromempwheresal100groupbydeptnohaving..........orderby........先取数据--过滤数据------分组----对分组限制-------排序48.selectavg(sal)fromempwheresal2000groupbydeptnohavingavg(sal)1500orderbyavg(sal)desc;查找部门中平均薪水打印2000的员工并按部门号进行排序,查询分组后的平均薪水必须大于1500,查询结果按平均薪水从低到高排列49.selectenamefromempwheresal(selectavg(sal)fromemp);查找出员工中薪水位于部门平均薪水之上的所有员工50.selectename,sal,emp.deptnofromempjoin(selectmax(sal)max_sal,deptnofromempgroupbydeptno)ton(emp.sal=t.max_salandemp.deptno=t.deptno);查找每个部门中薪水最高的连接51.selecte1.ename,e2.enamefromempe1,empe2wheree1.mgr=e2.empno;表的自连接52.selectdname,enamefromempcrossjoindept交叉连接,笛卡尔SQL99中的新语法53.selectename,dnamefromempjoindepton(emp.deptno=dept.deptno);54.selectename,dnamefromempjoindeptusing(deptno);查找emp和dept表中deptno相同的部分。55.selectename,dname,gradefromempejoindeptdon(e.deptno=d.deptno)joinsalgradeson(e.salbetweens.losalands.hisal)--(三表查找)whereenamenotlike'_%A%';56.selecte1.ename,e2.enamefromempe1joinempe2on(e1.mgr=e2.deptno);表的自连接57.selecte1.ename,e2.enamefromempe1leftjoinempe2on(e1.mgr=e2.deptno)左外表连接selectename,dnamefromemperightjoindeptdon(e.deptno=d.deptno)右外连接selectename,dnamefromempefulljoindeptdon(e.deptno=d.deptno)全连接58.求部门中薪水最高的selectename,salfromempjoin(selectmax(sal)max_sal,deptnofromempgroupbydeptno)ton(emp.sal=t.max_salandemp.deptno=t.deptno);59.求部门中薪水等级的平均值selectdeptno,avg(grade)from(selectdeptno,ename,grade,fromempjoinsalgradeson(emp.salbetweens.losalands.hisal))tgroupbydeptno;60.查找雇员中哪些是经理人selectenamefromempwhereempnoin(selectmgrfromemp);61.selectdistincte1.salfromempe1joinempe2on(e

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功