日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle面试上机题,Oracle面试题附带答案

發(fā)布時(shí)間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle面试上机题,Oracle面试题附带答案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.你要對(duì)操縱Oracle數(shù)據(jù)庫(kù)中的數(shù)據(jù)。下列哪個(gè)選項(xiàng)表示Oracle中select語(yǔ)句的功能,

并且不需要使用子查詢(C)

A.可以用select語(yǔ)句改變Oracle中的數(shù)據(jù)

B.可以用select語(yǔ)句刪除Oracle中的數(shù)據(jù)

C.可以用select語(yǔ)句和另一個(gè)表的內(nèi)容生成一個(gè)表

D.可以用select語(yǔ)句對(duì)表截?cái)?/p>

2. 你要在Oracle中定義SQL查詢。下列哪個(gè)數(shù)據(jù)庫(kù)對(duì)象不能直接從select語(yǔ)句中引用(C)

A.表?????? B.序列?????? C.索引???? D.視圖

3. ?用下列代碼塊回答問題:

SQL>?select?______(-45)?as?output?from?dual;

OUTPUT

------

-45

下列哪個(gè)單行函數(shù)無(wú)法產(chǎn)生這個(gè)輸出(A)

A.abs()?????????B.ceil()??????????C.floor()????????D.round()

4. ?SQL?*Plus中發(fā)出的下列語(yǔ)句:

SQL>?select?ceil(-97.342),

2 ?floor(-97.342),

3??round(-97.342),

4??trunc(-97.342)

5??from?dual;

下列哪個(gè)函數(shù)不返回結(jié)果-97(B)

A.ceil()??????????B.floor()??????????C.round()??????????D.trunc()

5. ?你要定義外連接,下列哪個(gè)選項(xiàng)正確描述了外連接語(yǔ)句?( D )

A.由于外連接操作允許一個(gè)表中有NULL值,因此連接這些表時(shí)不必指定相等性比較。

B.在表A與B的外連接語(yǔ)句中,如果不管B表有無(wú)相應(yīng)記錄,都要顯示表A的所有行,則可以使用右外連接。

C.在表A與B的外連接語(yǔ)句中,如果不管A表有無(wú)相應(yīng)記錄,都要顯示表B的所有行,則可以使用左外連接。

D.盡管外連接操作允許一個(gè)表中有NULL值,但連接這些表時(shí)仍要指定相等性比較

6. 對(duì)數(shù)據(jù)庫(kù)運(yùn)行下列哪個(gè)group by查詢時(shí)會(huì)從Oracle產(chǎn)生錯(cuò)誤?( C )

A.select deptno, job, sum(sal) from emp group by job, deptno;

B.select sum(sal), deptno, job from emp group by job, deptno;

C.select deptno, job, sum(sal) from emp;

D. select deptno, sum(sal), job from emp group by job, deptno;

7.若account表中有14條記錄,則用戶執(zhí)行了以下操作,結(jié)果是( A )

declare

cursor mycur is select * from emp;

begin

open mycur;

dbms_output.put_line(mycur%rowcount);

close mycur;

end;

A.0

B.14

C.7

D.編譯不通過(guò),無(wú)法執(zhí)行。

8. 數(shù)據(jù)庫(kù)系統(tǒng)的核心是__B____。

A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、軟件工具D、數(shù)據(jù)庫(kù)

9. 下列敘述中正確的是___C__。

A、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)

C、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

10. SQL 語(yǔ)句中修改表結(jié)構(gòu)的命令是_C___。

A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE

D、ALTER STRUCTURE

11. 如果要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)組分組報(bào)表,第一個(gè)分組表達(dá)式是"部門",第二個(gè)分組表達(dá)

式是"性別",第三個(gè)分組表達(dá)式是"基本工資",當(dāng)前索引的索引表達(dá)式應(yīng)當(dāng)是___B__。

A、部門+性別+基本工資

B、部門+性別+STR(基本工資)

C、STR(基本工資)+性別+部門

D、性別+部門+STR(基本工資)

12. 數(shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS、數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS 三者之間的關(guān)系是___A___。

A、DBS 包括DB 和DBMS

B、DBMS 包括DB 和DBS

C、DB 包括DBS 和DBMS

D、DBS 就是DB,也就是DBMS

13. 定位第一條記錄上的命令是__A____。

A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP

14. 在關(guān)系模型中,實(shí)現(xiàn)"關(guān)系中不允許出現(xiàn)相同的元組"的約束是通過(guò)__B____。

A、候選鍵B、主鍵C、外鍵D、超鍵

15. 只有滿足聯(lián)接條件的記錄才包含在查詢結(jié)果中,這種聯(lián)接為__C____。

A、左聯(lián)接

B、右聯(lián)接

C、內(nèi)部聯(lián)接

D、完全聯(lián)接

16. 索引字段值不唯一,應(yīng)該選擇的索引類型為____B__。

A、主索引

B、普通索引

C、候選索引

D、唯一索引

17. 10. 從數(shù)據(jù)庫(kù)中刪除表的命令是___A__。

A、DROP TABLE

B、ALTER TABLE

C、DELETE TABLE

D、USE? TABLE

18. DELETE FROM S WHERE 年齡>60 語(yǔ)句的功能是___B__。

A、從S 表中徹底刪除年齡大于60 歲的記錄

B、S 表中年齡大于60 歲的記錄被加上刪除標(biāo)記

C、刪除S 表

D、刪除S 表的年齡列

19. SELECT-SQL 語(yǔ)句是__B___。

A、選擇工作區(qū)語(yǔ)句

B、數(shù)據(jù)查詢語(yǔ)句

C、選擇標(biāo)準(zhǔn)語(yǔ)句

D、數(shù)據(jù)修改語(yǔ)句

20. SQL 語(yǔ)言是__C___語(yǔ)言。

A、層次數(shù)據(jù)庫(kù)

B、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)

