知識點最全的資料庫面試題

2021-10-08 08:43:51 字數 4298 閱讀 6394

1、查詢位於「華東」或「華南」地區的**商的id、公司名稱、地區、城市和**欄位的值

select **商id,公司名稱,地區,城市,** 

from **商

where 地區 = 「華東」 or 地區 = 「華南」;

2、查詢「10248」和「10254」號訂單的訂單id、訂單上所訂購的產品的名稱及其銷售金額

join左連線與右連線

select 訂單id,產品名稱,(單價*數量*折扣)

as 銷售金額

from 訂單明細 as a inner

join 產品 as b on a.產品id=b.產品id

where a.訂單id =

10245

or a.訂單id=

10254

;

3、查詢單價大於20元的所有產品的產品名稱、單價以及**商的公司名稱、**

select 產品名稱.單價,公司名稱,**

from 產品 as a inner

join **商 as b on a.**商id = b.**商id

where 單價》

20;

4、按運貨商公司名稱,統計2023年由各個運貨商承運的訂單的總數量

select

count

(訂單id)

as 訂單數

from

(select a.運貨商id,a.訂單id,a.公司名稱

from 運貨商 as a inner

join 訂單 as b on a.運貨商id=b.運貨商id

where b.

year

('訂單日期')=

1997

)as c group

by c.公司名稱;

5、找出按箱包裝的產品名稱

select 產品名稱 from 產品 where 包裝單位 = 「箱」;
6、找出雇員鄭建傑所有的訂單並根據訂單銷售額排序

select 訂單id,

sum(單間*數量)

as 銷售額

from 訂單明細 as d inner

join

(select 訂單id,雇員id

from 訂單 as a inner

join 雇員 as b on a.雇員id = b.雇員id

where b.姓氏=

"鄭"and b.名字=「- 建傑」

)as c on c.訂單id=d.訂單id

order

by a.銷售額

select 訂單id,sum(單價*數量 ) as 銷售額 from 訂單明細 d from 

( select 訂單id,雇員id from 訂單 as a inner join

雇員 as b on a.雇員id=b.雇員id where b.姓氏=」鄭」 and b.名字=」建傑」 ) c on d.訂單id = c. 訂單id order by 銷售額;

7、計算銷量前10位的訂單明細,結果集返回訂單id,訂單日期,公司名稱,發貨日期,銷售額,並排序

select 訂單id,訂單日期,公司名稱,發貨日期,

(單價*數量)

as 銷售額

from 訂單明細 as d inner

join

(select

*from 訂單,客戶

where 訂單.客戶id = 客戶.客戶id

)as c on d.訂單id = c.訂單id

order

by 銷售額 limit

10;

select  公司名稱,訂單日期,訂單id,發貨日期,(單價*數量)as 銷售額 from 訂單明細 as d inner join

(select * from 訂單,客戶 where 訂單.客戶id = 客戶.客戶id ) as c

on d.訂單id=c.訂單idorder by 銷售額 limit 10;

8、查出訂單總額超出5000的所有訂單,客戶名稱,客戶所在地區

select 訂單id,客戶名稱,地區

from 客戶 as b inner

join

(select 訂單id,產品id,訂單總額 from 訂單 b inner

join

(select 訂單id,產品id,

(單價*數量)

as 訂單總額

from 訂單明細

where 訂單總額》

5000

)a on a.訂單id = b.訂單id

)on 客戶.客戶id=訂單.客戶id;

9.查詢所有訂單中月份不是單數的訂單

select 訂單id from

where

month

("訂購日期")%

2=0;

10.找出在入職時已超過30歲的所有員工資訊

select

*from 雇員 where timestampdiff(

interval

=「year」,出生日期,僱傭日期)

>

30;

timestampdiff(單位,開始時間,結束時間)   ==開始時間-結束時間,

eg。 timestampdiff(minute,begin_time,ifnull(over_time,now()))

注釋 :如果over_time不為空則用現在時間 減去 begin_time,得到的值的單位為分鐘

11.計算每一筆訂單的發貨期(從訂購到發貨),運貨期(從發貨到到貨)的時常,並按照發貨期從長到短的順序進行排序。

select  timestampdiff(

interval

=」day」,訂購日期,發貨日期)

as 發貨期 ,

timestampdiff(

interval

=」day」,發貨日期,到貨日期) as 運貨期

order

by 發貨期;

12.建儲存過程 pd_getproducts找出所有單價大於30的產品(產品id、產品名稱、產品類別、產品**商、總銷售量、總銷售額 );入參:產品類別,**商;當產品類別和**商都為空的時候,nofilter

delimiter

//儲存過程

create

procedure pd_getproducts )

in 產品類別

in **商)

begin

select 產品id,產品名稱,產品類別,**商名稱,總銷售量,總銷售額

from

(select

*from 訂單明細 as a inner

join

(select 產品id,類別id,產品名稱,類別名稱

from 產品

where 產品.類別id=商品類別.類別id) b on a.產品id=b.產品id

) c inner

join **商 on a.**商id= **商.**商id;

end//delimiter

;

13、建檢視,查詢當日產品銷售情況v_todaysales,字段包括不限於:產品id、產品名稱、產品類別、客戶、運貨商、銷售量、銷售額

create

view v_todaysales as

select 產品id,產品名稱,產品類別,公司名稱as 客戶,運貨商,銷售量,銷售額

from 訂單 as d inner

join

(select

*from 商品類別 as a inner

join

(select 產品id ,訂單id,類別id,數量 as 銷售量,(單價*數量)as 銷售額,產品名稱

where 訂單明細.產品id=產品.產品id and

day(「訂購日期」)

=day

(now()

) b on a.類別id=b.類別id)

as c on d.訂單id=c.訂單id;

消除恐懼與焦慮最好的辦法就是充實自己的內心。當你有底氣,有足夠的自信去面對未來的不確定性時,你將不再會焦慮。願你求職的路上不再迷茫。

kafka高階知識點面試題

在老版本kafka中,訊息都是來一條傳送一條,這種方式會造成訊息傳送的吞吐量比較低,所以之後kafka對這種方式進行了優化,提供了批量傳送的方式,把多條訊息繫結成一批訊息傳送,以此來提高訊息傳送的吞吐率。這種方式就是緩衝池的思想,傳送訊息的邏輯大概如下 1 把訊息封裝成producerrecord物...

大資料面試題知識點分析(五)

a 一種可以加快批量寫入速度的方法是通過預先建立一些空的regions,這樣當資料寫入hbase時,會按照region分割槽情況,在集群內做資料的負載均衡。b hbase 裡面有這樣乙個hfileoutputformat類,他的實現可以將資料轉換成hfile格式,通過new乙個這個類,進行相關配置,...

大資料面試題知識點分析(六)

不支援,可以用left join 實現此功能。1.儲存於記憶體資料庫derby,此方法只能開啟乙個hive客戶端,不推薦使用。2.儲存於mysql資料庫,可以多客戶端連線,推薦使用。分為本地mysql資料庫,遠端mysql資料庫,但是本地的mysql資料用的比較多,因為本地讀寫速度都比較快。1.jo...