當前位置:首頁 » 數據倉庫 » 資料庫分庫分別表面試題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫分庫分別表面試題

發布時間: 2023-06-29 21:28:55

⑴ java面試題中一般資料庫會問什麼內容(資料庫常問的面試題)

資料庫基礎(面試常見題)

一、資料庫基礎

1.數據抽象:物理抽象、概念抽象、視圖級抽象,內模式、模式高芹神、外模式

2.sql語言包括數據定義、數據操縱(Data),數據控制(DataControl)

數據定義:CreateTable,AlterTable,DropTable,Craete/DropIndex等

數據操縱:Select,insert,update,delete,數據控制:grant,revoke

3.SQL常用命令:

CREATETABLEStudent(

IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50)NOTNULL);//建表

CREATEVIEWview_nameAS

Select*FROMTable_name;//建視圖

CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引

INSERTINTOtablename{column1,column2,}values(exp1,exp2,);//插入

INSERTINTOViewname{column1,column2,}values(exp1,exp2,);//插入視圖實際影響表

UPDATEtablenameSETname=』zang3』condition;//更新數據

;//刪除

GRANT(Select,delete,)ON(對象)TOUSER_NAME[WITHGRANTOPTION];//授權

REVOKE(許可權表)ON(對象)FROMUSER_NAME[WITHREVOKEOPTION]//撤權

列出工作人員及其領導的名字:首渣

SelectE.NAME,S.NAMEFROMEMPLOYEEES

WHEREE.SUPERName=S.Name

4.視圖:

5.完整性約束:實體完整性、參照完整性、用戶定義完整性戚虧

⑵ 資料庫面試題 有四個表Student表,Course表,Score表,Teacher表

1.
select 英語.學號
from Score 英語
left join
(
select 學號,課程代碼,成績
from Score where 課程代碼='數學課程代碼'
) as 數學
on 英語.學號=數學.學號
where 英語.課程代碼='英語課程胡哪代碼' and 英語.成績>數學.成績
2
select Student.學號,Student.姓名,AVG(成績) as 平均成績
from Score
left join Student on Student.學號 =Score.學號
group by Student.學號,Student.姓名
having AVG(Score.成績)>30

3
select Student.學號,Student.姓名, ISNULL(選課_成績.選課數,0) as 選課數,ISNULL(選課_成績.總成績,0) as 總成績
from Student
left join
(
select 學號, COUNT(Score.課程代碼) as 選課數,SUM(Score.成績) as 總成績
from Score group by 學號嘩喚
) as 選課_成績
on Student.學號= 選課_成績褲蘆碼.學號

4
select a.學號,a.姓名 from Student as a
where a.學號 not in(
select distinct(Student.學號) as 學號
from Student
left join Score on Score.課程代碼 =
(
select Course.課程代碼 from Course
where Course.教師編號 =
(
select Teacher.教師編號 from Teacher
where Teacher.教師姓名='王軍'
)
)
)
僅供學習參考

⑶ 資料庫面試題1

1.

update

t

set