C、關(guān)系數(shù)據(jù)庫(kù)

D、非數(shù)據(jù)庫(kù)

21. 在SQL 中,刪除視圖用__C____。

A、DROP SCHEMA 命令

B、CREATE TABLE 命令

C、DROP VIEW 命令

D、DROP INDEX 命令

22. 在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,建立兩個(gè)表之間的一對(duì)多聯(lián)系是通過(guò)以下索引實(shí)現(xiàn)的

__? A____。

A、"一方"表的主索引或候選索引,"多方"表的普通索引

B、"一方"表的主索引,"多方"表的普通索引或候選索引

C、"一方"表的普通索引,"多方"表的主索引或候選索引

D、"一方"表的普通索引,"多方"表的候選索引或普通索引

23. 下列函數(shù)中函數(shù)值為字符型的是___B___。

A、DATE()

B、TIME()

C、YEAR()

D、DATETIME()

24. 將查詢結(jié)果放在數(shù)組中應(yīng)使用___A___短語(yǔ)。

A、INTO CURSOR B、TO ARRAY C、INTO TABLE D、INTO ARRAY

簡(jiǎn)答題

1. 如何判斷游標(biāo)是否到了末尾。

答: cursor_name%notfound

2.寫一個(gè)‘游標(biāo)’并使用它。

答:

Declare

cursor cursor_name is

Select real_name from account;

Name varchar2(10);

Begin

open cursor_name;

loop

fetch cursor into name;

exit when cursor_name%notfound;

sql…

end loop;

close cursor_name;

end;

3. 使用存儲(chǔ)過(guò)程訪問數(shù)據(jù)庫(kù)比直接用SQL語(yǔ)句訪問有哪些優(yōu)點(diǎn)?

答:

存儲(chǔ)過(guò)程是預(yù)編譯過(guò)的,執(zhí)行時(shí)勿須編譯,執(zhí)行速度更快;存儲(chǔ)過(guò)程封裝了一批SQL語(yǔ)句,便于維護(hù)數(shù)據(jù)的完整性與一致性;可以實(shí)現(xiàn)代碼的復(fù)用。

4.簡(jiǎn)述數(shù)據(jù)庫(kù)的第一范式,第二范式,第三范式。并舉例

答:

第一范式:(1NF)無(wú)重復(fù)的列。

第二范式:(2NF)屬性完全依賴于主鍵。

第三范式:(3NF)屬性不依賴于其它非主屬性。

5. 試述事務(wù)的概念及事務(wù)的四個(gè)特性。

答:

事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個(gè)四個(gè)特性也簡(jiǎn)稱為ACID特性。

原子性:事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。

6. Truncate與?delete的區(qū)別?

答:

delete一般用于刪除少量記錄的操作,而且它是要使用回滾段并且要進(jìn)行顯示的提交事務(wù)。而truncate則使用于大量刪除數(shù)據(jù),而且隱式提交事務(wù),其速度要比使用delete快的。

7. Truncate與?delete的區(qū)別?

答:

DDL表示數(shù)據(jù)定義語(yǔ)言,在ORACLE中主要包括CREATE,ALTER,DROP;

DML表示數(shù)據(jù)操作語(yǔ)言,主要的DML有SELECT,INSERT,UPDATE,DELETE。

8.如何獲取系統(tǒng)時(shí)間。

答:

select sysdate from dual;

編程題

1、一個(gè)日期判斷的sql 語(yǔ)句?

請(qǐng)取出tb_send 表中日期(SendTime 字段) 為當(dāng)天的所有記錄?(SendTime 字段為

datetime 型,包含日期與時(shí)間)

答:select * from tb where datediff(dd,SendTime,getdate())=0

2.一道SQL 語(yǔ)句面試題,關(guān)于group by 表內(nèi)容:

2005-05-09 勝

2005-05-09 勝

2005-05-09 負(fù)

2005-05-09 負(fù)

2005-05-10 勝

2005-05-10 負(fù)

2005-05-10 負(fù)

如果要生成下列結(jié)果, 該如何寫sql 語(yǔ)句?

勝負(fù)

2005-05-09 2 2

2005-05-10 1 2

答:

