資料庫經典面試題
『壹』 ORACLE資料庫面試題
1.
update t
set logdate=to_date('2003-01-01','yyyy-mm-dd')
where logdate=to_date('2001-02-11','yyyy-mm-dd');
2.
select *
from t
where name in (select name from t group by name having coung(*)>1)
order by name;--沒說清楚,到底是升序還是降序
3.
select ID,NAME,ADDRESS,PHONE,LOGDATE
from
(
select t.*,row_number() over(partition by name order by name) rn
from t
)
where rn = 1;
4.
update t
set (address,phone)=
(select address,phone from e where e.name=t.name);
5.
select *
from t
where rownum <=5
minus
select *
from t
where rownum <=2;
也沒什麼特別的地方,有些題目用oracle特有的函數去做會比較簡單,像在第三題中用到的oracle的分析函數,以及在第一題中用到的oracle的to_char()函數。
這幾個題目主要是看你能不能使用oracle的函數去處理
『貳』 sql資料庫面試題 急急急
a)select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先刪除Sale表的外鍵PNO,再刪除gds表。
c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。
『叄』 面試常問的資料庫問題及答案
目前在職場中很難找到非常合格的資料庫開發人員。有人說:「SQL開發是一門語言,它很容易學,但是很難掌握。」
在面試應聘的SQL Server資料庫開發人員時,我運用了一套標準的基準技術問題。下面這些問題是我覺得能夠真正有助於淘汰不合格應聘者的問題。它們按照從易到難的順序排列。當你問到關於主鍵和外鍵的問題時,後面的問題都十分有難度,因為答案可能會更難解釋和說明,尤其是在面試的情形下。
你能向我簡要敘述一下SQL Server 2000中使用的一些資料庫對象嗎?
你希望聽到的答案包括這樣一些對象:表格、視圖、用戶定義的函數,以及存儲過程;如果他們還能夠提到像觸發器這樣的對象就更好了。如果應聘者不能回答這個基本的問題,那麼這不是一個好兆頭。
NULL是什麼意思?
NULL(空)這個值是資料庫世界裡一個非常難纏的東西,所以有不少應聘者會在這個問題上跌跟頭您也不要覺得意外。
NULL這個值表示UNKNOWN(未知):它不表示「」(空字元串)。假設您的SQL Server資料庫里有ANSI_NULLS,當然在默認情況下會有,對NULL這個值的任何比較都會生產一個NULL值。您不能把任何值與一個 UNKNOWN值進行比較,並在邏輯上希望獲得一個答案。您必須使用IS NULL操作符。
什麼是索引?SQL Server 2000里有什麼類型的索引?
任何有經驗的資料庫開發人員都應該能夠很輕易地回答這個問題。一些經驗不太多的開發人員能夠回答這個問題,但是有些地方會說不清楚。
簡單地說,索引是一個數據結構,用來快速訪問資料庫表格或者視圖里的數據。在SQL Server里,它們有兩種形式:聚集索引和非聚集索引。聚集索引在索引的葉級保存數據。這意味著不論聚集索引里有表格的哪個(或哪些)欄位,這些欄位都會按順序被保存在表格。由於存在這種排序,所以每個表格只會有一個聚集索引。非聚集索引在索引的葉級有一個行標識符。這個行標識符是一個指向磁碟上數據的指針。它允許每個表格有多個非聚集索引。
什麼是主鍵?什麼是外鍵?
主鍵是表格里的(一個或多個)欄位,只用來定義表格里的行;主鍵里的值總是唯一的。外鍵是一個用來建立兩個表格之間關系的約束。這種關系一般都涉及一個表格里的主鍵欄位與另外一個表格(盡管可能是同一個表格)里的一系列相連的欄位。那麼這些相連的欄位就是外鍵。
什麼是觸發器?SQL Server 2000有什麼不同類型的觸發器?
讓未來的資料庫開發人員知道可用的觸發器類型以及如何實現它們是非常有益的
觸發器是一種專用類型的存儲過程,它被捆綁到SQL Server 2000的表格或者視圖上。在SQL Server 2000里,有INSTEAD-OF和AFTER兩種觸發器。INSTEAD-OF觸發器是替代數據操控語言(Data Manipulation Language,DML)語句對表格執行語句的存儲過程。例如,如果我有一個用於TableA的INSTEAD-OF-UPDATE觸發器,同時對這個表格執行一個更新語句,那麼INSTEAD-OF-UPDATE觸發器里的代碼會執行,而不是我執行的更新語句則不會執行操作。
AFTER觸發器要在DML語句在資料庫里使用之後才執行。這些類型的觸發器對於監視發生在資料庫表格里的數據變化十分好用。
您如何確一個帶有名為Fld1欄位的TableB表格里只具有Fld1欄位里的那些值,而這些值同時在名為TableA的表格的Fld1欄位里?
這個與關系相關的問題有兩個可能的答案。第一個答案(而且是您希望聽到的答案)是使用外鍵限制。外鍵限制用來維護引用的完整性。它被用來確保表格里的欄位只保存有已經在不同的(或者相同的)表格里的另一個欄位里定義了的值。這個欄位就是候選鍵(通常是另外一個表格的主鍵)。
另外一種答案是觸發器。觸發器可以被用來保證以另外一種方式實現與限制相同的作用,但是它非常難設置與維護,而且性能一般都很糟糕。由於這個原因,微軟建議開發人員使用外鍵限制而不是觸發器來維護引用的完整性。
對一個投入使用的在線事務處理表格有過多索引需要有什麼樣的性能考慮?
你正在尋找進行與數據操控有關的應聘人員。對一個表格的索引越多,資料庫引擎用來更新、插入或者刪除數據所需要的時間就越多,因為在數據操控發生的時候索引也必須要維護。
你可以用什麼來確保表格里的欄位只接受特定范圍里的值?
這個問題可以用多種方式來回答,但是只有一個答案是「好」答案。您希望聽到的回答是Check限制,它在資料庫表格里被定義,用來限制輸入該列的值。
觸發器也可以被用來限制資料庫表格里的欄位能夠接受的值,但是這種辦法要求觸發器在表格里被定義,這可能會在某些情況下影響到性能。因此,微軟建議使用Check限制而不是其他的方式來限制域的完整性。
<b?返回參數和output參數之間的區別是什麼?>如果應聘者能夠正確地回答這個問題,那麼他的機會就非常大了,因為這表明他們具有使用存儲過程的經驗。
返回參數總是由存儲過程返回,它用來表示存儲過程是成功還是失敗。返回參數總是INT數據類型。
OUTPUT參數明確要求由開發人員來指定,它可以返回其他類型的數據,例如字元型和數值型的值。(可以用作輸出參數的數據類型是有一些限制的。)您可以在一個存儲過程里使用多個OUTPUT參數,而您只能夠使用一個返回參數。
什麼是相關子查詢?如何使用這些查詢?
經驗更加豐富的開發人員將能夠准確地描述這種類型的查詢。
相關子查詢是一種包含子查詢的特殊類型的查詢。查詢里包含的子查詢會真正請求外部查詢的值,從而形成一個類似於循環的狀況。</b?返回參數和output參數之間的區別是什麼?>
『肆』 一道關於資料庫索引的面試題
什麼資料庫?
nal
是什麼函數?
1,不等於基本不會用索引
但是不確定當0基數比較大
,而結果集基數比較小的情況下
有沒有可能走索引
2,等於的話如果有索引
,而且結果集比較小的話應該會用
,結果集大道一定程度的話
不會用
3.like的話不知道NAL是個什麼東西
,
如果是NVL的話
like後面如果被替換成了%
,就不會用索引
如果name有值
有可能用索引
同樣和結果集大小會有關系
4.如果語法通的話
應該是可以
,
沒這么寫過,
同樣考慮結果集
5
同樣不理解NAL
6
看結果集
結果集小有可能用
以上答案假設資料庫是oracle
,但是也不全面
僅供參考
『伍』 資料庫經典筆試題和面試題答案
如下這些有關資料庫知識考查的經典筆試題,非常全面,對計算機專業畢業生參加筆試會很有幫助,建議大家收藏。
一、選擇題
1. 下面敘述正確的是___c___。
A、演算法的執行效率與數據的存儲結構無關
B、演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C、演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D、以上三種描述都不對
2. 以下數據結構中不屬於線性數據結構的是___c___。
A、隊列B、線性表C、二叉樹D、棧
3. 在一棵二叉樹上第5層的結點數最多是__b____。2的(5-1)次方
A、8 B、16 C、32 D、15
4. 下面描述中,符合結構化程序設計風格的是___a___。
A、使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B、模塊只有一個入口,可以有多個出口
C、注重提高程序的執行效率 D、不使用goto語句
5. 下面概念中,不屬於面向對象方法的是___d___。
A、對象 B、繼承 C、類 D、過程調用
6. 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是___b___。
A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼
7. 在軟體開發中,下面任務不屬於設計階段的是__d____。
A、數據結構設計 B、給出系統模塊結構 C、定義模塊演算法 D、定義需求並建立系統模型
8. 資料庫系統的核心是___b___。
A、數據模型 B、資料庫管理系統 C、軟體工具 D、資料庫
9. 下列敘述中正確的是__c____。
A、資料庫是一個獨立的系統,不需要操作系統的支持
B、資料庫設計是指設計資料庫管理系統
C、資料庫技術的根本目標是要解決數據共享的問題
D、資料庫系統中,數據的物理結構必須與邏輯結構一致
10. 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是___a___。
A、內模式 B、外模式 C、概念模式 D、邏輯模式
11. Visual FoxPro資料庫文件是___d___。
A、存放用戶數據的文件 B、管理資料庫對象的系統文件
C、存放用戶數據和系統的文件 D、前三種說法都對
12. SQL語句中修改表結構的命令是___c___。
A、MODIFY TABLE B、MODIFY STRUCTURE
C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要創建一個數據組分組報表,第一個分組表達式是"部門",第二個分組表達式是"性別",第三個分組表達式是"基本工資",當前索引的索引表達式應當是__b____。
A、部門+性別+基本工資 B、部門+性別+STR(基本工資)
C、STR(基本工資)+性別+部門 D、性別+部門+STR(基本工資)
14. 把一個項目編譯成一個應用程序時,下面的敘述正確的是___a___。
A、所有的項目文件將組合為一個單一的應用程序文件
B、所有項目的包含文件將組合為一個單一的應用程序文件
C、所有項目排除的文件將組合為一個單一的應用程序文件
D、由用戶選定的項目文件將組合為一個單一的應用程序文件
15. 資料庫DB、資料庫系統DBS、資料庫管理系統DBMS三者之間的關系是_a___。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在"選項"對話框的"文件位置"選項卡中可以設置___b___。
A、表單的默認大小 B、默認目錄
C、日期和時間的顯示格式 D、程序代碼的顏色
17. 要控制兩個表中數據的完整性和一致性可以設置"參照完整性",要求這兩個表_a_。
A、是同一個資料庫中的兩個表 B、不同資料庫中的兩個表
C、兩個自由表 D、一個是資料庫表另一個是自由表
18. 定位第一條記錄上的命令是___a___。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在關系模型中,實現"關系中不允許出現相同的元組"的約束是通過__b____。
A、候選鍵 B、主鍵 C、外鍵 D、超鍵
20. 設當前資料庫有10條記錄(記錄未進行任何索引),在下列三種情況下,當前記錄號為1時;EOF()為真時;BOF()為真時,命令?RECN()的結果分別是___a___。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表達式中結果不是日期型的是___c___。
A、CTOD("2000/10/01") B、{^99/10/01}+365
C、VAL("2000/10/01") D、DATE()
22. 只有滿足聯接條件的記錄才包含在查詢結果中,這種聯接為___c___。
A、左聯接 B、右聯接 C、內部聯接 D、完全聯接
23. 索引欄位值不唯一,應該選擇的索引類型為___b___。
A、主索引 B、普通索引 C、候選索引 D、唯一索引
24. 執行SELECT 0選擇工作區的結果是___b___。
A、選擇了0號工作區 B、選擇了空閑的最小號工作區
C、關閉選擇的工作區 D、選擇已打開的工作區
25. 從資料庫中刪除表的命令是___a___。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年齡>60語句的功能是__b____。
A、從S表中徹底刪除年齡大於60歲的記錄
B、S表中年齡大於60歲的記錄被加上刪除標記
C、刪除S表 D、刪除S表的年齡列 1 2
『陸』 15個 MySQL 基礎面試題,DBA 們准備好了嗎
問題1:你如何確定 MySQL 是否處於運行狀態?
答案: 在Debian 上運行命令 service mysql status,然後看輸出即可。
在 RedHat 或者 centos 上運行命令 service mysqld status,然後看看輸出即可。
問題2:如何開啟或停止 MySQL 服務?
答案:運行命令 service mysqld start 開啟服務;
運行命令 service mysqld stop 停止服務。
問題3:如何通過 Shell 登入 MySQL?
答案:運行命令 mysql -u用戶名 -p登陸密碼
問題4:如何列出所有資料庫?
答案:運行命令 show databases;
問題5: 如何切換到某個資料庫並在上面工作?
答案:(1)運行命令 use database_name;
(2)進入名為 database_name 的資料庫。
問題6:如何列出某個資料庫內所有表?
答案:在當前資料庫運行命令 show tables;
問題7:如何獲取表內所有 Field 對象的名稱和類型?
答案:運行命令 describe 表名;
簡寫為desc 表名;
問題8:如何刪除表?
答案:運行命令 drop table 表名;
問題9:如何刪除資料庫?
答案:運行命令 drop database 資料庫名;
問題10:如何查看錶內所有數據?
答案:運行命令 select * from 表名;
問題11:如何從表(比如 oc_users )中獲取一個 field 對象(比如 uid)的所有數據?
答案:運行命令 select uid from oc_users;
問題12:假設你有一個名為 『xyz』 的表,它存在多個欄位,如 『createtime』和 『engine』,
名為 engine 的欄位由 『Memoty』 和 『MyIsam』 兩種數值組成。
如何只列出 『createtime』 和 『engine』 這兩列,並且 engine 的值為 『MyIsam』?
答案:運行命令 select create_time, engine from xyz where engine = 「MyIsam」 ;
問題13:如何列出表 『xrt』 內 name 域值為 『tecmint』,web_address 域值為 『tecmint.com』 的所有數據?
答案:運行命令 select * from xrt where name = 「tecmint」 and web_address = 「tecmint.com」 ;
問題14:如何列出表 『xrt』 內 name 域值不為 『tecmint』,web_address 域值為 『tecmint.com』 的所有數據?
答案:運行命令 select * from xrt where name != 「tecmint」 and web_address = 「tecmint.com」;
問題15:如何知道表內行數?
答案:運行命令 select count(*) from 表名;
『柒』 Oracle面試題(基礎篇)
Oracle面試題(基礎篇)
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。以下是關於Oracle面試題(基礎篇),希望大家認真閱讀!
1. Oracle跟SQL Server 2005的區別?
宏觀上:
1). 最大的區別在於平台,oracle可以運行在不同的平台上,sql server只能運行在windows平台上,由於windows平台的穩定性和安全性影響了sql server的穩定性和安全性
2). oracle使用的腳本語言為PL-SQL,而sql server使用的腳本為T-SQL
微觀上: 從數據類型,資料庫的結構等等回答
2. 如何使用Oracle的游標?
1). oracle中的游標分為顯示游標和隱式游標
2). 顯示游標是用cursor...is命令定義的游標,它可以對查詢語句(select)返回的多條記錄進行處理;隱式游標是在執行插入 (insert)、刪除(delete)、修改(update)和返回單條記錄的查詢(select)語句時由PL/SQL自動定義的。
3). 顯式游標的操作:打開游標、操作游標、關閉游標;PL/SQL隱式地打開SQL游標,並在它內部處理SQL語句,然後關閉它
3. Oracle中function和procere的區別?
1). 可以理解函數是存儲過程的一種
2). 函數可以沒有參數,但是一定需要一個返回值,存儲過程可以沒有參數,不需要返回值
3). 函數return返回值沒有返回參數模式,存儲過程通過out參數返回值, 如果需要返回多個參數則建議使用存儲過程
4). 在sql數據操縱語句中只能調用函數而不能調用存儲過程
4. Oracle的導入導出有幾種方式,有何區別?
1). 使用oracle工具 exp/imp
2). 使用plsql相關工具
方法1. 導入/導出的是二進制的數據, 2.plsql導入/導出的是sql語句的文本文件
5. Oracle中有哪幾種文件?
數據文件(一般後綴為.dbf或者.ora),日誌文件(後綴名.log),控制文件(後綴名為.ctl)
6. 怎樣優化Oracle資料庫,有幾種方式?
個人理解,資料庫性能最關鍵的因素在於IO,因為操作內存是快速的,但是讀寫磁碟是速度很慢的,優化資料庫最關鍵的問題在於減少磁碟的IO,就個人理解應該分為物理的和邏輯的優化, 物理的是指oracle產品本身的一些優化,邏輯優化是指應用程序級別的優化
物理優化的一些原則:
1). Oracle的運行環境(網路,硬體等)
2). 使用合適的優化器
3). 合理配置oracle實例參數
4). 建立合適的索引(減少IO)
5). 將索引數據和表數據分開在不同的表空間上(降低IO沖突)
6). 建立表分區,將數據分別存儲在不同的分區上(以空間換取時間,減少IO)
邏輯上優化:
1). 可以對表進行邏輯分割,如中國移動用戶表,可以根據手機尾數分成10個表,這樣對性能會有一定的作用
2). Sql語句使用佔位符語句,並且開發時候必須按照規定編寫sql語句(如全部大寫,全部小寫等)oracle解析語句後會放置到共享池中
如: select * from Emp where name=? 這個語句只會在共享池中有一條,而如果是字元串的話,那就根據不同名字存在不同的語句,所以佔位符效率較好
3). 資料庫不僅僅是一個存儲數據的地方,同樣是一個編程的地方,一些耗時的操作,可以通過存儲過程等在用戶較少的情況下執行,從而錯開系統使用的高峰時間,提高資料庫性能
4). 盡量不使用*號,如select * from Emp,因為要轉化為具體的列名是要查數據字典,比較耗時
5). 選擇有效的表名
對於多表連接查詢,可能oracle的優化器並不會優化到這個程度, oracle 中多表查詢是根據FROM字句從右到左的數據進行的,那麼最好右邊的表(也就是基礎表)選擇數據較少的表,這樣排序更快速,如果有link表(多對多中間表),那麼將link表放最右邊作為基礎表,在默認情況下oracle會自動優化,但是如果配置了優化器的情況下,可能不會自動優化,所以平時最好能按照這個方式編寫sql
6). Where字句 規則
Oracle 中Where字句時從右往左處理的,表之間的連接寫在其他條件之前,能過濾掉非常多的數據的條件,放在where的末尾, 另外!=符號比較的列將不使用索引,列經過了計算(如變大寫等)不會使用索引(需要建立起函數), is null、is not null等優化器不會使用索引
7). 使用Exits Not Exits 替代 In Not in
8). 合理使用事務,合理設置事務隔離性
資料庫的數據操作比較消耗資料庫資源的,盡量使用批量處理,以降低事務操作次數
7. Oracle中字元串用什麼符號鏈接?
Oracle中使用 || 這個符號連接字元串 如 ‘abc’ || ‘d’
8. Oracle分區是怎樣優化資料庫的`?
Oracle的分區可以分為:列表分區、范圍分區、散列分區、復合分區。
1). 增強可用性:如果表的一個分區由於系統故障而不能使用,表的其餘好的分區仍可以使用;
2). 減少關閉時間:如果系統故障隻影響表的一部份分區,那麼只有這部份分區需要修復,可能比整個大表修復花的時間更少;
3). 維護輕松:如果需要得建表,獨產管理每個公區比管理單個大表要輕松得多;
4). 均衡I/O:可以把表的不同分區分配到不同的磁碟來平衡I/O改善性能;
5). 改善性能:對大表的查詢、增加、修改等操作可以分解到表的不同分區來並行執行,可使運行速度更快
6). 分區對用戶透明,最終用戶感覺不到分區的存在。
9. Oracle是怎樣分頁的?
Oracle中使用rownum來進行分頁, 這個是效率最好的分頁方法,hibernate也是使用rownum來進行oralce分頁的
select * from
( select rownum r,a from tabName where rownum <= 20 )
where r > 10
10. Oralce怎樣存儲文件,能夠存儲哪些文件?
Oracle 能存儲 clob、nclob、 blob、 bfile
Clob 可變長度的字元型數據,也就是其他資料庫中提到的文本型數據類型
Nclob 可變字元類型的數據,不過其存儲的是Unicode字元集的字元數據
Blob 可變長度的二進制數據
Bfile 資料庫外面存儲的可變二進制數據
11. Oracle中使用了索引的列,對該列進行where條件查詢、分組、排序、使用聚集函數,哪些用到了索引?
均會使用索引, 值得注意的是復合索引(如在列A和列B上建立的索引)可能會有不同情況
12. 資料庫怎樣實現每隔30分鍾備份一次?
通過操作系統的定時任務調用腳本導出資料庫
13. Oracle中where條件查詢和排序的性能比較?
Order by使用索引的條件極為嚴格,只有滿足如下情況才可以使用索引,
1). order by中的列必須包含相同的索引並且索引順序和排序順序一致
2). 不能有null值的列
所以排序的性能往往並不高,所以建議盡量避免order by
14. 解釋冷備份和熱備份的不同點以及各自的優點?
冷備份發生在資料庫已經正常關閉的情況下,將關鍵性文件拷貝到另外位置的一種說法
熱備份是在資料庫運行的情況下,採用歸檔方式備份數據的方法
冷備的優缺點:
1).是非常快速的備份方法(只需拷貝文件)
2).容易歸檔(簡單拷貝即可)
3).容易恢復到某個時間點上(只需將文件再拷貝回去)
4).能與歸檔方法相結合,作資料庫“最新狀態”的恢復。
5).低度維護,高度安全。
冷備份不足:
1).單獨使用時,只能提供到“某一時間點上”的恢復。
2).在實施備份的全過程中,資料庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
3).若磁碟空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會很慢。
4).不能按表或按用戶恢復。
熱備的優缺點
1).可在表空間或數據文件級備份,備份時間短。
2).備份時資料庫仍可使用。
3).可達到秒級恢復(恢復到某一時間點上)。
4).可對幾乎所有資料庫實體作恢復。
5).恢復是快速的,在大多數情況下在資料庫仍工作時恢復。
熱備份的不足是:
1).不能出錯,否則後果嚴重。
2).若熱備份不成功,所得結果不可用於時間點的恢復。
3).因難於維護,所以要特別仔細小心,不允許“以失敗而告終”。
15. 解釋data block , extent 和 segment的區別?
data block 數據塊,是oracle最小的邏輯單位,通常oracle從磁碟讀寫的就是塊
extent 區,是由若干個相鄰的block組成
segment段,是有一組區組成
tablespace表空間,資料庫中數據邏輯存儲的地方,一個tablespace可以包含多個數據文件
;『捌』 mysql資料庫面試題(學生表_課程表_成績表_教師表)
Student(Sid,Sname,Sage,Ssex)學生表
Sid:學號
Sname:學生姓名
Sage:學生年齡
Ssex:學生性別
Course(Cid,Cname,Tid)課程表
Cid:課程編號
Cname:課程名稱
Tid:教師編號
SC(Sid,Cid,score)成績表
Sid:學號
Cid:課程編號
score:成績
Teacher(Tid,Tname)教師表
Tid:教師編號:
Tname:教師名字
1、插入數據
2、刪除課程表所有數據
3、將學生表中的姓名 張三修改為張大山
或者
4、查詢姓』李』的老師的個數:
5、查詢所有課程成績小於60的同學的學號、姓名:
6、查詢沒有學全所有課的同學的學號、姓名
7、查詢平均成績大於60分的同學的學號和平均成績
8、查詢學過「100」並且也學過編號「101」課程的同學的學號、姓名
9、查詢「100」課程比「101」課程成績高的所有學生的學號
10、查詢課程編號「100」的成績比課程編號「101」課程高的所有同學的學號、姓名
11、查詢學過「魯迅」老師所教的所有課的同學的學號、姓名
12、查詢所有同學的學號、姓名、選課數、總成績
13、查詢至少有一門課與學號為「1」同學所學相同的同學的學號和姓名
14、把「SC」表中「魯迅」老師教的課的成績都更改為此課程的平均成績,
錯誤
15、查詢和「2」學號的同學學習的課程完全相同的其他同學學號和姓名
16、刪除學習「魯迅」老師課的SC表記錄
17、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號「003」課程的同學學號、002號課的平均成績
18、查詢各科成績最高和最低的分:以如下的形式顯示:課程ID,最高分,最低分
19、按各科平均成績從低到高和及格率的百分數從高到低順序
20、查詢如下課程平均成績和及格率的百分數(用」1行」顯示): 數學(100),語文(101),英語(102)
22、查詢不同老師所教不同課程平均分從高到低顯示
23、查詢如下課程成績第3名到第6名的學生成績單:數學(100),語文(101),英語(102)
23、統計下列各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ 小於60]
24、查詢學生平均成績及其名次
25、查詢各科成績前三名的記錄(不考慮成績並列情況)
26、查詢每門課程被選修的學生數
27、查詢出只選修一門課程的全部學生的學號和姓名
28、查詢男生、女生人數
29、查詢姓「張」的學生名單
30、查詢同名同姓的學生名單,並統計同名人數
31、1981年出生的學生名單(註:student表中sage列的類型是datetime)
32、查詢平均成績大於85的所有學生的學號、姓名和平均成績
33、查詢每門課程的平均成績,結果按平均成績升序排序,平均成績相同時,按課程號降序排列
34、查詢課程名稱為「英語」,且分數低於60的學生名字和分數
35、查詢所有學生的選課情況
36、查詢任何一門課程成績在70分以上的姓名、課程名稱和分數
37、查詢不及格的課程,並按課程號從大到小的排列
38、查詢課程編號為「101」且課程成績在80分以上的學生的學號和姓名
39、求選了課程的學生人數:
40、查詢選修「魯迅」老師所授課程的學生中,成績最高的學生姓名及其成績
41、檢索至少選修兩門課程的學生學號
42、查詢全部學生都選修的課程的課程號和課程名(1.一個課程被全部的學生選修,2.所有的學生選擇的所有課程)
43、查詢沒學過「魯迅」老師講授的任一門課程的學生姓名
44、查詢兩門以上不及格課程的同學的學號及其平均成績
45、檢索「101」課程分數小於60,按分數降序排列的同學學號
46、刪除「2」同學的「101」課程的成績