Oracle测试题
--1、oracle如何得知需要創建的控制文件的信息? ?
--答:從初始化參數文件中讀取
--創建數據庫時,系統會根據初始化參數文件中CONTROL_FILES的設置創建控制文件。
--2、一個數據庫至少幾個控制文件?
--答:一個
--3、數據字典和視圖在哪個系統表空間?
--答:system
--4、回滾段的作用?
--答:事務回滾、數據庫恢復、數據的讀一致性、閃回查詢
--5、最近使用過的SQL語句存在哪個區?
--答:共享池
--6、實例啟動,數據庫處于nomount、mount還是open?
--答:nomount
--7、數據庫啟動時,如果datafile或者logfile不能用,數據庫能打開嗎?
--答:不能
--8、數據庫啟動,需要經歷哪三個過程,順序能顛倒嗎?
--答:不能顛倒,nomount;mount;open。
--9、添加、刪除數據表約束的語法?
--答:alter table 表 add constraint 約束名 約束;
-- ? ? ? ?alter table 表 drop constraint 約束名;
--10、connect、dba、resource是權限還是角色?
--答:角色
--11、表1有2行,表2有3行,它們的笛卡爾積有幾行?
--答:2X3=6
--12、distinct的作用是什么?
--答:去除重復記錄
--13、plsql的注釋有哪幾種?
--答:單行注釋:--;多行注釋:/**/。
--14、異常處理中,捕獲所有異常的關鍵字是什么?
--答:OTHERS
--15、where后面能直接出現聚合函數嗎?
--答:不能(HAVING)
--16、plsql中跳出循環的關鍵字是?
--答:EXIT
--17、哪些語句能給表加上鎖?
--答:select * from 表 for update;
--18、plsql匿名塊有哪三部分組成?
--答:declare:聲明部分、begin:執行部分、exception:異常處理部分。
--19、數據泵導入導出工具是?傳統的導入導出工具分別是?
--答:數據泵:expdp和impdp;傳統導入導出工具:export和import。
--20、使用游標的四個步驟?
--答:1、定義游標;2、打開游標;3、檢索游標;4、關閉游標。
--21、oracle中常用的轉換函數有哪幾個?
--答:to_char、to_number、to_date。
--22、事務提交和回滾分別用什么指令?
--答:commit;rollback;
--23、寫出求 1-10 的和的plsql代碼
/*
declare
? v_s number := 0;
? v_n number := 0;
begin
? for v_n in 1 .. 10 loop
? ? v_s := v_s + v_n;
? end loop;
? dbms_output.put_line(v_s);
end;
*/
--24、用plsql for循環嵌套,打印*組成的直角三角形
/*
begin
? for i in 1 .. 10 loop
? ? for j in 1 .. i loop
? ? ? dbms_output.put('*');
? ? end loop;
? ? dbms_output.put_line('');
? end loop;
end;
*/
--25、用戶和模式的區別?
--答:1、用戶和模式相對應,一個模式只能被一個數據庫用戶所擁有,且名稱相同。
--2、同一模式中數據庫對象名稱必須唯一,不同模式中數據庫對象可以重名。
--3、默認情況用戶引用的對象是與自己同名模式中的對象,如要引用其他模式的對象,
--需要在對象名之前指明對象所屬的模式。
--26、表中都有哪些常用的約束?
--答:主鍵、外鍵、非空、唯一、check、default
--27、異常是什么,有哪幾類?
--答:運行時發生的錯誤。
--異常分為預定義異常、非預定義異常和用戶定義異常3種
--28、游標是什么?有什么作用?有哪幾類游標?
--答:指向內存緩沖區的句柄或指針。
--可以逐行檢索數據,根據不同條件對數據進行處理。
--游標是指向PLSQL塊執行查詢語句(SELECT)和數據操縱語句(DML)時,
--分配的包含處理過程的必要信息的內存緩沖區的句柄或指針。用于處理多行數據。
--分為顯式游標、隱式游標2種
--29、
--1、一個簡單的教學管理系統關系模式如下:
--教師(教師號,姓名,性別,出生日期,系,職稱,課程號)
drop table tst29_tch;
create table tst29_tch (
? tch_no varchar2(10),
? tch_name varchar2(100),
? tch_sex varchar2(5),
? tch_birthday date,
? tch_dept varchar2(100),
? tch_level varchar2(100),
? cur_no varchar2(10)
);
--課程(課程號,課程名,學分)
drop table tst29_cur;
create table tst29_cur (
? cur_no varchar2(10),
? cur_name varchar2(100),
? cur_score number
);
--學生(學號,姓名,性別,年齡,班級,系)
create table tst29_stu (
? stu_no varchar2(10),
? stu_name varchar2(100),
? stu_sex varchar2(5),
? stu_age number,
? stu_class varchar2(100),
? stu_dept varchar2(100)
);
--請畫出與之對應的E-R圖 。
--2.根據上題中的關系模式,完成以下語句(表名和列名去自定義):
-- 把新進的學生張三,其學號為x110,年齡20,分配到2班。?
insert into tst29_stu
? (stu_no, stu_name, stu_sex, stu_age, stu_class)
values
? ('110', '張3', '無', 13, '2');
-- 查詢可以代java課的所有老師。?
select *
? from tst29_tch t
? left join tst29_cur c on t.cur_no = c.cur_no
?where c.cur_name = 'java';
-- 刪除年齡不滿16歲的學生信息。
select * from tst29_stu;
delete from tst29_stu where stu_age < 16;
select * from tst29_stu;
-- 把軟件1班的張三調到軟件2班。?
update tst29_stu set stu_class = '1' where stu_name = '張三' and stu_class = '2';
-- 查詢各門課程的最高成績。?
select max(cur_score) from tst29_cur;
-- 創建一個存儲過程p_getAvgAge,用于計算并打印軟件系的學生的平均年齡。?
create or replace procedure p_getavgage is
? v_avgage number;
begin
? select avg(stu_age) into v_avgage from tst29_stu;
? dbms_output.put_line(v_avgage);
end;
begin
? p_getavgage();
end;
--答:從初始化參數文件中讀取
--創建數據庫時,系統會根據初始化參數文件中CONTROL_FILES的設置創建控制文件。
--2、一個數據庫至少幾個控制文件?
--答:一個
--3、數據字典和視圖在哪個系統表空間?
--答:system
--4、回滾段的作用?
--答:事務回滾、數據庫恢復、數據的讀一致性、閃回查詢
--5、最近使用過的SQL語句存在哪個區?
--答:共享池
--6、實例啟動,數據庫處于nomount、mount還是open?
--答:nomount
--7、數據庫啟動時,如果datafile或者logfile不能用,數據庫能打開嗎?
--答:不能
--8、數據庫啟動,需要經歷哪三個過程,順序能顛倒嗎?
--答:不能顛倒,nomount;mount;open。
--9、添加、刪除數據表約束的語法?
--答:alter table 表 add constraint 約束名 約束;
-- ? ? ? ?alter table 表 drop constraint 約束名;
--10、connect、dba、resource是權限還是角色?
--答:角色
--11、表1有2行,表2有3行,它們的笛卡爾積有幾行?
--答:2X3=6
--12、distinct的作用是什么?
--答:去除重復記錄
--13、plsql的注釋有哪幾種?
--答:單行注釋:--;多行注釋:/**/。
--14、異常處理中,捕獲所有異常的關鍵字是什么?
--答:OTHERS
--15、where后面能直接出現聚合函數嗎?
--答:不能(HAVING)
--16、plsql中跳出循環的關鍵字是?
--答:EXIT
--17、哪些語句能給表加上鎖?
--答:select * from 表 for update;
--18、plsql匿名塊有哪三部分組成?
--答:declare:聲明部分、begin:執行部分、exception:異常處理部分。
--19、數據泵導入導出工具是?傳統的導入導出工具分別是?
--答:數據泵:expdp和impdp;傳統導入導出工具:export和import。
--20、使用游標的四個步驟?
--答:1、定義游標;2、打開游標;3、檢索游標;4、關閉游標。
--21、oracle中常用的轉換函數有哪幾個?
--答:to_char、to_number、to_date。
--22、事務提交和回滾分別用什么指令?
--答:commit;rollback;
--23、寫出求 1-10 的和的plsql代碼
/*
declare
? v_s number := 0;
? v_n number := 0;
begin
? for v_n in 1 .. 10 loop
? ? v_s := v_s + v_n;
? end loop;
? dbms_output.put_line(v_s);
end;
*/
--24、用plsql for循環嵌套,打印*組成的直角三角形
/*
begin
? for i in 1 .. 10 loop
? ? for j in 1 .. i loop
? ? ? dbms_output.put('*');
? ? end loop;
? ? dbms_output.put_line('');
? end loop;
end;
*/
--25、用戶和模式的區別?
--答:1、用戶和模式相對應,一個模式只能被一個數據庫用戶所擁有,且名稱相同。
--2、同一模式中數據庫對象名稱必須唯一,不同模式中數據庫對象可以重名。
--3、默認情況用戶引用的對象是與自己同名模式中的對象,如要引用其他模式的對象,
--需要在對象名之前指明對象所屬的模式。
--26、表中都有哪些常用的約束?
--答:主鍵、外鍵、非空、唯一、check、default
--27、異常是什么,有哪幾類?
--答:運行時發生的錯誤。
--異常分為預定義異常、非預定義異常和用戶定義異常3種
--28、游標是什么?有什么作用?有哪幾類游標?
--答:指向內存緩沖區的句柄或指針。
--可以逐行檢索數據,根據不同條件對數據進行處理。
--游標是指向PLSQL塊執行查詢語句(SELECT)和數據操縱語句(DML)時,
--分配的包含處理過程的必要信息的內存緩沖區的句柄或指針。用于處理多行數據。
--分為顯式游標、隱式游標2種
--29、
--1、一個簡單的教學管理系統關系模式如下:
--教師(教師號,姓名,性別,出生日期,系,職稱,課程號)
drop table tst29_tch;
create table tst29_tch (
? tch_no varchar2(10),
? tch_name varchar2(100),
? tch_sex varchar2(5),
? tch_birthday date,
? tch_dept varchar2(100),
? tch_level varchar2(100),
? cur_no varchar2(10)
);
--課程(課程號,課程名,學分)
drop table tst29_cur;
create table tst29_cur (
? cur_no varchar2(10),
? cur_name varchar2(100),
? cur_score number
);
--學生(學號,姓名,性別,年齡,班級,系)
create table tst29_stu (
? stu_no varchar2(10),
? stu_name varchar2(100),
? stu_sex varchar2(5),
? stu_age number,
? stu_class varchar2(100),
? stu_dept varchar2(100)
);
--請畫出與之對應的E-R圖 。
--2.根據上題中的關系模式,完成以下語句(表名和列名去自定義):
-- 把新進的學生張三,其學號為x110,年齡20,分配到2班。?
insert into tst29_stu
? (stu_no, stu_name, stu_sex, stu_age, stu_class)
values
? ('110', '張3', '無', 13, '2');
-- 查詢可以代java課的所有老師。?
select *
? from tst29_tch t
? left join tst29_cur c on t.cur_no = c.cur_no
?where c.cur_name = 'java';
-- 刪除年齡不滿16歲的學生信息。
select * from tst29_stu;
delete from tst29_stu where stu_age < 16;
select * from tst29_stu;
-- 把軟件1班的張三調到軟件2班。?
update tst29_stu set stu_class = '1' where stu_name = '張三' and stu_class = '2';
-- 查詢各門課程的最高成績。?
select max(cur_score) from tst29_cur;
-- 創建一個存儲過程p_getAvgAge,用于計算并打印軟件系的學生的平均年齡。?
create or replace procedure p_getavgage is
? v_avgage number;
begin
? select avg(stu_age) into v_avgage from tst29_stu;
? dbms_output.put_line(v_avgage);
end;
begin
? p_getavgage();
end;
總結
- 上一篇: LINQ能不能用系列(一)LINQ to
- 下一篇: js堆栈溢出的问题