create table #tmp(rq varchar(10),shengfu nchar(1))

insert into #tmp values('2005-05-09','勝')

insert into #tmp values('2005-05-09','勝')

insert into #tmp values('2005-05-09','負(fù)')

insert into #tmp values('2005-05-09','負(fù)')

insert into #tmp values('2005-05-10','勝')

insert into #tmp values('2005-05-10','負(fù)')

insert into #tmp values('2005-05-10','負(fù)')

1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負(fù)'

then 1 else 0 end)'負(fù)' from #tmp group by rq

2) select N.rq,N.勝,M.負(fù)from (

select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join

(select rq,負(fù)=count(*) from #tmp where shengfu='負(fù)'group by rq)M on N.rq=M.rq

3)select a.col001,a.a1 勝,b.b1 負(fù)from

(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,

(select col001,count(col001) b1 from temp1 where col002='負(fù)' group by col001) b

where a.col001=b.col001

3、請(qǐng)用SQL 語(yǔ)句實(shí)現(xiàn):從TestDB 數(shù)據(jù)表中查詢出所有月份的發(fā)生額都比101 科目相應(yīng)月份的發(fā)生額高的科目。請(qǐng)注意:TestDB 中有很多科目,都有1-12 月份的發(fā)生額。

AccID:科目代碼,Occmonth:發(fā)生額月份,DebitOccur:發(fā)生額。

數(shù)據(jù)庫(kù)名:JcyAudit,數(shù)據(jù)集:Select * from TestDB

答:select a.*

from TestDB a

,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group

by Occmonth) b

where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur

4.有一個(gè)兩維表,M行N列,請(qǐng)用Oracle的存儲(chǔ)過(guò)程,轉(zhuǎn)置成N行M列。

答:???? CREATE OR REPLACE PROCEDURE row_col_convert(p_tabname IN VARCHAR2,view_name IN VARCHAR2 DEFAULT 'v_tmp')

AUTHID CURRENT_USER

AS

sqlstr VARCHAR2(4000);

sqlstr1 varchar2(500):='select ''??'' newid';

cur sys_refcursor;

id_col VARCHAR2(30);

id varchar2(100);

BEGIN

if trim(p_tabname) is null then return; end if;

SELECT column_name INTO id_col FROM user_tab_cols WHERE table_name=upper(p_tabname) AND column_id=1;

OPEN cur FOR 'select to_char('||id_col||') from '||p_tabname||' order by 1';

loop

fetch cur INTO ID;

exit WHEN cur%notfound;

sqlstr1:=sqlstr1||',max(decode('||id_col||','''||id||''',to_char(??)))"'||id||'"';

END loop;

sqlstr1:=sqlstr1||' from '||p_tabname;

FOR cur1 IN(SELECT column_name FROM user_tab_cols WHERE table_name=upper(p_tabname) AND column_id>1) loop

sqlstr:=sqlstr||chr(10)||'union all '||REPLACE(sqlstr1,'??',cur1.column_name);

END loop;

execute immediate 'create or replace view '||view_name||' as '||substr(sqlstr,12);

END;

5.請(qǐng)根據(jù)以下的描述,編寫存儲(chǔ)過(guò)程 sp_terminal

用戶資料表:serv( serv_id number(10), pro_id number(10), user_type varchar2(30), terminal_name varchar2(30) )

其中,serv_id 為用戶標(biāo)識(shí),是serv表的主鍵,prod_id為產(chǎn)品標(biāo)識(shí);user_type為用戶類型;terminal_name為終端類型

終端類型臨時(shí)表:terminal(serv_id number(10),terminal_name varchar2(30))

初始化的情況下,serv表的serv_id,prod_id,user_type字段是已知的,terminal_name字段是空的,現(xiàn)在主要根據(jù)prod_id,user_type字段的值來(lái)更新terminal_name字段

更新條件為:

當(dāng)條件滿足“prod_id = 1 and user_type='A'“時(shí),terminal_name更新為‘固話’

當(dāng)條件滿足”prod_id = 1 and user_type='B'“時(shí),terminal_name更新為‘小靈通’

當(dāng)條件滿足”prod_id = 2“時(shí),terminal_name更新為‘寬帶’

當(dāng)條件滿足”user_type=‘C’“時(shí),terminal_name更新為‘CDMA’

以上條件均不滿足時(shí),terminal_name更新為? -1;

答:

create or replace procedure sp_terminal

is

begin

update serv t

set t.terminal_name = case when t.pro_id = 1 and t.user_type = 'A' then '固話'

when t.pro_id = 1 and t.user_type = 'B' then '小靈通'

when t.pro_id = 2 then '寬帶'

when t.user_type = 'C' then 'CDMA'

else '-1'

end;

update terminal a

set a.terminal_name = (select t.terminal_name

from serv t

where t.serv_id = a.serv_id)

where exists (select 'x'

from serv t

where t.serv_id = a.serv_id);

end;

總結(jié)

以上是生活随笔為你收集整理的oracle面试上机题,Oracle面试题附带答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。