




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、oracle習(xí)題集 北京融信學(xué)唐科技有限公司oracle習(xí)題集目 錄第1章簡單查詢2第2章多表查詢4第3章分組查詢5第4章子查詢7第5章表、約束、數(shù)據(jù)插入、修改、刪除、sequence8第6章視圖10第7章用戶角色權(quán)限11第8章表空間、分區(qū)表12第9章pl/sql12第10章存儲過程與函數(shù)13第11章數(shù)據(jù)庫高級14第12章數(shù)據(jù)庫設(shè)計(jì)15第1章 簡單查詢使用sql plus工具登陸,用戶名用scott。1. 在emp表中查詢出所有記錄的姓名、部門編號、薪水,并且列名要顯示為中文。select ename as 姓名, deptno as 部門編號, sal as 薪水 from emp;2. 在
2、emp表中查詢出薪水大于1500的記錄,并且按照薪水的降序排列。select sal from emp where sal > 1500 order by sal desc;3. 在emp表中查詢出comm字段為空值的記錄。select empno,ename,sal,comm from emp where comm is null;4. 查詢出emp表中含有幾個(gè)部門的記錄。(用distinct去除重復(fù)記錄)select distinct deptno from emp;5. 在emp表中查詢出部門編號為10或20的記錄(請分別使用or和in關(guān)鍵字)select * from emp w
3、here deptno=10 or deptno=20;select * from emp where deptno in (10,20);6. 在emp表中查詢出姓名的第二個(gè)字母為a的記錄。select * from emp where ename like '_a%'7. 查詢出emp表中總共有多少條記錄。select count(*) from emp;8. 查詢emp表中1981年雇用的所有員工,或者是1987年5月雇用的員工。select ename,hiredate from emp where to_char(hiredate,'yyyy')=19
4、81 or to_char(hiredate,'yyyymm')=198705;9. 選擇部門30的所有員工。 select ename,deptno from emp where deptno=30;10. 列出所有辦事員(clerk)的姓名,編號和部門編號。select empno,ename,deptno from emp where job='clerk'11. 找出傭金高于薪金的所有員工。select ename,sal,comm from emp where comm > sal;12. 找出傭金高于薪金30%的所有員工。select enam
5、e,sal,comm from emp where comm > sal*0.3;13. 找出部門10中所有經(jīng)理(manager)和部門20中所有辦事員(clerk)的詳細(xì)資料。select * from empwhere (deptno=10 and job='manager') or (deptno=20 and job='clerk');14. 找出部門10中所有經(jīng)理(manager),部門20 中所有辦事員(clerk),既不是經(jīng)理又不是辦事員(clerk)但其薪金大于或等于2000的所有員工的詳細(xì)資料。select * from emp wher
6、e (deptno=10 and job='manager') or (deptno=20 and job='clerk') or (job not in ('manager','clerk') and sal >= 2000);15. 找出收取傭金的員工的不同的工作。select distinct job from emp where comm is not null;16. 找出不收取傭金或收取傭金少于100的員工。select ename,comm from emp where comm is null or comm
7、<100;17. 顯示姓名不帶有r的員工的姓名。 select ename from emp where ename not like '%r%'18. 顯示員工的詳細(xì)資料,按姓名排序。select * from emporder by ename desc19. 顯示員工的姓名和受雇日期,根據(jù)服務(wù)年限,將最老的員工排在最前面。select ename,hiredate from emp order by to_char( hiredate,'yyyy-mm-dd');20. 顯示所有員工的姓名,工作和薪金,按工作降序排序,若工作相同則按薪金排序。sele
8、ct ename,job,sal from emp order by job desc , sal desc;21. 顯示姓名字段的任何位置包含a的所有員工的姓名。select ename from emp where ename like '%a%'22. 找出各月倒數(shù)第三天受雇的所有員工。select ename,hiredate from emp where last_day(hiredate)-2=hiredate;23. 找出早于28年前受雇的所有員工。 select ename ,hiredate from emp where to_char(sysdate,
9、9;yyyy')-to_char(hiredate,'yyyy')>28;24. 以首字大寫的方式顯示所有員工的姓名。select initcap(ename) from emp;25. 顯示員工姓名正好為5個(gè)字符的員工。 select ename from emp where ename like '_' select * from emp where length (ename)=5;26. 顯示所有員工姓名的前三個(gè)字符。select substr(ename,1,3)from emp;27. 顯示所有員工的姓名,用 a 替換a。select
10、replace(ename,'a','a') from emp;28. 顯示滿10年服務(wù)年限的員工的姓名和受雇日期。select ename,hiredate from emp where to_char(sysdate,'yyyymm')-to_char(hiredate,'yyyymm') >=10;29. 顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同,則將最早年份的員工排在最前面。select ename,to_char(hiredate,'yyyy-mm') from e
11、mp order by to_char(hiredate,'mm'),to_char(hiredate,'yyyy');30. 顯示所有員工的日薪金,忽略余數(shù)。每個(gè)月的天數(shù)都以30天計(jì)。select ename,trunc(sal/30) from emp ;31. 找出在(任何年份)2月受聘的所有員工的姓名,對于每個(gè)員工,顯示其加入公司的天數(shù)。select ename,hiredate,(sysdate-hiredate) 天數(shù)from empwhere to_char(hiredate,'mm')=02;第2章 多表查詢1. 顯示所有員工的姓
12、名ename,部門號deptno和部門名稱dname。select ename,e.deptno,dnamefrom emp e,dept dwhere e.deptno=d.deptno;2. 查詢20號部門員工的job和20號部門的loc。select ename,job,locfrom emp e,dept dwhere e.deptno=d.deptno;3. 選擇所有有獎金comm的員工的ename , dname , loc。select ename,dname,loc,commfrom emp e,dept dwhere e.deptno=d.deptno and comm is
13、 not null;4. 選擇在工作地點(diǎn)dallas工作的員工的ename , job , deptno, dname。select ename,job,e.deptno,dnamefrom emp e,dept dwhere e.deptno=d.deptno and loc='dallas'5. 選擇所有員工的姓名ename,員工號deptno,以及他的管理者mgr的姓名ename和員工號deptno,結(jié)果類似于下面的格式:employeesemp#managermgr#smith7369ford7902select e.ename employees,e.empno em
14、p#,m.ename manager,m.empno mgr#from emp e,emp mwhere e.mgr=m.empno;6. 查詢各部門員工姓名和他們所在位置,結(jié)果類似于下面的格式:deptnoenameloc20smithdallasselect e.deptno deptno,ename ename,loc locfrom emp e,dept dwhere e.deptno=d.deptno;7. 顯示:員工編號,員工名稱,員工所在部門編號,員工所在部門名稱。select empno,ename,e.deptno,dnamefrom emp e,dept dwhere e.
15、deptno=d.deptno;8. 顯示:員工編號,員工名稱,經(jīng)理編號,經(jīng)理名稱。select e.empno,e.ename,m.empno,m.enamefrom emp e,emp mwhere e.mgr=m.empno;9. 顯示:員工編號,員工名稱,經(jīng)理編號,經(jīng)理名稱,員工所在部門編號,員工所在部門名稱。select e.empno,e.ename,m.empno,m.ename,e.deptno,d.dnamefrom emp e,emp m,dept dwhere e.mgr=m.empnoand e.deptno=d.deptno;10. 顯示:員工編號,員工名稱,經(jīng)理編號
16、,經(jīng)理名稱,員工所在部門編號,員工所在部門名稱,經(jīng)理所在部門編號,經(jīng)理所在部門名稱。select e.empno,e.ename,m.empno,m.ename,e.deptno,d.dname,md.deptno,md.dnamefrom emp e,emp m,dept d,dept mdwhere e.mgr=m.empnoand e.deptno=d.deptnoand m.deptno=md.deptno;第3章 分組查詢1. 列出至少有一個(gè)員工的所有部門。 select deptno,count(ename) from emp group by deptno having coun
17、t(ename)>=1;2. 查詢emp表中出每個(gè)部門的部門代碼、薪水之和、平均薪水。select deptno,sum(sal),avg(sal)from empgroup by deptno;3. 查詢emp表中出部門人數(shù)大于等于2的部門的部門代碼、部門人數(shù)。select deptno,count(empno) from emp group by deptno having count(empno)>=2;4. 查詢emp表中出部門平均薪水小于等于20000的部門的部門代碼、平均薪水,并按平均薪水從大到小排序。select deptno,avg(sal)from empgrou
18、p by deptnohaving avg(sal)<=20000order by avg(sal) desc;5. 查詢emp表中出部門合計(jì)薪水大于等于1000的部門的部門代碼、平均薪水,并按平均薪水從大到小排序。select deptno,avg(sal),sum(sal)from empgroup by deptnohaving sum(sal)>=1000order by avg(sal) desc;6. 查詢emp表中薪水最少,和薪水最大員工的姓名和薪水,并按薪水從大到小排序。select ename,salfrom empwhere sal=(select max(sa
19、l) from emp )or sal=(select min(sal) from emp )order by sal desc;7. 列出薪金比smith高的所有員工。 select ename,salfrom empwhere sal>(select sal from emp where ename like 'smith');8. 列出所有員工的姓名及其直接上級領(lǐng)導(dǎo)的姓名。select e.ename,m.enamefrom emp e,emp mwhere e.mgr=m.empno;9. 列出受雇日期早于其直接上級的所有員工的編號,姓名,部門名稱。select
20、e.empno,e.ename,dname,e.hiredate,m.hiredatefrom emp e,emp m,dept dwhere e.mgr=m.empnoand e.deptno=d.deptnoand to_char(e.hiredate,'yyyymmdd')<to_char(m.hiredate,'yyyymmdd');10. 列出部門名稱和這些部門的員工信息,同時(shí)列出那些沒有員工的部門。select dname,e.*from emp e,dept dwhere e.deptno(+)=d.deptno;11. 列出所有clerk(
21、辦事員)的姓名,及其部門名稱,部門人數(shù)。select *from (select deptno,enamefrom empwhere job='clerk') t,(select e.deptno,dname,count(e.deptno)from emp e,dept dwhere e.deptno=d.deptno and job='clerk'group by e.deptno,dname) mwhere t.deptno=m.deptno;12. 列出最低薪金大于1500的各種工作及從事此工作的全部雇員人數(shù)。select job,count(job)fr
22、om empgroup by jobhaving min(sal)>1500;13. 列出在部門sales(銷售部)工作的員工的姓名,假定不知道銷售部的部門編號。select ename,e.deptno,dnamefrom emp e,dept dwhere dname='sales'and e.deptno=d.deptno;14. 列出薪金高于公司平均薪金的所有員工,所在部門,上級領(lǐng)導(dǎo),公司的等級工資。select e.ename,dname,m.ename,s.grade,e.salfrom emp e,emp m,dept d,salgrade swhere e
23、.deptno=d.deptnoand e.mgr=m.empnoand e.sal between losal and hisaland e.sal>(select avg(sal) from emp);15. 列出與scott從事相同工作的所有員工的編號,姓名,職位及其部門名稱。select empno,ename,job,dnamefrom emp e,dept dwhere e.deptno=d.deptnoand job=(select job from emp where ename='scott');16. 列出薪金等于部門30中員工的薪金的,所有員工的姓名
24、和薪金。select ename,sal from emp where deptno=30;17. 列出薪金高于在部門30工作的所有員工的薪金的員工姓名、薪金和部門名稱。 select ename,sal,dnamefrom emp e,dept dwhere e.deptno=d.deptnoand sal>all(select sal from emp where deptno=30);18. 列出在每個(gè)部門工作的員工數(shù)量、平均工資和平均服務(wù)期限。select dname,count(*),avg(sal),avg(sysdate-hiredate)/365)from emp e,d
25、ept dwhere e.deptno=d.deptnogroup by dname;19. 列出所有員工的姓名、部門名稱和工資。select ename,dname,salfrom emp e,dept dwhere e.deptno=d.deptno;20. 列出所有部門的詳細(xì)信息和部門人數(shù)。select d.deptno,dname,loc,count(e.deptno)from emp e,dept dwhere e.deptno=d.deptnogroup by d.deptno,dname,loc;21. 列出各種工作的最低工資及從事此工作的雇員姓名。select * from e
26、mp e,(select job,min(sal) ssal from emp group by job)twhere e.job=t.joband e.sal=t.ssal;22. 列出各個(gè)部門的manager(經(jīng)理)的最低薪金。select dname,job,min(sal)from emp e,dept dwhere e.deptno=d.deptnoand job='manager'group by dname,job;23. 列出員工的年工資,按年薪從低到高排序。 select ename,sal*12from emp eorder by sal*12 asc;24
27、. 查出員工的信息,并要求這些員工的主管的薪水超過3000。select e.*,m.sal from emp e,emp mwhere e.mgr=m.empnoand m.sal>=3000;25. 求出部門名稱中,帶s字符的部門員工的、工資合計(jì)、部門人數(shù)。給任職日期超過10年的人加薪10%。select dname,sum(sal),count(dname)from emp e,dept dwhere e.deptno=d.deptno and dname like '%s%' group by dname;26. 查詢公司員工工資的最大值,最小值,平均值,總和。s
28、elect max(sal),min(sal),sum(sal),avg(sal)from emp;27. 查詢各job的員工工資的最大值,最小值,平均值,總和。select job,min(sal),max(sal),avg(sal),sum(sal)from empgroup by job;28. 選擇具有各個(gè)job的員工人數(shù)(提示:對job進(jìn)行分組)。select job,count(job)from empgroup by job;29. 查詢員工最高工資和最低工資的差距(difference)。select max(sal)-min(sal) "defference&quo
29、t;from emp;30. 查詢各個(gè)管理者手下員工的最低工資,其中最低工資不能低于800,沒有管理者的員工不計(jì)算在內(nèi)。select m.ename,min(e.sal)from emp e,emp mwhere e.mgr=m.empno and e.sal>=800group by m.ename;31. 查詢所有部門的名字dname,所在位置loc,員工數(shù)量和工資平均值。select dname,loc,count(e.deptno),avg(sal)from emp e,dept dwhere e.deptno=d.deptnogroup by dname,loc;第4章 子查詢
30、1. 查詢和scott相同部門的員工姓名ename和雇用日期hiredate。select ename,hiredatefrom emp where deptno=(select deptno from emp where ename='scott');2. 查詢工資比公司平均工資高的所有員工的員工號empno,姓名ename和工資sal。select empno,ename,salfrom empwhere sal>(select avg(sal) from emp);3. 查詢和姓名中包含字母u的員工在相同部門的員工的員工號empno和姓名ename。select e
31、mpno,enamefrom empwhere deptno=(select deptno from emp where ename like upper('%u%');4. 查詢在部門的loc為newyork的部門工作的員工的員工姓名ename,部門名稱dname和崗位名稱job。select ename,dname,job from emp e,dept d where e.deptno=d.deptno and d.deptno= (select deptno from dept where loc='new york');5. 查詢管理者是king的員工
32、姓名ename和工資sal。select e.ename,e.salfrom emp e,emp mwhere e.mgr=m.empnoand m.ename='king'6. 查詢沒有員工的部門。select * from deptwhere deptno not in (select distinct deptno from emp);第5章 表、約束、數(shù)據(jù)插入、修改、刪除、sequence1. 創(chuàng)建表 emp1,字段如下eno char(3), ename char(6), sex char(2), age number(2),deptno int使用sql語句插入如下
33、數(shù)據(jù),要求編號使用sequence實(shí)現(xiàn):1 ,tom , 男 , 21 ,102 ,jerry ,男 ,21 ,203 ,kate , 女 ,21 ,304 ,mary ,女 ,21 ,405 ,jack , 男 ,21 ,50(1) 在eno字段上創(chuàng)建主鍵約束。(2) 在ename字段上創(chuàng)建非空約束。(3) 創(chuàng)建檢查約束判斷age在18到60歲之間的男性或者age在18到55歲之間的女性。(4) 在dno字段上創(chuàng)建唯一性約束。(5) 創(chuàng)建和emp1表字段相同的emp_bak表,將emp_bak表的deptno字段與dept表的deptno字段創(chuàng)建外鍵約束。(6) 刪除jack員工。(7) 把
34、mary的年齡修改為23。create table emp1(eno char(3) primary key, ename char(6) not null, sex char(2), age number(2), deptno int unique, constraint sex_age check(age between 18 and 60) and sex='男') or (age between 18 and 55) and sex='女') );create sequence myseq1 increment by 1 start with 1;ins
35、ert into emp1 values(myseq1.nextval,'tom','男',21,10);insert into emp1 values(myseq1.nextval,'jerry','男',21,20);insert into emp1 values(myseq1.nextval,'kate','女',21,30);insert into emp1 values(myseq1.nextval,'mary','女',21,40);insert into
36、 emp1 values(myseq1.nextval,'jack','男',21,50);create table emp_bak as (select * from emp1 where 1=2);alter table emp_bak add constraint emp_bak_dept_fk foreign key (deptno) references dept(deptno);delete emp1 where ename='jack'update emp1 set age=23 where ename='mary'
37、2. 請創(chuàng)建一個(gè)表,表名為phone,表結(jié)構(gòu)如下電話號碼(phonenum varchar2(8) 電話費(fèi) (pay number(8,2))號碼等級(numlevel varchar2(4) 費(fèi)用日期(paydate varchar2(12)(1) 插入以下兩條數(shù)據(jù): 123456, 600, pt04, 20051220 888888, 900, pt05, 20051019.(2) 創(chuàng)建一個(gè)備份表結(jié)構(gòu)名為phone_bak, 將phone中的數(shù)據(jù)插入phone_bak中.(3) 將電話號碼為123456的電話費(fèi)改為1000,執(zhí)行回滾操作(4) 查詢phone表中所有字段和所有數(shù)據(jù),如果p
38、honenum字段中的數(shù)據(jù)為123456,則返回y否則返回n(5) 查詢phone表中所有字段和所有數(shù)據(jù),顯示費(fèi)用日期(paydate)字段的日期轉(zhuǎn)變成yyyy/mm/dd格式顯示。(6) 將電話號碼為888888的號碼等級改為pt04并提交(1)create table phone( phonenum varchar2(8), pay number(8,2) , numlevel varchar2(4), paydate varchar2(12) )(1)insert into phone values('123456',600,'pt04','200
39、51220');insert into phone values('888888',900,'pt05','20051019');(2)create table phone_bak as (select * from phone);(3)update phone set pay=1000where phonenum='123456'rollback (4)select p.*,decode(p.phonenum,123456,'y','n')from phone p;(5) select p
40、honenum,pay,numlevel,to_date(paydate,'yyyy/mm/dd')from phone; (6) update phone set numlevel='pt04' where phonenum=888888;commit;第6章 視圖1. 什么是視圖。它有什么作用。視圖是一個(gè) 虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖實(shí)際上是一張或者多張表上的預(yù)定義查詢,這些表稱為基表。2. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:員工編號,員工姓名。create view view1 select empn
41、o,ename from emp;3. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:員工編號,員工姓名,部門編號,部門名稱。create view view2 as select empno,ename,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno;在創(chuàng)建視圖時(shí),重復(fù)字段后面要使用別名,否則會出錯(cuò)4. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:員工編號,員工姓名,經(jīng)理編號,經(jīng)理姓名。create view view3as select e.empno,e.ename,m.empno 經(jīng)理編號,m.ename 經(jīng)理姓名from emp e
42、,emp m where e.mgr=m.empno;5. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:部門編號,員工個(gè)數(shù)。create view view4 必須使用列別名命名此表達(dá)式,否則會出錯(cuò)as select deptno,count(ename) 人數(shù)from emp egroup by deptno;6. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:部門編號,部門名稱,員工個(gè)數(shù)。create view view5as select e.deptno, d.dname,count(ename) 人數(shù)from emp e,dept dwhere e.deptno=d.deptnogroup by e.
43、deptno, d.dname;7. 創(chuàng)建一個(gè)視圖,此視圖要包括以下信息:部門編號,部門名稱,員工個(gè)數(shù),部門內(nèi)所有員工薪水的合計(jì),部門內(nèi)員工最高薪水,部門內(nèi)員工最低薪水,部門內(nèi)平均薪水。create view view6as select e.deptno, d.dname,count(ename) 人數(shù),sum(sal) 總薪水,max(sal) 最高薪水,min(sal) 最低薪水,avg(sal) 平均薪水from emp e,dept dwhere e.deptno=d.deptnogroup by e.deptno, d.dname;第7章 用戶角色權(quán)限1 創(chuàng)建新用戶rxxt,密碼r
44、xxt,使用的默認(rèn)表空間是新建立的“cmsts”,臨時(shí)表空間使用系統(tǒng)已經(jīng)建立好的“temp”。在rxxt用戶下做存儲過程作業(yè).doc作業(yè)。create user rxxt identified by rxxtdefault tablespace cmsts temporary tablespace temp2 創(chuàng)建用戶“test1_自己姓名拼音”和“test2_自己姓名拼音”兩個(gè)用戶。使用第1個(gè)用戶創(chuàng)建表customer,語句如下:create table customer( id int, name varchar(20);插入如下數(shù)據(jù):insert into customer(id, na
45、me) values(1, '王小明');insert into customer(id, name) values(2, '張大明');然后使用第2個(gè)用戶登錄系統(tǒng),并做如下操作:(1) 使用sql查詢一下customer表:select * from test1_自己姓名拼音.customer; /表名前需要帶上第1個(gè)用戶的用戶名。(2) 使用sql再插入一條數(shù)據(jù):insert into test1_自己姓名拼音.customer(id, name) values(3, '付海');(3) 使用sql修改數(shù)據(jù)“王小明”,修改成“王曉明”。(4)
46、 使用sql刪除所有數(shù)據(jù)。(5) 使用sql把此表刪除掉。create user test1_mapei identified by mapei default tablespace cmsts temporary tablespace tempcreate user test2_mapei identified by mapei default tablespace cmsts temporary tablespace temp grant create session to test1_mapei;grant create session to test2_ mapei;grant con
47、nect,resource to test1_ mapei;grant connect,resource to test2_ mapei;grant create table to test1_ mapei;grant create table to test2_ mapei;grant select on test1_mapei.customer to test2_mapei;grant insert on test1_mapei.customer to test2_mapei;grant update on test1_ mapei.customer to test2_ mapei;gra
48、nt delete on test1_ mapei.customer to test2_ mapei;grant drop any table to test2_ mapei;(1)select * from test1_mapei.customer; (2)insert into test1_ mapei.customer(id, name) values(3, '付海'); (3) update test1_ mapei.customerset name='王小明'where name='王曉明' (4)delete from test1_
49、mapei.customer;(5)drop table test1_ mapei.customer;第8章 表空間、分區(qū)表1. 什么是表空間。表空間是一個(gè)或多個(gè)數(shù)據(jù)文件的集合,所有的數(shù)據(jù)對象都存放在指定的表空間中,但主要存放的是表,稱作表空間。2. 什么是分區(qū)表。對表進(jìn)行分區(qū),有哪幾種類型。分區(qū)表是將大表的數(shù)據(jù)分成稱為分區(qū)的許多小的子集。分區(qū)表的類型:u 范圍分區(qū)u hash分區(qū)(散列分區(qū))u 列表分區(qū)u 復(fù)合分區(qū)3. 創(chuàng)建訂單表(訂單id,訂單標(biāo)題,訂單總金額),使用范圍分區(qū),對訂單總金額字段值的范圍進(jìn)行分區(qū)。create table booking ( b_id number(20),
50、b_title varchar2(20), b_money number(20) )partition by range(b_money)(partition part_01 values less than (100),partition part_02 values less than (200),partition part_03 values less than (300),partition part_04 values less than (maxvalue);4. 創(chuàng)建客戶表(客戶id,客戶名稱,行業(yè)),使用列表分區(qū),對客戶的行業(yè)字段值進(jìn)行列表分區(qū)。create table cu
51、stom (c_id number(20), c_name varchar2(10), c_hang varchar2(50)partition by list(c_hang)( partition part_c01 values ('金融'), partition part_c02 values ('it'), partition part_c03 values ('電子商務(wù)'), partition part_c04 values ('文員');5. 創(chuàng)建產(chǎn)品表(產(chǎn)品id,產(chǎn)品名稱,標(biāo)準(zhǔn)價(jià)),使用哈希分區(qū),對產(chǎn)品的標(biāo)準(zhǔn)價(jià)字段值
52、進(jìn)行哈希分區(qū)。create table product (p_id number(20), p_name varchar2(10), p_price number(10) )partition by hash(p_price)( partition part_p01 , partition part_p02 , partition part_p03 , partition part_p04 )第9章 pl/sql1. 什么是pl/sql,pl/sql和sql有什么區(qū)別。什么是transact-sql。pl/sql 過程化語言,對sql的補(bǔ)充,可以用來實(shí)現(xiàn)比較復(fù)雜的業(yè)務(wù)邏輯;sql 數(shù)據(jù)庫查詢語
53、言,高級的非過程化編程語言,不需要用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式。transact-sql是具有批量與區(qū)塊特性的sql指令集合,數(shù)據(jù)庫開發(fā)人員可以利用它來撰寫數(shù)據(jù)部份的商業(yè)邏輯(data-based business logic),以強(qiáng)制限制前端應(yīng)用程序?qū)?shù)據(jù)的控制能力。同時(shí),它也是數(shù)據(jù)庫對象的主要開發(fā)語言。2. 有訂單表order,單號字段orderno varchar(10),ordername varchar(100)。需要實(shí)現(xiàn)自動編號,格式為yyyymmxxxx,其中xxxx為序號,如:2004050001,20040500022004059999等。不使
54、用oracle的sequence實(shí)現(xiàn),而是自己定義一個(gè)管理序列的表,存放序號。使用pl/sql程序,向訂單表中增加數(shù)據(jù),訂單編號能自動生成。create table order1 (orderno varchar2(10), ordername varchar(100)beginfor v_count in 1 . 9999loopinsert into order1(orderno)values(to_char(sysdate,'yyyymm')|trim(to_char(v_count,'0000');end loop;end;3. 使用pl/sql程序?qū)崿F(xiàn)
55、,查詢員工編號為7788的員工薪水,然后判斷,如果薪水小于1000,打印“薪水低”,如果1000到2000,打印“中等”,大于2000,打印“薪水不錯(cuò)”。declare v_sal emp.sal%type;v_s varchar2(10);begin select sal,case when sal<1000 then '薪水低' when sal>1000 and sal<2000 then '中等' when sal>2000 then '薪水不錯(cuò)' end s into v_sal,v_s from emp whe
56、re empno=7788; dbms_output.put_line(v_sal|' '|v_s);end ;4. 查詢出所有員工信息,打印出所有員工的編號和姓名。declare v_emprecord emp%rowtype; cursor c_emp is select * from emp ;begin for v_emprecord in c_emp loop dbms_output.put_line('empno='|v_emprecord.empno|' '|'ename='|v_emprecord.ename); end loop;end ;第10章 存儲過程與函數(shù)1. 什么是存儲過程,存儲過程和pl/sql有什么區(qū)別。存儲過程是一種pl/sql塊,以命名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育類讀書分享
- 2025年計(jì)算機(jī)服務(wù)項(xiàng)目規(guī)劃申請報(bào)告模板
- 2025年蚌埠淮上區(qū)區(qū)屬國有企業(yè)招聘考試筆試試題(含答案)
- 【錦州】2025年遼寧錦州義縣事業(yè)單位面向社會公開招聘工作人員15人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 文庫發(fā)布:中醫(yī)護(hù)理
- 書包勞動與技術(shù)課件
- 整體護(hù)理教程課件教學(xué)
- 【課件】角的平分線+第1課時(shí)+++課件-2025-2026學(xué)年+人教版2024八年級數(shù)學(xué)上冊
- 魏姍姍四季之美教學(xué)課件
- 教育課件背景圖
- 化學(xué)品作業(yè)場所安全警示標(biāo)志大全
- 明星保鏢合同樣本
- AQ/T 2061-2018 金屬非金屬地下礦山防治水安全技術(shù)規(guī)范(正式版)
- 訂單合同貸款
- 翻譯中國智慧樹知到期末考試答案章節(jié)答案2024年湖南工業(yè)大學(xué)
- 中國民族鋼琴藝術(shù)鑒賞智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學(xué)
- 新編旅游職業(yè)道德 課件 譚為躍 第6、7章 旅游交通從業(yè)者道德素養(yǎng)、旅游購物店從業(yè)者道德素養(yǎng)
- 中國銀行交易流水明細(xì)清單
- 影像檢查技術(shù)規(guī)范手冊:MRI分冊
- 新型農(nóng)村建設(shè)供水管理方案
- 醫(yī)院培訓(xùn)課件:《基于醫(yī)院感染防控的安全注射》
評論
0/150
提交評論