版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、基礎(chǔ)概念
1.列舉幾種表連接方式
Answer:等連接(內(nèi)連接)、非等連接、自連接、外連接(左、右、全)
Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin??
ORACLE8i,9i表連接方法。
一般的相等連接:select*froma,bwherea.id=b.id;這個就屬于內(nèi)連
接。
對于外連接:
Oracle中可以使用“(+)”來表達(dá),9i可以使用LEFT/RIGHT/FULLOUTERJOIN
LEFTOUTERJOIN:左外關(guān)聯(lián)
SELECTe.last_name,e.department_id,d.department_name
FROMemployeese
LEFTOUTERJOINdepartmentsd
ON(e.department_id=d.department_id);
等價于
SELECTe.last_name,e.department_id,d.department_name
FROMemployeese,departmentsd
WHEREe.department_id=d.department_id(+)
結(jié)果為:所有員工及相應(yīng)部門的記錄,涉及沒有相應(yīng)部門編號department_id
的員工記錄。
RIGHTOUTERJOIN:右外關(guān)聯(lián)
SELECTe.last_name,e.department_id,d.department_name
FROMemployeese
RIGHTOUTERJOINdepartmentsd
ON(e.department_id=d.department_id);
等價于
SELECTe.last_name,e.department_id,d.department_name
FROMemployeese,departmentsd
WHEREe.department_id(+)=d.department_id
結(jié)果為:所有員工及相應(yīng)部門的記錄,涉及沒有任何員工的部門記錄。
FULLOUTERJOIN:全外關(guān)聯(lián)
SELECTe.last_name,e.department_id,d.department_name
FROMemployeese
FULLOUTERJOINdepartmentsd
ON(e.department_id=d.department_id);
結(jié)果為:所有員工及相應(yīng)部門的記錄,涉及沒有相應(yīng)部門編號department_id
的員工記錄和沒有任何員工的部門記錄。
0RACLE8i是不直接支持完全外連接的語法,也就是說不能在左右兩個表上同時
加上(+),下面是在ORACLE81可以參考的完全外連接語法
selecttl.id,t2.idfromtableltl,tablet2wheretl.id=t2.id(+)
union
selecttl.id,t2.idfromtableltl,tablet2wheretl.id(+)=t2.id
連接類型
定義圖示例子
內(nèi)連接只連接匹配的行selectA.cl,B.c2fromAjoinBonA.c3=B.c3;
左外連接包含左邊表的所有行(不管右邊的表中是否存在與它們匹配的行)以
及右邊表中所有匹配的行selectA.cl,B.c2fromAleftjoinBonA.c3=B.c3;
右外連接包含右邊表的所有行(不管左邊的表中是否存在與它們匹配的行)以
及左邊表中所有匹配的行selectA.cl,B.c2fromArightjoinBonA.c3=B.c3;
全外連接包含左、右兩個表的所有行,不管在另一邊的表中是否存在與它們匹
配的行selectA.cl,B.c2fromAfulljoinBonA.c3=B.c3;
(theta)連接使用等值以外的條件來匹配左、右兩個表中的行select
A.cl,B.c2fromAjoinBonA.c3!=B.c3;
交叉連接生成笛卡爾積一一它不使用任何匹配或者選取條件,而是直接將一個
數(shù)據(jù)源中的每個行與另一個數(shù)據(jù)源的每個行一一匹配selectA.cl,B.c2
fromA,B;
2.不借助第三方工具,如何查看sql的執(zhí)行計劃
I)使用ExplainPlan,查詢PLAN_TABLE;
EXPLAINPLAN
SETSTATEMENT,ID=,QUERY1'
FOR
SELECT*
FROMa
WHEREaa=l;
SELECToperation,options,object_name,object_type,ID,parent_id
FROMplan_table
WHERESTATEMENT_ID=*QUERYP
ORDERBYID;
IDSQLPLUS中的SETTRACE即可看到ExecutionPlanStatistics
SETAUTOTRACEON;
3.如何使用CBO,CBO與RULE的區(qū)別
IF初始化參數(shù)0PTIMIZERJ10DE=CHOOSETHEN-(81DEFAULT)
IF做過表分析
THEN優(yōu)化器Optimizer=CBO(COST);/*高效*/
ELSE
優(yōu)化器Optimizer=RBO(RULE);/*高效*/
ENDIF;
ENDIF;
區(qū)別:
RBO根據(jù)規(guī)則選擇最佳執(zhí)行途徑來運營查詢。
CBO根據(jù)表記錄找到最低成本的訪問數(shù)據(jù)的方法擬定執(zhí)行計劃。
使用CBO需要注意:
I)需要經(jīng)常對表進(jìn)行ANALYZE命令進(jìn)行分析記錄;
II)需要穩(wěn)定執(zhí)行計劃;
HI)需要使用提醒(Hint);
使用RULE需要注意:
I)選擇最有效率的表名順序
H)優(yōu)化SQL的寫法;
在optimizer_mode=choose時,假如表有記錄信息(分區(qū)表外),優(yōu)化器將選擇
CBO,否則選RBOo
RBO遵循簡樸的分級方法學(xué),使用15種級別要點,當(dāng)接受到查詢,優(yōu)化器將評估
使用到的要點數(shù)目,然后選擇最佳級別(最少的數(shù)量)的執(zhí)行途徑來運營查詢。
CBO嘗試找到最低成本的訪問數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應(yīng)
時間,計算使用不同的執(zhí)行計劃的成本,并選擇成本最低的一個,關(guān)于表的數(shù)據(jù)內(nèi)
容的記錄被用于擬定執(zhí)行計劃。
4.如何定位重要(消耗資源多)的SQL
使用CPU多的用戶session
SELECTa.SID,spid,status,SUBSTR(a.program,1,40)prog,
a.terminal,a.SQL_TEXT,osuser,VALUE/60/100VALUE
FROMv$sessiona,v$processb,v$sesstatc
WHEREc.statistic#=12ANDc.SID=a.SIDANDa.paddr=b.addr
ORDERBYVALUEDESC;
selectsql_textfromv$sql
wheredisk_reads>1000or(executions>0andbuffer_gets/executions>
30000);
5.如何跟蹤某個session的SQL
運用TRACE跟蹤
ALTERSESSIONSETSQLTRACEON;
COLUMNSQLformata200;
SELECTmachine,sql_textSQL
FROMv$sqltexta,v$sessionb
WHEREaddress=sql_address
ANDmachine='&A'
ORDERBYhash_value,piece;
execdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);
selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystat
whererownum=1);
execdbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,;
6.SQL調(diào)整最關(guān)注的是什么
檢查系統(tǒng)的1/0問題
sar—d能檢查整個系統(tǒng)的iostat(10statistics)
查看該SQL的responsetime(dbblockgets/consistentgets/physical
reads/sorts(disk))
7.說說你對索引的結(jié)識(索引的結(jié)構(gòu)、對dml影響、對查詢影響、為什么提高
查詢性能)
索引有B-TREE、BIT、CLUSTER等類型。ORACLE使用了一個復(fù)雜的自平衡B-tree
結(jié)構(gòu);通常來說,在表上建立恰當(dāng)?shù)乃饕樵儠r會改善查詢性能。但在進(jìn)行插
入、刪除、修改時,同時會進(jìn)行索引的修改,在性能上有一定的影響。有索引且
查詢條件能使用索引時,數(shù)據(jù)庫會先度取索引,根據(jù)索引內(nèi)容和查詢條件,查詢
出ROWID,再根據(jù)R0WID取出需要的數(shù)據(jù)。由于索引內(nèi)容通常比全表內(nèi)容要少很
多,因此通過先讀索引,能減少I/O,提高查詢性能。
b-treeindex/bitmapindex/functionindex/patitionalindex(local/global)
索引通常能提高select/update/delete的性能,會減少insert的速度,
8.使用索引查詢一定能提高查詢的性能嗎?為什么
通常,通過索引查詢數(shù)據(jù)比全表掃描要快.但是我們也必須注意到它的代價.
索引需要空間來存儲,也需要定期維護(hù),每當(dāng)有記錄在表中增減或索引列被修改
時,索引自身也會被修改.這意味著每條記錄的INSERT,DELETE,UPDATE將為此
多付出4,5次的磁盤I/O.由于索引需要額外的存儲空間和解決,那些不必要的
索引反而會使查詢反映時間變慢.使用索引查詢不一定能提高查詢性能,索引范
圍查詢(INDEXRANGESCAN)合用于兩種情況:
基于一個范圍的檢索,一般查詢返回結(jié)果集小于表中記錄數(shù)的30%宜采用;
基于非唯一性索引的檢索
索引就是為了提高查詢性能而存在的,假如在查詢中索引沒有提高性能,只能說
是用錯了索引,或者講是場合不同
9.綁定變量是什么?綁定變量有什么優(yōu)缺陷?
綁定變量是指在SQL語句中使用變量,改變變量的值來改變SQL語句的執(zhí)行結(jié)果。
優(yōu)點:使用綁定變量,可以減少SQL語句的解析,能減少數(shù)據(jù)庫引擎消耗在SQL
語句解析上的資源。提高了編程效率和可靠性。減少訪問數(shù)據(jù)庫的次數(shù),就能事
實上減少ORACLE的工作量。
缺陷:經(jīng)常需要使用動態(tài)SQL的寫法,由于參數(shù)的不同,也許SQL的執(zhí)行效率不
同;
綁定變量是相對文本變量來講的,所謂文本變量是指在SQL直接書寫查詢條件,
這樣的SQL在不同條件下需要反復(fù)解析,綁定變量是指使用變量來代替直接書寫
條件,查詢bindvalue在運營時傳遞,然后綁定執(zhí)行。
優(yōu)點是減少硬解析,減少CPU的爭用,節(jié)省shared_pool
缺陷是不能使用histogram,sql優(yōu)化比較困難
10.如何穩(wěn)定(固定)執(zhí)行計劃
可以在SQL語句中指定執(zhí)行計劃。使用HINTS;
query_rewrite_enabled=true
star_transformation_enabled=true
optimizer_features_enable=9.2.0
創(chuàng)建并使用storedoutline
11.和排序相關(guān)的內(nèi)存在8i和9i分別如何調(diào)整,臨時表空間的作用是什么
SORT_AREA_SIZE在進(jìn)行排序操作時,假如排序的內(nèi)容太多,內(nèi)存里不能所有放
下,則需要進(jìn)行外部排序,
此時需要運用臨時表空間來存放排序的中間結(jié)果。
8i中sort_area_size/sort_area_retained_size決定了排序所需要的內(nèi)存,假
如排序操作不能在sort_area_size中完畢,就會用到temp表空間
9i中假如workarea_size_policy=auto時,
排序在pga內(nèi)進(jìn)行,通常pga_aggregate_target的1/20可以用來進(jìn)行disksort;
假如workarea_size_policy=manual時,排序需要的內(nèi)存由sort_area_size決
定,在執(zhí)行orderby/groupby/distinct/union/createindex/index
rebuild/minus等操作時,假如在pga或sort_area_size中不能完畢,排序?qū)⒃?/p>
臨時表空間進(jìn)行(disksort),臨時表空間重要作用就是完畢系統(tǒng)中的disksort.
12.存在表T(a,b,c,d),要根據(jù)字段c排序后取第21—30條記錄顯示,請給出
sql
SELECT*
FROM(SELECTROWNUMASrow_num,tmp_tab.*
FROM(SELECTa,b,c,d
FROMT
ORDERBYc)tmp_tab
WHEREROWNUM<=30)
WHERErow_num>=20
ORDERBYrownum;
createtablet(anumber(,bnumber(,cnumber(,dnumber();
/
begin
foriin1..300loop
insertintotvalues(mod(i,2),i/2,dbms_random.valued,300),i/4);
endloop;
end;
/
select*from(selectc.*,rownumasrnfrom(select*fromtorderbyc
desc)c)wherernbetween21and30;
select*from(select*fromtestorderbycdesc)xwhererownum<30
minus
select*from(select*fromtestorderbycdesc)ywhererownum<20
orderby3desc
相比之minus性能較差
二:數(shù)據(jù)庫基本概念類
1Pctusedandpctfree表達(dá)什么含義有什么作用
pctused與pctfree控制數(shù)據(jù)塊是否出現(xiàn)在freelist中,pctfree控制數(shù)據(jù)塊中
保存用于update的空間,當(dāng)數(shù)據(jù)塊中的freespace小于pctfree設(shè)立的空間時,
該數(shù)據(jù)塊從freelist中去掉,當(dāng)塊由于dml操作freespace大于pct_used設(shè)立
的空間時,該數(shù)據(jù)庫塊將被添加在freelist鏈表中。
2簡樸描述tablespace/segment/extent/block之間的關(guān)系
tablespace:一個數(shù)據(jù)庫劃分為一個或多個邏輯單位,該邏輯單位成為表空間;
每一個表空間也許包含一個或多個Segment;
Segments:Segment指在tablespace中為特定邏輯存儲結(jié)構(gòu)分派的空間。每一
個段是由一個或多個extent組成。涉及數(shù)據(jù)段、索引段、回滾段和臨時段。
Extents:一個extent由一系列連續(xù)的Oracleblocks組成.ORACLE為通過
extent來給segment分派空間。
DataBlocks:Oracle數(shù)據(jù)庫最小的I/O存儲單位,一個datablock相應(yīng)一個
或多個分派給datafile的操作系統(tǒng)塊。
table創(chuàng)建時,默認(rèn)創(chuàng)建了一個datasegment,每個datasegment具有min
extents指定的extents數(shù),每個extent據(jù)據(jù)表空間的存儲參數(shù)分派一定數(shù)量的
blocks
3描述tablespace和datafile之間的關(guān)系
一個表空間可包含一個或多個數(shù)據(jù)文獻(xiàn)。表空間運用增長或擴(kuò)展數(shù)據(jù)文獻(xiàn)擴(kuò)大表
空間,表空間的大小為組成該表空間的數(shù)據(jù)文獻(xiàn)大小的和。一個datafile只能
屬于一個表空間;
一個tablespace可以有一個或多個datafile,每個datafile只能在一個
tablespace內(nèi),table中的數(shù)據(jù),通過hash算法分布在tablespace中的各個
datafile中,tablespace是邏輯上的概念,datafile則在物理上儲存了數(shù)據(jù)庫的
種種對象。
4本地管理表空間和字典管理表空間的特點,ASSM有什么特點
本地管理表空間:(9i默認(rèn))空閑塊列表存儲在表空間的數(shù)據(jù)文獻(xiàn)頭。
特點:減少數(shù)據(jù)字典表的競爭,當(dāng)分派和收縮空間時會產(chǎn)生回滾,不需要合并。
字典管理表空間:(8i默認(rèn))空閑塊列表存儲在數(shù)據(jù)庫中的字典表里.
特點:片由數(shù)據(jù)字典管理,也許導(dǎo)致字典表的爭用。存儲在表空間的每一個段都
會有不同的存儲字句,需要合并相鄰的塊;
本地管理表空間(LocallyManagedTablespace簡稱LMT)
8i以后出現(xiàn)的一種新的表空間的管理模式,通過位圖來管理表空間的空間使用。
字典管理表空間(Dictionary-ManagedTablespace簡稱DMT)
8i以前涉及以后都還可以使用的一種表空間管理模式,通過數(shù)據(jù)字典管理表空
間的空間使用。動段空間管理(ASSM),它初次出現(xiàn)在0racle920里有了ASSM,
鏈接列表freelist被位圖所取代,它是一個二進(jìn)制的數(shù)組,
可以迅速有效地管理存儲擴(kuò)展和剩余區(qū)塊(freeblock),因此可以改善分段存
儲本質(zhì),ASSM表空間上創(chuàng)建的段尚有此外一個稱呼喊BitmapManagedSegments
(BMB段)。
5回滾段的作用是什么
回滾段用于保存數(shù)據(jù)修改前的映象,這些信息用于生成讀一致性數(shù)據(jù)庫信息、在
數(shù)據(jù)庫恢復(fù)和Rollback時使用。一個事務(wù)只能使用一個回滾段。
事務(wù)回滾:當(dāng)事務(wù)修改表中數(shù)據(jù)的時候,該數(shù)據(jù)修改前的值(即前影像)會存放
在回滾段中,當(dāng)用戶回滾事務(wù)(ROLLBACK)時,ORACLE將會運用回滾段中的數(shù)
據(jù)前影像來將修改的數(shù)據(jù)恢復(fù)到本來的值。
事務(wù)恢復(fù):當(dāng)事務(wù)正在解決的時候,例程失敗,回滾段的信息保存在undo表空
間中,ORACLE將在下次打開數(shù)據(jù)庫時運用回滾來恢復(fù)未提交的數(shù)據(jù)。
讀一致性:當(dāng)一個會話正在修改數(shù)據(jù)時,其他的會話將看不到該會話未提交的修
改。當(dāng)一個語句正在執(zhí)行時,該語句將看不到從該語句開始執(zhí)行后的未提交的
修改(語句級讀一致性)
當(dāng)ORACLE執(zhí)行SELECT語句時,ORACLE依照當(dāng)前的系統(tǒng)改變號(SYSTEMCHANGE
NUMBER-SCN)來保證任何前于當(dāng)前SCN的未提交的改變不被該語句解決??梢?/p>
想象:當(dāng)一個長時間的查詢正在執(zhí)行時,若其他會話改變了該查詢要查詢的某
個數(shù)據(jù)塊,ORACLE將運用回滾段的數(shù)據(jù)前影像來構(gòu)造一個讀一致性視圖
6日記的作用是什么
日記文獻(xiàn)(LogFile)記錄所有對數(shù)據(jù)庫數(shù)據(jù)的修改,重要是保護(hù)數(shù)據(jù)庫以防止
故障,以及恢復(fù)數(shù)據(jù)時使用。其特點如下:
a)每一個數(shù)據(jù)庫至少包含兩個日記文獻(xiàn)組。每個日記文獻(xiàn)組至少包含兩個日記文
獻(xiàn)成員。
b)日記文獻(xiàn)組以循環(huán)方式進(jìn)行寫操作。
c)每一個日記文獻(xiàn)成員相應(yīng)一個物理文獻(xiàn)。
記錄數(shù)據(jù)庫事務(wù),最大限度地保證數(shù)據(jù)的一致性與安全性
重做日記文獻(xiàn):含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢
復(fù),一個數(shù)據(jù)庫至少需要兩個重做日記文獻(xiàn)
歸檔日記文獻(xiàn):是重做日記文獻(xiàn)的脫機(jī)副本,這些副本也許對于從介質(zhì)失敗中進(jìn)
行恢復(fù)很必要。
7SGA重要有那些部分,重要作用是什么
系統(tǒng)全局區(qū)(SGA):是ORACLE為實例分派的一組共享緩沖存儲區(qū),用于存放數(shù)
據(jù)庫數(shù)據(jù)和控制信息,以實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作。
SGA重要涉及:
a)共享池(sharedpool):用來存儲最近執(zhí)行的SQL語句和最近使用的數(shù)據(jù)字典
的數(shù)據(jù)。
b)數(shù)據(jù)緩沖區(qū)(databasebuffercache):用來存儲最近從數(shù)據(jù)文獻(xiàn)中讀寫過的
數(shù)據(jù)。
c)重作日記緩沖區(qū)(red。logbuffer):用來記錄服務(wù)或后臺進(jìn)程對數(shù)據(jù)庫的
操作。
此外在SGA中尚有兩個可選的內(nèi)存結(jié)構(gòu):
d)Javapool:用來存儲Java代碼。
e)Largepool:用來存儲不與SQL直接相關(guān)的大型內(nèi)存結(jié)構(gòu)。備份、恢復(fù)使用。
GA:db_cache/shared_pool/large_pool/java_pool
db_cache:數(shù)據(jù)庫緩存(BlockBuffer)對于Oracle數(shù)據(jù)庫的運轉(zhuǎn)和性能起著
非常關(guān)鍵的作用,它占據(jù)Oracle數(shù)據(jù)庫SGA(系統(tǒng)共享內(nèi)存區(qū))的重要部分。
Oracle數(shù)據(jù)庫通過使用LRU算法,將最近訪問的數(shù)據(jù)塊存放到緩存中,從而優(yōu)
化對磁盤數(shù)據(jù)的訪問.
shared_pool:共享池的大小對于Oracle性能來說都是很重要的。共享池中保
存數(shù)據(jù)字典高速緩沖和完全解析或編譯的的PL/SQL塊和SQL語句及控制結(jié)構(gòu)
large_pool:使用MTS配置時,由于要在SGA中分派UGA來保持用戶的會話,就
是用Large_pool來保持這個會話內(nèi)存使用RMAN做備份的時候,要使用
Large_pool這個內(nèi)存結(jié)構(gòu)來做磁盤I/O緩存器
java_pool:為javaprocedure預(yù)備的內(nèi)存區(qū)域,假如沒有使用java
proc,java_pool不是必須的
8Oracle系統(tǒng)進(jìn)程重要有哪些,作用是什么
數(shù)據(jù)寫進(jìn)程(DBWR):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文獻(xiàn)
日記寫進(jìn)程(LGWR):將重做日記緩沖區(qū)中的更改寫入在線重做日記文獻(xiàn)
系統(tǒng)監(jiān)控(SMON):檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)
庫的恢復(fù)
進(jìn)程監(jiān)控(PMON):負(fù)責(zé)在一個Oracle進(jìn)程失敗時清理資源
檢查點進(jìn)程(CKPT):負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中
時,更新控制文獻(xiàn)和數(shù)據(jù)文獻(xiàn)中的數(shù)據(jù)庫狀態(tài)信息。
歸檔進(jìn)程(ARCH):在每次日記切換時把已滿的日記組進(jìn)行備份或歸檔
恢復(fù)進(jìn)程(RECO):保證分布式事務(wù)的一致性,在分布式事務(wù)中,要么同時
commit,要么同時rollback;
作業(yè)調(diào)度器(CJQ):負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完畢一些預(yù)定義
的工作.
三:備份恢復(fù)類
1備份如何分類
邏輯備份:exp/imp指定表的邏輯備份
物理備份:
熱備份:altertablespacebegin/endbackup;
冷備份:脫機(jī)備份(databaseshutdown)
RMAN備份
fullbackup/incrementalbackup(累積/差異)
物理備份
物理備份是最重要的備份方式。用于保證數(shù)據(jù)庫在最小的數(shù)據(jù)庫丟失或沒有數(shù)據(jù)
丟失的情況下得到恢復(fù)。
冷物理
冷物理備份提供了最簡樸和最直接的方法保護(hù)數(shù)據(jù)庫因物理損壞丟失。建議在以
下幾種情況中使用。
對一個已經(jīng)存在大最數(shù)據(jù)量的數(shù)據(jù)庫,在晚間數(shù)據(jù)庫可以關(guān)閉,此時應(yīng)用冷物理
備份。
對需對數(shù)據(jù)庫服務(wù)器進(jìn)行升級,(如更換硬盤),此時需要備份數(shù)據(jù)庫信息,并
在新的硬盤中恢復(fù)這些數(shù)據(jù)信息,建議采用冷物理備份。
熱物理
重要是指備份過程在數(shù)據(jù)庫打開并且用戶可以使用的情況下進(jìn)行。需要執(zhí)行熱物
理備份的情況有:
由于數(shù)據(jù)庫性質(zhì)規(guī)定不間斷工作,因而此時只能采用熱物理備份。
由于備份的規(guī)定的時間過長,而數(shù)據(jù)庫只能短時間關(guān)閉時。
邏輯備份(EXP/IMP)
邏輯備份用于實現(xiàn)數(shù)據(jù)庫對象的恢復(fù)。但不是基于時間點可完全恢復(fù)的備份策
略。只能作為聯(lián)機(jī)備份和脫機(jī)備份的一種補(bǔ)充。
完全邏輯備份
完全邏輯備份是將整個數(shù)據(jù)庫導(dǎo)出到一個數(shù)據(jù)庫的格式文獻(xiàn)中,該文獻(xiàn)可以在不
同的數(shù)據(jù)庫版本、操作系統(tǒng)和硬件平臺之間進(jìn)行移植。
指定表的邏輯備份
通過備份工具,可以將指定的數(shù)據(jù)庫表備份出來,這可以避免完全邏輯備份所帶
來的時間和財力上的浪費。
2歸檔是什么含義
關(guān)于歸檔日記:Oracle要將填滿的在線日記文獻(xiàn)組歸檔時,則要建立歸檔日記
(archivedredolog)o其對數(shù)據(jù)庫備份和恢復(fù)有下列用處:
數(shù)據(jù)庫后備以及在線和歸檔日記文獻(xiàn),在操作系統(tǒng)和磁盤故障中可保證所有提交
的事物可被恢復(fù)。
在數(shù)據(jù)庫打開和正常系統(tǒng)使用下,假如歸檔日記是永久保存,在線后備可以進(jìn)行
和使用。
數(shù)據(jù)庫可運營在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式
數(shù)據(jù)庫在NOARCHIVELOG方式下使用時,不能進(jìn)行在線日記的歸檔,
數(shù)據(jù)庫在ARCHIVELOG方式下運營,可實行在線日記的歸檔
歸檔是歸檔當(dāng)前的聯(lián)機(jī)redo日記文獻(xiàn)。
SVRMGR>altersystemarchivelogcurrent;
數(shù)據(jù)庫只有運營在ARCHIVELOG模式下,并且可以進(jìn)行自動歸檔,才可以進(jìn)行聯(lián)
機(jī)備份。有了聯(lián)機(jī)備份才有也許進(jìn)行完全恢復(fù)。
3假如一個表在2023-08-0410:30:00被drop,在有完善的歸檔和備份的情況
下,如何恢復(fù)
9i新增的FLASHBACK應(yīng)當(dāng)可以;
Logminer應(yīng)當(dāng)可以找出DML。
有完善的歸檔和備份,先歸檔當(dāng)前數(shù)據(jù),然后可以先恢復(fù)到刪除的時間點之前,
把DROP的表導(dǎo)出來,然后再恢復(fù)到最后歸檔時間;
手工拷貝回所有備份的數(shù)據(jù)文獻(xiàn)
Sql)startupmount;
sql)alterdatabaserecoverautomaticuntiltime'2023-08-04:10:30:00(;
sql)alterdatabaseopenresetlogs;
4rman是什么,有何特點
RMAN(RecoveryManager)是DBA的一個重要工具,用于備份、還原和恢復(fù)oracle
數(shù)據(jù)庫,RMAN可以用來備份和恢復(fù)數(shù)據(jù)庫文獻(xiàn)、歸檔日記、控制文獻(xiàn)、系統(tǒng)參
數(shù)文獻(xiàn),也可以用來執(zhí)行完全或不完全的數(shù)據(jù)庫恢復(fù)。
RMAN有三種不同的用戶接口:COMMANDLINE方式、GUI方式(集成在OEM中的
備份管理器)、API方式(用于集成到第三方的備份軟件中)。
具有如下特點:
1)功能類似物理備份,但比物理備份強(qiáng)大N倍;
2)可以壓縮空塊;
3)可以在塊水平上實現(xiàn)增量;
4)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集;
5)備份與恢復(fù)的過程可以自動管理;
6)可以使用腳本(存在Recoverycatalog中)
7)可以做壞塊監(jiān)測
5standby的特點
備用數(shù)據(jù)庫(standbydatabase):ORACLE推出的一種高可用性(HIGHAVAILABLE)
數(shù)據(jù)庫方案,在主節(jié)點與備用節(jié)點間通過日記同步來保證數(shù)據(jù)的同步,備用節(jié)點
作為主節(jié)點的備份,可以實現(xiàn)快速切換與劫難性恢復(fù),從920開始,還開始支持
物理與邏輯備用服務(wù)器。
9i中的三種數(shù)據(jù)保護(hù)模式分別是:
1)、MAXIMIZEPROTECTION:最大數(shù)據(jù)保護(hù)與無數(shù)據(jù)分歧,LGWR將同時傳送到
備用節(jié)點,在主節(jié)點事務(wù)確認(rèn)之前,備用節(jié)點也必須完全收到日記數(shù)據(jù)。假如網(wǎng)
絡(luò)不好,引起LGWR不能傳送數(shù)據(jù),將引起嚴(yán)重的性能問題,導(dǎo)致主節(jié)點DOWN
機(jī)。
2),MAXIMIZEAVAILABILITY:無數(shù)據(jù)丟失模式,允許數(shù)據(jù)分歧,允許異步傳送。
正常情況下運營在最大保護(hù)模式,在主節(jié)點與備用節(jié)點的網(wǎng)絡(luò)斷開或連接不正常
時,自動切換到最大性能模式,主節(jié)點的操作還是可以繼續(xù)的。在網(wǎng)絡(luò)不好的情
況下有較大的性能影響。
3)、MAXIMIZEPERFORMANCE:這種模式應(yīng)當(dāng)可以說是從8i繼承過來的備用服務(wù)
器模式,異步傳送,無數(shù)據(jù)同步檢查,也許丟失數(shù)據(jù),但是能獲得主節(jié)點的最大
性能。9i在配置DATAGUARD的時候默認(rèn)就是MAXIMIZEPERFORMANCE
6對于一個規(guī)定恢復(fù)時間比較短的系統(tǒng)(數(shù)據(jù)庫50G,天天歸檔5G),你如何設(shè)計
備份策略
數(shù)據(jù)庫比較大邏輯備份沒什么必要,天天歸檔5G,每周三/周六自動歸檔10G,
每月RMAN歸檔全庫。應(yīng)當(dāng)有standbyo
rman/每月一號level0每周末/周三level1其它天天level2
四:系統(tǒng)管理類
1.對于一個存在系統(tǒng)性能的系統(tǒng),說出你的診斷解決思緒
1做statspack收集系統(tǒng)相關(guān)信息了解系統(tǒng)大體情況/擬定是否存在參數(shù)設(shè)立
不合適的地方/查看top5event/查看topsql等
〕查v$system_event/v$session_event/v$session_wait從v$system_event開
始,擬定需要什么資源(dbfilesequentialread)等,進(jìn)一步研究
v$session_event,擬定等待事件涉及的會話,從v$session_wait擬定具體的資
源爭用情況(pl-p3的值:file_id/block_id/blocks等)
〕通過v$sql/v$sqltext/v$sqlarea表擬定diskjreads、
(buffer_gets/executions)值較大的SQL
2.列舉幾種診斷10、CPU、性能狀況的方法
topuptimevmstatiostatstatspacksql_trace/tkprof
查v$system_event/v$session_event/v$session_wait
查v$sqlarea(disk_reads或buffer_gets/executions較大的SQL)
或者第三方的監(jiān)視工具,TOAD就不錯。
3.對statspack有何結(jié)識
結(jié)識不深。僅限了解。StapSpack是Oracle公司提供的一個收集數(shù)據(jù)庫運營性
能指標(biāo)的軟件包??梢宰鰯?shù)據(jù)庫健康檢查報告。
StapSpack是Oracle公司提供的一個收集數(shù)據(jù)庫運營性能指標(biāo)的軟件包,該軟
件包從8i起,在9i、10g都有顯著的增強(qiáng)
該軟件包的輔助表(存儲相關(guān)參數(shù)與收集的性能指標(biāo)的表)由最初的25個增長
到43個
收集級別參數(shù)由本來的3個(0、5、10)增長到5個(0、5、6、7、10)
通過度析收集的性能指標(biāo),數(shù)據(jù)庫管理員可以具體地了解數(shù)據(jù)庫目前的運營情
況,對數(shù)據(jù)庫實例、等待事件、SQL等進(jìn)行優(yōu)化調(diào)整
運用statspack收集的snapshot,可以記錄制作數(shù)據(jù)庫的各種性能指標(biāo)的記錄趨
勢圖表。
4.假如系統(tǒng)現(xiàn)在需要在一個很大的表上創(chuàng)建一個索引,你會考慮那些因素,如
何做以盡量減小相應(yīng)用的影響
可以先表分析一下,然后測試創(chuàng)建索引前后相應(yīng)用的性能影響;
需要考慮的是該索引列不經(jīng)常更新,不是有很多反復(fù)值的情況時,在大表中使用
索引特別有效.創(chuàng)建的索引可以跟數(shù)據(jù)表分不同表空間存儲。
在系統(tǒng)比較空閑時nologging選項(假如有dataguard則不可以使用nologging)
大的sort_ared_size或pga_aggregate_target較大
5.對raidlO和raid5有何結(jié)識
RAID10(或稱RAID1+0)與RAID0+1不同,它是用硬盤驅(qū)動器先組成RAID1
陣列,然后在RAID1陣列之間再組成RAID0陣列。
RAID10模式同RAID0+1模式同樣具有良好的數(shù)據(jù)傳輸性能,但卻比RAID0+1
具有更高的可靠性。RAID10陣列的實際容量為MXn/2,磁盤運用率為50%。
RAID10也需要至少4個硬盤驅(qū)動器構(gòu)成,因而價格昂貴。
RAID10的可靠性同RAID1同樣,但由于RAID10硬盤驅(qū)動器之間有數(shù)據(jù)分割,
因而數(shù)據(jù)傳輸性能優(yōu)良。
RAID5與RAID3很相似,不同之處在于RAID5的奇偶校驗信息也同數(shù)據(jù)同樣
被分割保存到所有的硬盤驅(qū)動器,而不是寫入一個指定的硬盤驅(qū)動器,從而消除
了單個奇偶校驗硬盤驅(qū)動器的瓶頸問題。RAID5磁盤陣列的性能比RAID3有所
提高,但仍然需要至少3塊硬盤驅(qū)動器。其實際容量為MX(nT),磁盤運用率
為(nT)/no
五:綜合隨意類
1.你最擅長的是oracle哪部分?
pl/sql及sql優(yōu)化
2.喜歡oracle嗎?喜歡上論壇嗎?或者偏好oracle的哪一部分?
喜歡。PL/SQL比較得心應(yīng)手。
3.隨意說說你覺得oracle最故意思的部分或者最困難的部分
我對數(shù)據(jù)庫的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗明顯局限性,自然覺得有些困難。
基于ORACLE的研究應(yīng)當(dāng)是個寬廣的領(lǐng)域,所以我覺得還是故意思的。
4.為什么要選擇做DBA呢?
我對數(shù)據(jù)庫的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗明顯局限性,重要是缺少環(huán)境和交流。
因此,算不上什么DBAo但是因此我更需要這樣的機(jī)會。
但是就整個ORACLE來說,一直從事與它相關(guān)的工作,感情還是頗深的。放棄可
惜。并且就技術(shù)自身而言我覺得自己還是有學(xué)習(xí)和創(chuàng)新的能力,它的諸如數(shù)據(jù)倉
庫,數(shù)據(jù)挖掘之類的領(lǐng)域也很廣。
六:DatabasesQuestions&Answers
1.WhataretwomethodsofretrievingSQL?
2.Whatcursortypedoyouusetoretrievemultiplerecordsets?
3.Whatactiondoyouhavetoperformbeforeretrievingdatafromthenext
resultsetofastoredprocedure?
Movethecursordownonerowfromitscurrentposition.AResultSetcursor
isinitiallypositionedbeforethefirstrow.Beforeyoucangettothe
firstrow,youwouldneedtoMovethecursordownbyonerow(Forex:
injavathefirstcalltonextmakesthefirstrowthecurrentrow;the
secondcallmakesthesecondrowthecurrentrow,andsoon).
4.WhatisthebasicformofaSQLstatementtoreaddataoutofatable?
SELECT*FROMtable_name;
5.Whatstructurecanyouhavethedatabasemaketospeeduptablereads?
Thequestionisnotcorrect.Whatstructurecanyouhavethedatabase
maketospeeduptablereads?”Itisnotclearwhatexactlytheterm
“structure”meansinthiscase.FollowtherulesofDBtuningwehave
to:
1)properlyuseindexes(differenttypesofindexes)
2)properlylocatedifferentDBobjectsacrossdifferenttablespaces,
filesandsoon.
3)Createaspecialspace(tablespace)tolocatesomeofthedatawith
specialdatatypes(forexampleCLOB,LOBand…)
6.Whatisa“join”?
Joinsmergethedataoftworelatedtablesintoasingleresultset,
presentingadenormalizedviewofthedata.
7.Whatisa“constraint”?
Aconstraintallowsyoutoapplysimplereferentialintegritychecks
toatable.Thereare5primarytypesofconstraintsthatarecurrently
supportedbySQLServer:
PRIMARY/UNIQUE-enforcesuniquenessofaparticulartablecolumn.
DEFAULT-specifiesadefaultvalueforacolumnincaseaninsert
operationdoesnotprovideone.
FOREIGNKEY-validatesthateveryvalueinacolumnexistsina
columnofanothertable.
CHECK-checksthateveryvaluestoredinacolumnisinsome
specifiedlist
NOTNULL-isaconstraintwhichdoesnotallowvaluesinthespecific
columntobenull.Andalsoitistheonlyconstraintwhichisnotatable
levelconstraint.
8.Whatisa“primarykey”?
PrimaryKeyisatypeofaconstraintenforcinguniquenessanddata
integrityforeachrowofatable.Allcolumnsparticipatinginaprimary
keyconstraintmustpossesstheNOTNULLproperty.
9.Whatisafunctionaldependency"?Howdoesitrelatetodatabase
tabledesign?
Whatfunctionaldependenceinthecontextofadatabasemeansisthat:
AssumethatatableexistsinthedatabasecalledTABLEwithacomposite
primarykey(A,B)andothernon-keyattributes(C,D,E).Functional
dependencyingeneral,wouldmeanthatanynon-keyattribute-CDor
Ebeingdependentontheprimarykey(AandB)inourtablehere.
Partialfunctionaldependency,ontheotherhand,isanother
corollaryoftheabove,whichstatesthatallnon-keyattributes-CD
orE-ifdependentonthesubsetoftheprimarykey(AandB)andnot
onitasawhole.
Example:
FullyFunctionalDependent:CDE->AB
PartialFunctionaldependency:C->A,DE->B
Hopethathelps!
10.Whatisa“trigger”?
Atriggerisadatabaseobjectdirectlyassociatedwithaparticulartable.
Itfireswheneveraspecificstatement/typeofstatementisissuedagainst
thattable.Thetypesofstatementsareinsert,update,deleteandquery
statements.Basically,triggerisasetofSQLstatementsthatexecute
inresponsetoadatamodification/retrievaleventonatable.
Otherthantabletriggerstherearealsoschemaanddatabasetriggers.
Thesecanbemadetofirewhennewobjectsarecreated,whenauserlogs
in,whenthedatabaseshutdownetc.Tableleveltriggerscanbeclassified
intorowandstatementleveltriggersandthosecanbefurtherbrokendown
intobeforeandaftertriggers.Beforetriggerscanmodifydata.
11.Whatis“indexcoveringnofaquery?
Anonclusteredindexthatincludes(orcovers)allcolumnsusedinaquery
iscalledacoveringindex.WhenSQLservercanuseanonclusteredindex
toresolvethequery,itwillprefertoscantheindexratherthanthe
table,whichtypicallytakesfewerdatapages.Ifyourqueryusesonly
columnsincludedintheindex,thenSQLservermayscanthisindexto
producethedesiredoutput.
12.WhatisaSQLview?
ViewisaprecompliedSQLquerywhichisusedtoselectdatafromoneor
moretables.Aviewislikeatablebutitdoesn,tphysicallytakeany
space.Viewisagoodwaytopresentdatainaparticularformatifyou
usethatqueryquiteoften.
Viewcanalsobeusedtorestrictusersfromaccessingthetablesdirectly.
Aviewotherwiseknownasavirtualtableisamerewindowoverthebase
tablesinthedatabase.Thishelpsusgainacoupleofadvantages:
1)Inherentsecurityexposingonlythedatathatisneededtobeshown
totheenduser
2)Viewsareupdateablebasedoncertainconditions.Forexample,updates
canonlybedirectedtooneunderlyingtableoftheview.After
modificationiftherowsorcolumnsdon'tcomplywiththeconditionsthat
theviewwascreatedwith,thoserowsdisappearfromtheview.Youcould
usetheCHECKOPTIONwiththeviewdefinition,tomakesurethatany
updatestomaketherowsinvalidwillnotbepermittedtorun.
3)Viewsarenotmaterialized(givenaphysicalstructure)inadatabase.
Eachtimeaviewisqueriedthedefinitionstoredinthedatabaseisrun
againstthebasetablestoretrievethedata.Oneexceptiontothisis
tocreateaclusteredindexontheviewtomakeitpersistentinthe
database.Onceyoucreateaclusteredindexontheview,youcancreate
anynumberofnon-clusteredindexesontheview.
13.存儲過程和函數(shù)的區(qū)別
存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務(wù),
用戶可以調(diào)用存儲過程,而函數(shù)通常是數(shù)據(jù)庫已定義的方法,它接受參數(shù)并返回
某種類型的值并且不涉及特定用戶表。
14.事務(wù)是什么?
事務(wù)是作為一個邏輯單元執(zhí)行的一系列操作,一個邏輯工作單元必須有四個屬
性,稱為ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才干成為一
個事務(wù):
原子性:事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都
不執(zhí)行。
一致性:事務(wù)在完畢時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,
所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時,所
有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如B樹索引或雙向鏈表)都必須是對的的。
隔離性:由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)
查看數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另
一事務(wù)修改它之后的狀態(tài),事務(wù)不會查看中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,由
于它可以重新裝載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時的狀態(tài)與原
始事務(wù)執(zhí)行的狀態(tài)相同。
持久性:事務(wù)完畢之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故
障也將一直保持。
15.游標(biāo)的作用?如何知道游標(biāo)已經(jīng)到了最后?
游標(biāo)用于定位結(jié)果集的行,通過判斷全局變量@@FETCH_STATUS可以判斷是否到
了最后,通常此變量不等于0表達(dá)犯錯或到了最后。
16.觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語句級觸發(fā)和行級
觸發(fā)有何區(qū)別。
事前觸發(fā)器運營于觸發(fā)事件發(fā)生之前,而事后觸發(fā)器運營于觸發(fā)事件發(fā)生之后。
通常事前觸發(fā)器可以獲取事件之前和新的字段值。
語句級觸發(fā)器可以在語句執(zhí)行前或后執(zhí)行,而行級觸發(fā)在觸發(fā)器所影響的每一行
觸發(fā)一次。
17.SQLServer常用測試題(1)
問題描述:
為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個表:
S(S#,SN,SD,SA)S#,SN,SD,SA分別代表學(xué)號、學(xué)員姓名、所屬單位、學(xué)員年齡
C(C#,CN)C#,CN分別代表課程編號、課程名稱
SC(S#,C#,G)S#,C#,G分別代表學(xué)號、所選修的課程編號、學(xué)習(xí)成績
1.使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程名稱為‘稅收基礎(chǔ)’的學(xué)員學(xué)號和姓名
-實現(xiàn)代碼:
SELECTSN,SDFROMS
WHERE[S#]IN(SELECT[S#]FROMC,SCWHEREC.[C#]=SC.[C#]ANDCN=N'稅
收基礎(chǔ)')
2.使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程編號為‘C2'的學(xué)員姓名和所屬單位
-實現(xiàn)代碼:
SELECTS.SN,S.SDFROMS,SC
WHERES.[S#]=SC.[S#]ANDSC.[C#]='C2'
3.使用標(biāo)準(zhǔn)SQL嵌套語句查詢不選修課程編號為‘C5’的學(xué)員姓名和所屬單位
-實現(xiàn)代碼:
SELECTSN,SDFROMS
WHERE[S#]NOTIN(SELECT[S#]FROMSCWHERE[C#]=‘C5')
4.使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修所有課程的學(xué)員姓名和所屬單位
-實現(xiàn)代碼:
SELECTSN,SDFROMS
WHERE[S#]IN(SELECT[S#]FROMSCRIGHTJOIN
CONSC.[C#]=C.[C#]GROUPBY[S#]
HAVINGCOUNT(*)=COUNT([S#]))
5.查詢選修了課程的學(xué)員人數(shù)
-實現(xiàn)代碼:
SELECT學(xué)員人數(shù)=COUNT(DISTINCT[Sit])FROMSC
6.查詢選修課程超過5門的學(xué)員學(xué)號和所屬單位
-實現(xiàn)代碼:
SELECTSN,SDFROMS
WHERE[S#]IN(
SELECT[S#]FROMSC
GROUPBY[S#]
HAVINGCOUNT(DISTINCT[C#])>5)
18.SQLServer常用測試題(2)
問題描述:
已知關(guān)系模式:
S(SNO,SNAME)學(xué)生關(guān)系。SNO為學(xué)號,SNAME為姓名
C(CNO,CNAME,CTEACHER)課程關(guān)系。CNO為課程號,CNAME為課程名,CTEACHER
為任課教師
SC(SNO,CNO,SCGRADE)選課關(guān)系。SCGRADE為成績
1.找出沒有選修過“李明”老師講授課程的所有學(xué)生姓名
-實現(xiàn)代碼:
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,CWHERESC.CNO=C.CNOANDCNAME='李明'AND
SC.SNO=S.SNO)
2.列出有二門以上(含兩門)不及格課程的學(xué)生姓名及其平均成績
-實現(xiàn)代碼:
SELECTS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROMS,SC,(
SELECTSNOFROMSCWHERESCGRADE<60GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2)AWHERES.SNO=A.SNOANDSC.SNO=A.SNO
GROUPBYS.SNO,S.SNAME
3.列出既學(xué)過“1”號課程,又學(xué)過“2”號課程的所有學(xué)生姓名
-實現(xiàn)代碼:
SELECTS.SNO,S.SNAME
FROMS,(SELECTSC.SNOFROMSC,C
WHERESC.CNO=C.CNOANDC.CNAMEIN('I'2,)
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)=2
)SCWHERES.SNO=SC.SNO
4.列出“1”號課成績比“2”號同學(xué)該門課成績高的所有學(xué)生的學(xué)號
-實現(xiàn)代碼:
SELECTS.SNO,S.SNAME
FROMS,(
SELECTSCI.SNO
FROMSCSCl.CCl,SCSC2,CC2
WHERESCI.CNO=C1.CNOANDCl.NAME='1'
ANDSC2.CN0=C2.CNOANDC2.NAME=,2'
ANDSCI.SCGRADE>SC2.SCGRADE
)SCWHERES.SNO=SC.SNO
5.列出“1”號課成績比“2”號課成績高的所有學(xué)生的學(xué)號及其“1”號課和
“2”號課的成績
-實現(xiàn)代碼:
SELECTS.SNO,S.SNAME,SC.[1號課成績],SC.[2號課成績]
FROMS,(
SELECTSCI.SNO,[1號課成績]=SC1.SCGRADE,[2號課成績]=SC2.SCGRADE
FROMSCSCl.CCl,SCSC2,CC2
WHERESCI.CNO=C1.CNOANDCl.NAME='1'
ANDSC2.CN0=C2.CNOANDC2.NAME=,2'
ANDSCI.SCGRADE>SC2.SCGRADE
)SCWHERES.SNO=SC.SNO
19.Question1:CanyouuseabatchSQLorstoreproceduretocalculating
theNumberofDaysinaMonth
找出當(dāng)月的天數(shù)
select
datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate())as
varchar)+cast(month(getdate0)asvarchar)+,-01'asdatetime))))
20.Question2:CanyouuseaSQLstatementtocalculatingit!
HowcanIprinta10to20"forbooksthatsellforbetween$10and
$20,“unknown”forbookswhosepriceisnull,and“other“forallother
prices?
selectbookid,bookname,price=casewhenpriceisnullthen'unknown'
whenpricebetween10and20then'10to20'elsepriceend
frombooks
21.Questions:CanyouuseaSQLstatementtofindingduplicatevalues!
HowcanIfindauthorswiththesamelastname?
Youcanusethetableauthorsindatatabasepubs.Iwanttogettheresult
asbelow:
Output:
au_lnamenumber_dups
Ringer2
(1row(s)affected)
Answer3
sele
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級道德與法治上冊 第一單元 3《假期安全真重要》教案4 浙教版
- 八年級英語下冊 Unit 1 What's the matter教案設(shè)計(pdf)(新版)人教新目標(biāo)版
- 2024-2025學(xué)年新教材高中數(shù)學(xué) 第1章 空間向量與立體幾何 1.4 空間向量的應(yīng)用 1.4.1 第2課時 空間向量與垂直關(guān)系教案 新人教A版選擇性必修第一冊
- 八年級政治上冊 第四單元 9.3 平等尊重你我他教案 新人教版
- 2024-2025學(xué)年高中物理 第7章 分子動理論 4 溫度和溫標(biāo)教案1 新人教版選修3-3
- 英語 制作課件
- 租地到期收購地面上的房屋合同(2篇)
- 造船廠檢修勞務(wù)派遣合同(2篇)
- 托爾斯泰課件完美
- 地震說課稿課件
- 實驗室審核檢查表(參照模板)
- 《養(yǎng)成良好習(xí)慣-鑄就精彩人生》-主題班會
- 三年級中華優(yōu)秀傳統(tǒng)文化教案
- (新版教材)教科版一年級上冊科學(xué)全冊優(yōu)秀教學(xué)課件
- 人教版九年級上冊 初三 英語Unit8SectionA1a-1c課件
- 教師網(wǎng)絡(luò)培訓(xùn)簽到表
- 《大學(xué)日語》第一冊 第8課
- 2022年《內(nèi)蒙古自治區(qū)建設(shè)工程費用定額》取費說明
- 大學(xué)語文-魯迅風(fēng)波賞析-課件
- 設(shè)計概論第五章-設(shè)計的哲學(xué)-PPT課件(PPT 111頁)
- 寧波市建設(shè)工程資料統(tǒng)一用表(2022版)1 通用分冊
評論
0/150
提交評論