版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2. 存儲過程的優(yōu)缺點是什么?優(yōu)點:1. 由于應(yīng)用程序隨著時間推移會不斷更改,增刪功能,T SQL過程代碼會變得更復雜,StoredProcedure 為封裝此代碼提供了一個替換位置。2. 執(zhí)行計劃(存儲過程在首次運行時將被編譯,這將產(chǎn)生一個執(zhí)行計劃 實際上是 Microsoft SQL Server 為在存儲過程中獲取由 T-SQL 指定的結(jié)果而必須采取的步驟的記 錄。)緩存改善性能。 . 但 sql server 新版本,執(zhí)行計劃已針對所有 T-SQL 批處理進行了緩存,而不管它們 是否在存儲過程中,所以沒比較優(yōu)勢了。3. 存儲過程可以用于降低網(wǎng)絡(luò)流量,存儲過程代碼直接存儲于數(shù)據(jù)庫中,所以
2、不會產(chǎn)生大量 T-sql 語句的代碼流量。4. 使用存儲過程使您能夠增強對執(zhí)行計劃的重復使用, 由此可以通過使用遠程過程調(diào)用 (RPC) 處理服務(wù)器上的存儲過程而提高性能。 RPC 封裝參數(shù)和調(diào)用服務(wù)器端過程的方式使引擎能夠 輕松地找到匹配的執(zhí)行計劃,并只需插入更新的參數(shù)值。5. 可維護性高, 更新存儲過程通常比更改、 測試以及重新部署程序集需要較少的時間和精力。6. 代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置。7. 更好的版本控制,通過使用 Microsoft Visual SourceSafe或某個其他源代碼控制工具,您可以輕松地恢復到或引用舊版本的存儲過程。8. 增強安全性
3、:a、通過向用戶授予對存儲過程 (而不是基于表) 的訪問權(quán)限, 它們可以提供對特定數(shù)據(jù)的訪 問;b、提高代碼安全,防止 SQL 注入(但未徹底解決,例如,將數(shù)據(jù)操作語言DML,附加到輸入?yún)?shù));c、SqlParameter 類指定存儲過程參數(shù)的數(shù)據(jù)類型,作為深層次防御性策略的一部分,可以 驗證用戶提供的值類型(但也不是萬無一失,還是應(yīng)該傳遞至數(shù)據(jù)庫前得到附加驗證) 。缺點:1. 如果更改范圍大到需要對輸入存儲過程的參數(shù)進行更改,或者要更改由其返回的數(shù)據(jù),則 您仍需要更新程序集中的代碼以添加參數(shù)、更新 GetValue() 調(diào)用,等等,這時候估計比較 繁瑣了。2. 可移植性差由于存儲過程將應(yīng)用程
4、序綁定到 SQL Server ,因此使用存儲過程封裝業(yè)務(wù)邏輯將限制應(yīng)用程 序的可移植性。如果應(yīng)用程序的可移植性在您的環(huán)境中非常重要,則將業(yè)務(wù)邏輯封裝在不特定于 RDBMS 的中間層中可能是一個更佳的選擇。5. 說一下 mysql, oracle 等常見數(shù)據(jù)庫的分頁實現(xiàn)方案?1.Oracle:select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum = min2.SQL Server:select top pagesize * from tablename where id not in
5、 (select top pagesize*(page-1) idfrom tablename order by id) order by id3. MySQLselect * from tablename limit position, counter4. DB2select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max6. 第一范式( 1NF)、第二范式( 2NF)和第三范式( 3NF)之間的區(qū)別是什么? 構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這
6、種規(guī)則就是范式。范式是符合某一種 級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求,即滿足不同的范式。目 前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式( 2NF)、第三范式( 3NF)、第四范式( 4NF)、第五范式( 5NF)和第六范式( 6NF)。滿足最低要求的范式是第一范式( 1NF)。在第 一范式的基礎(chǔ)上進一步滿足更多要求的稱為第二范式( 2NF),其余范式以次類推。 一般說來,數(shù)據(jù)庫只需滿足第三范式 ( 3NF)就行了。下面我們舉例介紹第一范式 (1NF)、第二范式 ( 2NF) 和第三范式( 3NF)。3.4.1 第一范式( 1NF)在任何一個關(guān)系數(shù)據(jù)庫中, 第一
7、范式 ( 1NF)是對關(guān)系模式的基本要求, 不滿足第一范式 (1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。所謂第一范式( 1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不 能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現(xiàn)重復的屬 性,就可能需要定義一個新的實體,新的實體由重復的屬性構(gòu)成,新實體與原實體之間為一 對多關(guān)系。在第一范式( 1NF)中表的每一行只包含一個實例的信息。例如,對于圖3-2 中的員工信息表,不能將員工信息都放在一列中顯示,也不能將其中的兩列或多列在一列中顯 示;員工信息表的每一行只表示一個員工的信息,一個員工的信息在表中只出現(xiàn)一次。簡而 言之,
8、第一范式就是無重復的列。3.4.2 第二范式( 2NF)第二范式( 2NF)是在第一范式( 1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式 ( 1NF)。第二范式 ( 2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一 地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識。如 圖 3-2 員工信息表中加上了員工編號( emp_id )列,因為每個員工的員工編號是惟一的,因 此每個員工可以被惟一區(qū)分。這個惟一屬性列被稱為主關(guān)鍵字或主鍵、主碼。第二范式( 2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅 依賴主關(guān)鍵字一部分的屬性,如果存在,
9、那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來 形成一個新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一 個列,以存儲各個實例的惟一標識。簡而言之,第二范式就是非主屬性非部分依賴于主關(guān)鍵 字。3.4.3 第三范式( 3NF)滿足第三范式( 3NF)必須先滿足第二范式( 2NF)。簡而言之,第三范式( 3NF)要求一 個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。例如,存在一個部門信息表, 其中每個部門有部門編號( dept_id )、部門名稱、部門簡介等信息。那么在圖 3-2 的員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關(guān)的信息再加入 員工信
10、息表中。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它,否則就會有大量的數(shù)據(jù)冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。所謂范式就是符合某一種級別的關(guān)系模式的集合。通過分解把屬于低級范式的關(guān)系模式轉(zhuǎn)換 為幾個屬于高級范式的關(guān)系模式的集合。這一過程稱為規(guī)范化。1 、 第一范式( 1NF):一個關(guān)系模式 R 的所有屬性都是不可分的基本數(shù)據(jù)項。2 、 第二范式( 2NF):關(guān)系模式 R 屬于第一范式,且每個非主屬性都完全函數(shù)依賴于鍵 碼。3 、 第三范式 ( 3NF):關(guān)系模式 R 屬于第一范式, 且每個非主屬性都不偉遞領(lǐng)帶于鍵碼。4 、 BC 范式( BCNF):關(guān)系模式 R
11、 屬于第一范式,且每個屬性都不傳遞依賴于鍵碼。武漢英思工程科技有限公司 ORACLE面試測試題目1解釋 FUNCTION, PROCEDUR和E PACKAGE區(qū)別答: function 和 procedure 是 PL/SQL 代碼的集合,通常為了完成一個任務(wù)。 procedure 不 需要返回任何值而 function 將返回一個值在另一方面, Package 是為了完成一個商業(yè)功能的 一組 function 和 procedure 的集合。2 取某個序列的當前值的 PL/SQL 語句怎么寫?答: SELECT 序列名 .CURRVAL FROM DUA;L3說明 ORACLE數(shù)據(jù)庫實例與
12、 ORACLE用戶的關(guān)系?答:實例可以包含多個用戶,一個用戶只能在一個實例下4 創(chuàng)建數(shù)據(jù)庫時,自動建立的 tablespace 名稱?答: SYSTEM tablespace5創(chuàng)建用戶時,需要賦予新用戶什么權(quán)限才能使它連上數(shù)據(jù)庫?答:CONNECT6 答:IMPORT 和 SQL*LOADER這 2 個工具的不同點? 這兩個 ORACLE工具都是用來將數(shù)據(jù)導入數(shù)據(jù)庫的。區(qū)別是: IMPORT工具只能處理由另一個 ORACLE工具 EXPORT生成的數(shù)據(jù)。而 SQL*LOADER可 以導入不同的 ASCII 格式的數(shù)據(jù)源。7解釋冷備份和熱備份的不同點以及各自的優(yōu)點?答:熱備份針對歸檔模式的數(shù)據(jù)庫
13、,在數(shù)據(jù)庫仍舊處于工作狀態(tài)時進行備份。而冷備份指在 數(shù)據(jù)庫關(guān)閉后,進行備份,適用于所有模式的數(shù)據(jù)庫。熱備份的優(yōu)點在于當備份時,數(shù)據(jù)庫 仍舊可以被使用并且可以將數(shù)據(jù)庫恢復到任意一個時間點。冷備份的優(yōu)點在于它的備份和恢 復操作相當簡單, 并且由于冷備份的數(shù)據(jù)庫可以工作在非歸檔模式下, 數(shù)據(jù)庫性能會比歸檔模式稍好。(因為不必將 archive log 寫入硬盤)8比較 truncate 和 delete 命令?答:兩者都可以用來刪除表中所有的記錄。區(qū)別在于:truncate 是 DDL( data defining處理事務(wù)回滾操作)而language 數(shù)據(jù)定義語言) ,它移動 HWK,不需要 rol
14、lback segmentDelete 是 DML( data manufacturing language 數(shù)據(jù)操作語言)操作,需要 rollback segment處理事務(wù)回滾操作)且花費較長時間。9給出數(shù)據(jù)的相關(guān)約束類型?答:主鍵約束,外鍵約束,非空約束,唯一約束,檢查約束。10說明索引的類型與作用?答:索引類型上分為聚集索引,非聚集索引其作用是加快查詢速度。11解釋歸檔和非歸檔模式之間的不同和它們各自的優(yōu)缺點 答:歸檔模式是指你可以備份所有的數(shù)據(jù)庫 transactions 并恢復到任意一個時間點。非歸 檔模式則相反,不能恢復到任意一個時間點。但是非歸檔模式可以帶來數(shù)據(jù)庫性能上的少許
15、提高。12解釋 $ORACLE_HOM和E$ORACLE_BAS的E 區(qū)別?答: ORACLE_BAS是E oracle 的根目錄, ORACLE_HOM是E oracle 產(chǎn)品的目錄。13獲取某個字符字段的最后 3 個字符的函數(shù)是什么? 答: select substr ( 字段 ,(length( 字段 )-3) from 表14 答:取當前系統(tǒng)時間點日期(不包括年月)的SQL寫法是怎樣的?Select substr (to_char(sysdate, YYYYMMDDh24hh:MM:SS),5) from dual;15 答:返回大于等于 N的最小整數(shù)值? select ceil(N)
16、 from dual;16將根據(jù)字符查詢轉(zhuǎn)換后結(jié)果,規(guī)則為: A轉(zhuǎn)換為男 ,B轉(zhuǎn)換為女 ,其他字符轉(zhuǎn)換為未知 ,請用一個 SQL語句寫出。答: select decode( 字符,A,男 ,B,女 ,未知 ) from dual;17如何搜索出前 N條記錄?答: select * from表 where Rownum = N;18如何搜索出第 N M條記錄?答: select * from表 where Rownum = MMinusselect * from 表 where Rownum = N;19有一個數(shù)據(jù)表( TEST),字段如下:ID numberPARENT_ID numberNA
17、ME Varchar(20)請使用 PL/SQL 來按父子層次關(guān)系查詢出該表的所有數(shù)據(jù)答: Select * from test a, test b Where a.parent_id = b.id;20怎樣用 SQL語句實現(xiàn)查找一列中的第 N大值?答: select * from (select * from 表 order by 列名 Desc) where Rownum = N Minusselect * from (select * from 表 order by 列名 Desc) where Rownum = N-1;騰訊公司的一個 sql 題 小小 +霸霸 +王王=小霸王 小=?,
18、霸=?, 王=?用 sql 求證參考答案 : declare data int,i int,j int,l int set data=100while (data insert into s_dept(id, name, region_id) values (s_dept_id.nextval, finance , 2);1 row created.只有運行了序列號的名稱 . nextval 后序列號的名稱 . currval 才有效才有值 .Oracle 里面常用的數(shù)據(jù)字典有哪些?Dictionary 存放所有數(shù)據(jù)表,視圖,同義詞名稱和解釋Dict_columns 數(shù)據(jù)字典里字段名稱的和解釋
19、空閑表空間Dba_users 用戶 Dba_tablespaces 表空間Dba_data_files 數(shù)據(jù)庫的文件 Dba_free_spaceDba_rollback_segs 回滾段User_objects 數(shù)據(jù)對象 User_constraints 約束條件User_sequences 序列號User_views視圖User_indexes索引 User_synonyms同義詞Session_roles用戶的角色 User_role_privs用戶的角色權(quán)限用戶的表級權(quán)限V$session 實時用戶情況 V$sysstat實時系統(tǒng)統(tǒng)計V$sesstat 實時用戶統(tǒng)計 V$sgastat
20、實時 SGA使用V$locked_object 實時鎖 V$controlfile控制文件User_sys_privs用戶的系統(tǒng)權(quán)限 User_tab_privsV$logfile 日志文件 V$parameter 參數(shù)文件1. Oracle 安裝完成后的初始口令 ?internal/oraclesys/change_on_installsystem/manager scott/tiger sysman/oem_temp2. ORACLE9IAS WEB CACHE的初始默認用戶和密碼?administrator/administrator3. oracle 8.0.5怎么創(chuàng)建數(shù)據(jù)庫 ?用 o
21、rainst 。如果有 motif 界面,可以用 orainst /m4. oracle 8.1.7怎么創(chuàng)建數(shù)據(jù)庫 ?dbassist5. oracle 9i怎么創(chuàng)建數(shù)據(jù)庫 ?dbca6. oracle 中的裸設(shè)備指的是什么 ?裸設(shè)備就是繞過文件系統(tǒng)直接訪問的儲存空間7. oracle 如何區(qū)分 64-bit/32bit 版本?$ sqlplus / AS SYSDBASQL*Plus: Release 9.0.1.0.0 Production on Mon Jul 14 17:01:09 2003 (c) Copyright 2001 Oracle Corporation. All righ
22、ts reserved.Connected to:Oracle9i Enterprise Edition Release 9.0.1.0.0 ProductionWith the Partitioning optionJServer Release 9.0.1.0.0 ProductionSQL select * from v$version;BANNEROracle9i Enterprise Edition Release 9.0.1.0.0 ProductionPL/SQL Release 9.0.1.0.0 ProductionCORE 9.0.1.0.0 ProductionTNS f
23、or Solaris: Version 9.0.1.0.0 ProductionNLSRTL Version 9.0.1.0.0 ProductionSQL8. SVRMGR什么意思?svrmgrl , Server Manager.9i 下沒有,已經(jīng)改為用 SQLPLUS了sqlplus /nolog變?yōu)闅w檔日志型的9. 請問如何分辨某個用戶是從哪臺機器登陸ORACLE的 ?SELECT machine , terminal FROM V$SESSION;10. 用什么語句查詢字段呢?desc table_name 可以查詢表的結(jié)構(gòu)select field_name, from 可以查詢字段
24、的值select * from all_tables where table_name like %select * from all_tab_columns where table_name= ? 11. 怎樣得到觸發(fā)器、過程、函數(shù)的創(chuàng)建腳本?desc user_sourceuser_triggers12. 怎樣計算一個表占用的空間的大???select owner,table_name,NUM_ROWS,BLOCKS*AAA/1024/1024 “Size M ”,EMPTY_BLOCKS,LAST_ANALYZEDfrom dba_tableswhere table_name= XXX;Here: AAA is the value of db_block_size ;XXX is the table name you want to check14. 如何查看系統(tǒng)被鎖的事務(wù)時間?select * from v$locked_object ;15. 如何以 archivelog 的方式運行 oracle 。init.oralog_archive_start = trueRESTART DATABASE16. 怎么獲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《建設(shè)工程施工合同糾紛事實查明的思路與方法》理解與適用
- 2025年銑刨料運輸、破碎及再生利用綜合服務(wù)合同3篇
- 2024年心理咨詢師之心理咨詢師基礎(chǔ)知識題庫(歷年真題)
- 2025年度陶瓷藝術(shù)品瓷石采購與銷售合同2篇
- 2025年度樁基施工竣工驗收合同范本4篇
- 《基金基礎(chǔ)知識》課件
- 2025年度個人租賃房屋租賃合同租賃用途變更服務(wù)協(xié)議4篇
- 二零二五年度美容產(chǎn)品研發(fā)與技術(shù)共享合同4篇
- 2025年酒糟銷售與科技創(chuàng)新合作合同
- 2025年度數(shù)據(jù)中心建設(shè)與運營承包經(jīng)營合同模板4篇
- 2024版塑料購銷合同范本買賣
- 【高一上】【期末話收獲 家校話未來】期末家長會
- JJF 2184-2025電子計價秤型式評價大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 有毒有害氣體崗位操作規(guī)程(3篇)
- 兒童常見呼吸系統(tǒng)疾病免疫調(diào)節(jié)劑合理使用專家共識2024(全文)
- 2025屆山東省德州市物理高三第一學期期末調(diào)研模擬試題含解析
- 《華潤集團全面預算管理案例研究》
- 2024-2025高考英語全國卷分類匯編之完型填空(含答案及解析)
- 二年級下冊加減混合豎式練習360題附答案
- 蘇教版五年級數(shù)學下冊解方程五種類型50題
評論
0/150
提交評論