国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

oracle練習題目.

來源:懂視網 責編:小采 時間:2020-11-09 07:57:14
文檔

oracle練習題目.

oracle練習題目.:1、表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一個表table1有兩個字段FID,Fno,字都非空,寫一個SQL語句
推薦度:
導讀oracle練習題目.:1、表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一個表table1有兩個字段FID,Fno,字都非空,寫一個SQL語句

1、表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一個表table1有兩個字段FID,Fno,字都非空,寫一個SQL語句列出該表中一個FID對

1、表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。

select fclass,max(fscore) from table1 group by fclass,fid

2、有一個表table1有兩個字段FID,Fno,字都非空,寫一個SQL語句列出該表中一個FID對應多個不同的Fno的紀錄。
類如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
結果:
102a1002
102a1003
104a1005
104a1006

select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno;

3、有員工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如數據量很大約1000萬條;寫一個你認為最高效的SQL,用一個SQL計算以下四種人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary <9999 and fage > 35
fsalary <9999 and fage < 35
每種員工的數量;
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo;
4、表A字段如下
month person income
月份 人員 收入
要求用一個SQL語句(注意是一個)的處所有人(不區分人員)每個月及上月和下月的總收入
要求列表輸出為
月份 當月收入 上月收入 下月收入
MONTHS PERSON INCOME
---------- ---------- ----------200807 mantisXF 5000200806 mantisXF2 3500200806 mantisXF3 3000200805 mantisXF1 2000200805 mantisXF6 2200200804 mantisXF7 1800200803 8mantisXF 4000200802 9mantisXF 4200200802 10mantisXF 3300200801 11mantisXF 4600200809 11mantisXF 6800
11 rows selected
select months, max(incomes), max(prev_months), max(next_months)
from (select months,
incomes,
decode(lag(months) over(order by months),
to_char(add_months(to_date(months, 'yyyymm'), -1), 'yyyymm'), lag(incomes) over(order by months), 0) as prev_months, decode(lead(months) over(order by months), to_char(add_months(to_date(months, 'yyyymm'), 1), 'yyyymm'), lead(incomes) over(order by months), 0) as next_months from (select months, sum(income) as incomes from a group by months) aa) aaagroup by months;

MONTHS MAX(INCOMES) MAX(PREV_MONTHS) MAX(NEXT_MONTHS)---------- ------------ ---------------- ----------------200801 4600 0 7500200802 7500 4600 4000200803 4000 7500 1800200804 1800 4000 4200200805 4200 1800 6500200806 6500 4200 5000200807 5000 6500 0200809 6800 0 0

5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5

要求的處數據
2005-01-01 4
2005-01-02 5
合計 9
試用一個Sql語句完成。

select nvl(to_char(t02,'yyyy-mm-dd'),'合計'),sum(t01)from test
group by rollup(t02)

6,數據庫1,2,3 范式的概念與理解。
關系數據庫設計之時是要遵守一定的規則的。尤其是數據庫設計范式
簡單介紹1NF(第一范式),2NF(第二范式),3NF(第三范式),
第一范式(1NF):在關系模式R中的每一個具體關系r中,如果每個屬性È 都是不可再分的最小數據單位,則稱R是第一范式的關系。
例:如職工號,姓名,電話號碼組成一個表(一個人可能有一個辦公室電話 和一個家里電話號碼) 規范成為1NF有三種方法:
  一是重復存儲職工號和姓名。這樣,關鍵字只能是電話號碼。
  二是職工號為關鍵字,電話號碼分為單位電話和住宅電話兩個屬性
  三是職工號為關鍵字,但強制每條記錄只能有一個電話號碼。
  以上三個方法,第一種方法最不可取,按實際情況選取后兩種情況。
 第二范式(2NF):如果關系模式R(U,F)中的所有非主屬性都完全依賴于任意一個候選關鍵字,則稱關系R 是屬于第二范式的。
  例:選課關系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO為學號, CNO為課程號,GRADEGE 為成績,CREDIT 為學分。 由以上
條件,關鍵字為組合關鍵字(SNO,CNO)
  在應用中使用以上關系模式有以下問題:
  a.數據冗余,假設同一門課由40個學生選修,學分就 重復40次。
  b.更新異常,若調整了某課程的學分,相應的元組CREDITÈ都要更新,有可能會出現同一門課學分不同。
  c.插入異常,如計劃開新課,由于沒人選修,沒有學號關鍵字,只能等有人選修才能把課程和學分存入。
  d.刪除異常,若學生已經結業,從當前數據庫刪除選修記錄。某些門課程新生尚未選修,則此門課程及學分記錄無法保存。
  原因:非關鍵字屬性CREDIT僅函數依賴于CNO,也就是CREDIT部分依賴組合關鍵字(SNO,CNO)而不是完全依賴。
  解決方法:分成兩個關系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新關系包括兩個關系模式,它們之間通過SCN中