logdate=to_date(񟭃-01-01','yyyy-mm-dd')

where

logdate=to_date(񟭁-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的函數去處理

⑷ oracle資料庫面試問題

oracle資料庫面試問題

Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站也選用了Oracle系統。下面是我整理的關於oracle資料庫面試問題,希望大家認真閱讀!

1. 解釋冷備份鏈如和猜喚孝熱備份的不同點以及各自的優點

解答:熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於當備份時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意一個時間點。冷備份的優點在於它的備份和恢復操作相當簡單,並且由於冷備份的資料庫可以工作在非歸檔模式穗稿下,資料庫性能會比歸檔模式稍好。(因為不必將archive log寫入硬碟)

2. 你必須利用備份恢復資料庫,但是你沒有控制文件,該如何解決問題呢?

解答:重建控制文件,用帶backup control file 子句的recover 命令恢復資料庫。

3. 如何轉換init.ora到spfile?

解答:使用create spfile from pfile 命令.

4. 解釋data block , extent 和 segment的區別(這里建議用英文術語)

解答:data block是資料庫中最小的邏輯存儲單元。當資料庫的對象需要更多的物理存儲空間時,連續的data block就組成了extent . 一個資料庫對象擁有的所有extents被稱為該對象的segment.

5. 給出兩個檢查表結構的方法

解答:1.DESCRIBE命令

2.DBMS_METADATA.GET_DDL 包

6. 怎樣查看資料庫引擎的'報錯

解答:alert log.

7. 比較truncate和delete 命令

解答:兩者都可以用來刪除表中所有的記錄。區別在於:truncate是DDL操作,它移動HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花費較長時間.

8. 使用索引的理由

解答:快速訪問表中的data block

9. 給出在STAR SCHEMA中的兩種表及它們分別含有的數據

解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放對fact table 某些屬性描述的信息

10. FACT Table上需要建立何種索引?

解答:點陣圖索引 (bitmap index)

;

⑸ 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」課程的成績

⑹ Oracle資料庫的面試題目及答案

Oracle資料庫的面試題目及答案

基礎題目:

1. 比較truncate和 命令

解答:兩者都可以用來刪除表中所有的記錄。區別在於:truncate是DDL操作,它移動HWK,不需要 rollback segment .

而Delete是DML操作, 需要rollback segment 且花費較長時間.

【相同點

truncate和不帶where子句的, 以及drop都會刪除表內的數據

不同點:

1. truncate和 只姿轎刪除數據不刪除表的結構(定跡談肆義)

drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴於該表的.存儲過程/函數將保留,

但是變為invalid狀態.

2.語句是dml,這個操作會放到rollback segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發.

truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger.

3.語句不影響表所佔用的extent, 高水線(high watermark)保持原位置不動

顯然drop語句將表所佔用的空間全部釋放

truncate 語句預設情況下見空間釋放到 minextents個 extent,除非使侍渣用reuse storage; truncate會將高水線復位(回到最開始).

4.速度,一般來說: drop>; truncate >;

5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及

使用上,想刪除部分數據行用,注意帶上where子句. 回滾段要足夠大.

想刪除表,當然用drop

想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用.

如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據

2.Oracle中,需要在查詢語句中把空值(NULL)輸出為0,如何處理?

答案:nvl(欄位,0).

nvl( ) 函數

從兩個表達式返回一個非 null 值。

語法

NVL(eExpression1, eExpression2)

參數

eExpression1, eExpression2

如果 eExpression1 的計算結果為 null 值,則 NVL( ) 返回 eExpression2。如果 eExpression1 的計算結果不是 null 值,

則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數據類型。如果 eExpression1 與 eExpression2

的結果皆為 null 值,則 NVL( ) 返回 .NULL.。

返回值類型

字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值

說明

在不支持 null 值或 null 值無關緊要的情況下,可以使用 NVL( ) 來移去計算或操作中的 null 值。

select nvl(a.name,空得) as name from student a join school b on a.ID=b.ID

注意:兩個參數得類型要匹配

3.Oracle中char和varchar2數據類型有什麼區別?有數據」test」分別存放到10)和varchar2(10)類型的欄位中,

其存儲長度及類型有何區別?

答案:

區別: 1).CHAR的長度是固定的,而VARCHAR2的長度是可以變化的, 比如,存儲字元串「test",對於CHAR (10),


;

⑺ 資料庫面試題:

  1. create database aaa;

  2. create table users(id int NOT NULL AUTO_INCREMENT,

    user_name char(10),money char(10),add_time datetime

PRIMARY KEY (`id`))ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

3.insert into users values(2,'a1','a11',current_date),(3,'a1','a11',current_date),(4,'a1','a11',current_date),(5,'a1','a11',current_date),(6,'a1','a11',current_date),(7,'a1','a11',current_date),(8,'a1','a11',current_date),(9,'a1','a11',current_date),(10,'a1','a11',current_date),(11,'a1','a11',current_date);

4.參考第二步

5.參考第三步

6.select a.username,a.money,b.email,b.user_phone,b.weigh from users a,user_info b

where a.id=b.id and a.id=XXX(你指定的);

7.mysqlmp -uroot -p aaa > /tmp/aaa.sql (需要輸入密碼)

我用的是mysql上的寫法

⑻ 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、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。