的外關鍵字CNO相聯系,需要時再進行自然聯接,恢復了原來的關系
 第三范式(3NF):如果關系模式R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞信賴,則稱關系R是屬于第三范式的。
  例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各屬性分別代表學號,
  姓名,所在系,系名稱,系地址。
  關鍵字SNO決定各個屬性。由于是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但這關系肯定有大量的冗余,有關學生所在的幾個
屬性DNO,DNAME,LOCATION將重復存儲,插入,刪除和修改時也將產生類似以上例的情況。
  原因:關系中存在傳遞依賴造成的。即SNO -> DNO。 而DNO -> SNO卻不存在,DNO -> LOCATION, 因此關鍵遼 SNO 對 LOCATIO
N 函數決定是通過傳遞依賴 SNO -> LOCATION 實現的。也就是說,SNO不直接決定非主屬性LOCATION。
  解決目地:每個關系模式中不能留有傳遞依賴。
  解決方法:分為兩個關系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
  注意:關系S中不能沒有外關鍵字DNO。否則兩個關系之間失去聯系。
7,簡述oracle行觸發器的變化表表的概念和使用,行觸發器里面對這兩個表有什么。
變化表mutating table
被DML語句正在修改的表
需要作為DELETE CASCADE參考完整性的結果進行更新的表也是變化的

:對于Session本身,不能讀取正在變化的表

表constraining table
需要對參考完整性執行讀操作的表

:如果列正在被改變,那么讀取或修改會觸發錯誤,但是修改其它列是允許的。
8、oracle臨時表有幾種。
臨時表和普通表的主要區別有哪些,使用臨時表的主要原因是什么?
在Oracle中,可以創建以下兩種臨時表:
a。會話特有的臨時表
CREATE GLOBAL TEMPORARY ( )


ON COMMIT PRESERVE ROWS;


b。事務特有的臨時表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的臨時表雖然是存在的,但是你試一下insert 一條記錄然后用別的連接登上去select,記錄是空的,明白了吧。
下面兩句話再貼一下:
--ON COMMIT DELETE ROWS 說明臨時表是事務指定,每次提交后ORACLE將截斷表(刪除全部行)
--ON COMMIT PRESERVE ROWS 說明臨時表是會話指定,當中斷會話時ORACLE將截斷表。

9,怎么實現:使一個會話里面執行的多個過程函數或觸發器里面都可以訪問的全局變量的效果,并且要實現會話間隔離?
--個人理解就是建立一個包,將常量或所謂的全局變量用包中的函數返回出來就可以了,摘抄一短網上的解決方法
Oracle數據庫程序包中的變量,在本程序包中可以直接引用,但是在程序包之外,則不可以直接引用。對程序包變量的存取,可以為每個變量配套相應的存儲過程<用于存儲數據>和函數<用于讀取數據>來實現。
  
  3.2 實例
  --定義程序包
  create or replace package PKG_System_Constant is
  
    C_SystemTitle nVarChar2(100):='測試全局程序變量'; --定義常數
    --獲取常數<系統標題>
    Function FN_GetSystemTitle
     Return nVarChar2;
  
    G_CurrentDate Date:=SysDate; --定義全局變量
    --獲取全局變量<當前日期>
    Function FN_GetCurrentDate
     Return Date;
    --設置全局變量<當前日期>
    Procedure SP_SetCurrentDate
     (P_CurrentDate In Date);
  End PKG_System_Constant;
  /
  create or replace package body PKG_System_Constant is
    --獲取常數<系統標題>
    Function FN_GetSystemTitle
     Return nVarChar2
     Is
     Begin
       Return C_SystemTitle;
     End FN_GetSystemTitle;
  
    --獲取全局變量<當前日期>
    Function FN_GetCurrentDate
     Return Date
     Is
     Begin
       Return G_CurrentDate;
     End FN_GetCurrentDate;
    --設置全局變量<當前日期>
    Procedure SP_SetCurrentDate
     (P_CurrentDate In Date)
     Is
     Begin
       G_CurrentDate:=P_CurrentDate;
     End SP_SetCurrentDate;
  End PKG_System_Constant;
  /
    
  3.3 測試
  --測試讀取常數
  Select PKG_System_Constant.FN_GetSystemTitle From Dual;   
  --測試設置全局變量
  Declare 
  Begin
    PKG_System_Constant.SP_SetCurrentDate(To_Date('2001.01.01','yyyy.mm.dd'));
  End;
  /
  --測試讀取全局變量
  Select PKG_System_Constant.FN_GetCurrentDate From Dual;

10,aa,bb表都有20個字段,且記錄數量都很大,aa,bb表的X字段(非空)上有索引,
請用SQL列出aa表里面存在的X在bb表不存在的X的È,請寫出認為最快的語句,并解譯原因。
select aa.x from aa
where not exists (select 'x' from bb where aa.x = bb.x) ;
以上語句同時使用到了aa中x的索引和的bb中x的索引

11,簡述SGA主要組成結構和用途?
SGA是Oracle為一個實例分配的一組共享內存緩沖區,它包含該實例的數據和控制信息。SGA在實例啟動時被自動分配,當實例關閉時被收回。數據庫的所有數據操作都要通過SGA來進行。
SGA中內存根據存放信息的不同,可以分為如下幾個區域:
a.Buffer Cache:存放數據庫中數據庫塊的拷貝。它是由一組緩沖塊所組成,這些緩沖塊為所有與該實例相鏈接的用戶進程所共享。緩沖塊的數目由初始化參數DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數DB_BLOCK_SIZE確定。大的數據塊可提高查詢速度。它由DBWR操作。
b. 日志緩沖區Redo Log Buffer:存放數據操作的更改信息。它們以日志項(redo entry)的形式存放在日志緩沖區中。當需要進行數據庫恢復時,日志項用于重構或回滾對數據庫所做的變更。日志緩沖區的大小由初始化參數LOG_BUFFER確定。大的日志緩沖區可減少日志文件I/O的次數。后臺進程LGWR將日志緩沖區中的信息寫入磁盤的日志文件中,可啟動ARCH后臺進程進行日志信息歸檔。
c. 共享池Shared Pool:包含用來處理的SQL語句信息。它包含共享SQL區和數據字典存儲區。共享SQL區包含執行特定的SQL語句所用的信息。數據字典區用于存放數據字典,它為所有用戶進程所共享。


12什么是分區表?簡述范圍分區和列表分區的區別,分區表的主要優勢有哪些?
使用分區方式建立的表叫分區表

范圍分區
每個分區都由一個分區鍵È范圍指定(對于一個以日期列作為分區鍵的表,“2005 年 1 月”分區包含分區鍵È為從“2005 年 1 月 1 日”
到“2005 年 1 月 31 日”的行)。

列表分區
每個分區都由一個分區鍵È列表指定(對于一個地區列作為分區鍵的表,“北美”分區可能包含È“加拿大”“美國”和“墨西哥”)。

分區功能通過改善可管理性、性能和可用性,從而為各式應用程序帶來了極大的好處。通常,分區可以使某些查詢以及維護操作的性能大大提高。此外,分區還可以極大簡化常見的管理任務。通過分區,數據庫設計人員和管理員能夠解決前沿應用程序帶來的一些難題。分區是構建千兆字節數據系統或超高可用性系統的關鍵工具。


13,背景:某數據運行在archivelog,且用rman作過全備份和數據庫的冷備份,
且所有的歸檔日志都有,現控制文件全部損壞,其他文件全部完好,請問該怎么恢復該數據庫,說一兩種方法。
回復的方法:
一.使用冷備份,直接將冷備份的文件全部COPY到原先的目錄下,在從新啟動數據庫就可以
二.使用歸檔日志,
1.啟動數據庫NOMOUNT
2.創建控制文件,控制文件指定數據文件和重做日志文件的位置.
3.使用RECOVER DATABASE using backup controlfile until cancel 命令回復數據庫,這時可以使用歸檔日志
4.ALETER DATABASE OPEN RESETLOGS;
5.重新備份數據庫和控制文件

14,用rman寫一個備份語句:備份表空間TSB,level 為2的增量備份。

15,有個表a(x number(20),y number(20))用最快速高效的SQL向該表插入從1開始的連續的1000萬記錄。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

oracle練習題目.

oracle練習題目.:1、表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一個表table1有兩個字段FID,Fno,字都非空,寫一個SQL語句
推薦度:
標簽: 選題 練習 題目
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久伊人精品一区二区三区 | 成人区精品一区二区毛片不卡 | 亚洲欧洲国产成人综合一本 | 在线观看精品一区 | 最新国产在线观看 | 久久久久久亚洲精品中文字幕 | 亚洲欧美一区二区三区久本道 | 久久91精品国产91久久户 | 亚洲国产精久久久久久久 | 色综合色狠狠天天综合色 | 三级网站免费播放国语 | 国产一区二区三区在线 | 国产欧美综合精品一区二区 | 国产精品成人一区二区1 | 国产资源视频在线观看 | 国产精品每日更新在线观看 | 99久久免费国产精精品 | 国产一区在线播放 | 久国产精品视频 | 国产在线精品一区二区 | 激情欧美一区二区三区中文字幕 | 久久久久国产成人精品亚洲午夜 | 日韩三级一区二区 | 国产成人免费高清激情明星 | 亚洲精品国产第七页在线 | 可以看的毛片网站 | 亚洲va欧美ⅴa国产va影院 | 又黄又爽无遮挡免费视频 | 欧美日韩精品在线视频 | 久久精品国产免费一区 | 国产精彩视频在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | 国模大胆一区二区三区 | 影音先锋亚洲综合小说在线 | 91视频中文字幕 | 欧美日本日韩aⅴ在线视频 欧美日韩91 | 日本不卡视频在线观看 | 国产成人精品日本亚洲语音2 | 最刺激黄a大片免费观看 | 日韩电影中文字幕在线网站 | 免费国产最新进精品视频 |