當前位置:首頁 » 編程語言 » 面試題sql

面試題sql

發布時間: 2022-06-12 21:40:07

1. sql語句面試題

select a.user_job as "職業",b.man_num as "男性人數",c.woman_num as "女性人數",count(id) as "總人數" from user a left join (select user_job,count(id) as man_num from user where user_sex=1 group by user_job) b on a.user_job=b.user_job left join (select user_job,count(id) as woman_num from user where user_sex=0 group by user_job) c on a.user_job=c.user_job group by a.user_job
這樣寫試一下,看看是否好用。

2. sql面試題

1.
select
s.title,
count(p.id)
from
書表
s
left
join
評論
p
on
s.id=p.書表中的id
group
by
s.title
(注意:左外連接的作用是將評價數為0的書顯示出來.count(p.id)和count(*)的區別是count(p.id)不計入p.id為null的行)
2.
select
top
1
s.title,
count(p.id)
from
書表
s
left
join
評論
p
on
s.id=p.書表中的id
group
by
s.title
order
by
2
desc
(以第2列倒序排序,取第1行)

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

4. 有關SQL的面試題。。。

1、忍不住想說一句,因為第一題中的欄位類型是
【日期型】,而各種資料庫操作日期型數據有不同的方法,沒有一種共通的方法,所以脫離了資料庫而言沒有一種共通的sql。
2、select
id,name,address,phone,logdate
from
t
where
id
in(
select
id
from
t
group
by
name
having
count(*)>1)
order
by
name;
3、delete
from
t
where
id
not
in
(select
min(id)
from
t
group
by
name);
4、update
t
set
t.address=(select
e.address
from
e
where
e.name=t.name),
t.phone=(select
e.phone
from
e
where
e.name=t.name);
5、這個不同的資料庫也有不同的處理方法,不能脫離資料庫談了。
如:sqlserver或者access可以使用
top
oracle可以使用
rownum

---
以上,希望對你有所幫助。

5. 面試題目(sql)

1、忍不住想說一句,因為第一題中的欄位類型是
【日期型】,而各種資料庫操作日期型數據有不同的方法,沒有一種共通的方法,所以脫離了資料庫而言沒有一種共通的sql。
2、select
ID,NAME,ADDRESS,PHONE,LOGDATE
from
T
where
ID
in(
select
ID
from
T
group
by
NAME
having
count(*)>1)
order
by
NAME;
3、delete
from
T
where
ID
not
in
(select
min(id)
from
T
group
by
name);
4、update
T
set
T.ADDRESS=(select
E.ADDRESS
from
E
where
E.NAME=T.NAME),
T.PHONE=(select
E.PHONE
from
E
where
E.NAME=T.NAME);
5、這個不同的資料庫也有不同的處理方法,不能脫離資料庫談了。
如:SqlServer或者access可以使用
top
oracle可以使用
rownum

---
以上,希望對你有所幫助。

6. 這個一個SQL面試題該怎麼寫

一、表設計(表只列主鍵和最少符合需求欄位,欄位類型省略):
員工表:id, 員工姓名
樓盤表:id, 樓盤名稱, 員工id
出單表:id, 出單年月,員工id, 樓盤id, 出單價格
工資表:id, 工資年月, 員工id, 工資
樓盤分攤表:id, 分攤年月, 樓盤id, 員工id, 分攤成本

二、分攤成本記錄(只查詢樓盤分攤表的記錄,如何插入根據資料庫類型 select into或者insert into)
select 工資表.工資年月 as 分攤年月, 出單表.樓盤id, 出單表.員工id, 工資表.工資 / 員工出單數.出單合計 as 分攤成本
from 出單表 join 工資表 on (出單表.員工id = 工資表.員工id and 出單表.出單年月 = 工資表.工資年月)
join (select 員工id, 出單年月, count(1) as 出單合計 from 出單表 group by 員工id, 出單年月) 員工出單數 on (出單表.員工id = 員工出單數.員工id and 出單表.出單年月 = 員工出單數.出單年月)
where 工資表.工資年月 = '這個條件填最新的年月,如果不加這個條件,就是所有月份的'
union all

select 工資表.工資年月 as 分攤年月, 出單表.樓盤id, 出單表.員工id, 工資表.工資 / 員工出單數.出單合計 as 分攤成本
from 樓盤表 join 工資表 on 樓盤表.員工id = 工資表.員工id
join (select 員工id, count(1) as 樓盤合計 from 樓盤表 group by 員工id) 員工負責樓盤數 on 樓盤表.員工id = 員工負責樓盤數.員工id
left join (select 員工id, 出單年月, count(1) as 出單合計 from 出單表 group by 員工id, 出單年月) 員工出單數 on (工資表.員工id = 員工出單數.員工id and 工資表.工資年月 = 員工出單數.出單年月)
where 員工出單數.員工id is null and 工資表.工資年月 = '這個條件填最新的年月,如果不加這個條件,就是所有月份的'

7. SQL 面試題

SELECT aa.日期, aa.數值, SUM(lj.數值) AS 累計
FROM 累積 lj INNER JOIN
(SELECT *
FROM 累積) aa ON lj.日期 <= aa.日期
WHERE (aa.日期 <= '2005-05-04') --日期可以變成時間段
GROUP BY aa.日期, aa.數值
ORDER BY aa.日期

8. sql面試題,請大神解答,急!!!

第一題,最高的10-20。
1234select*from(selectcolD,colE,dense_rank()over(orderbycolGdesc)asrkfromtableb)whererkbetween10and20--當然面試的話這里可以註明dense_rank和rank區別等等。

第二題,2樓寫的就可以了

第三題,注意題目是人數之和
12345selectcount(*)ascntfromtableBwherecolAin(=傳入idconnectbypriorcolA=colB)

第四題
--測試數據
withtableAas(select1ascolA,0ascolB,'北京',0ascolB,'上海'fromal),tableBas(select1ascolD,'人員1'ascolE,1ascolA,2000ascolG,0ascolHfromalunionallselect2,'人員2',1,2000,0fromalunionallselect3,'人員3',1,2000,0fromalunionallselect4,'人員4',1,2000,0fromalunionallselect5,'人員5',1,2000,1fromalunionallselect6,'人員6',2,2000,1fromalunionallselect7,'人員7',1,2000,1fromal)--查詢sqlselectdecode(t.colH,0,'女','男')asgender,max(decode(t.colC,'北京',t.cnt,0))as北京,max(decode(t.colC,'上海',t.cnt,0))as上海from(selecta.colC,b.colH,count(*).colA=b.colAgroupbycolC,colH)tgroupbyt.colH
這里可以解釋下本sql的思路:--首先查出每個地區不同性別的人數,在行轉列(由於題目很明顯告訴你固定數據)

9. sql語句 面試題

這個簡單,看答案,採納吧~
第一題是,用雙top結構就可以查出來
1,select * from 學生表 where 學號 in
(select top 5 學號 from 成績表 where 學號 not in(select top 10 學號 from 成績表 order by 分數) order by 分數)

第二題是比較簡單,用復合函數就行了,having
select 姓名 from 成績表 group by 姓名 having avg(分數)>80
採納吧~

10. SQL面試題

翻譯
題目很簡單,樓主看看
MovieBuster在線電影收看服務擁有如下信息的資料庫:
(*)號表示外鍵參考,
電影信息表:MovieInfo(mvID, title, rating, year, length, studio)
分類信息表:GenreInfo(mvID*, genre)
工作室信息表:DirectInfo(mvID*, director)
電影信息表主要存放電影的相關信息,其中主鍵mvID是電影出產時人為給定的一個ID值,一個電影可能擁有多個類別並且有多個工作室一起生產。
注意這些表與資料庫中的其他表名已經區別開來。
一個只讀數據信息已經被建立在oracle上並且可以通過如下命令sqlmb1獲得信息。作為選擇,你可以通過此建立自己的數據表。

數據可以從黑板上看到
從資料庫中查詢如下問題並給出正確答案:
(1)工作室 "Paramount Pictures"已經生產多少部 rating="G" 並且年份在1940-1950年之間的電影?
(2)查出rating ="PG" 生產年份在1940之前或者2000年之後的電影的總數。
(3)列出每種分類的電影數,查出結果按電影分數總數降序排序。
(4)查找出生產的電影平均長度至少大於等於3的工作室的名字以及對應的平均電影長度。

熱點內容
系統鎖屏忘記密碼如何設置 發布:2024-05-05 20:18:07 瀏覽:759
xp怎樣訪問win7 發布:2024-05-05 20:17:07 瀏覽:870
c語言訪問http 發布:2024-05-05 20:04:14 瀏覽:874
什麼可以配置波爾多葉 發布:2024-05-05 20:00:32 瀏覽:963
cgxrar解壓密碼 發布:2024-05-05 19:47:24 瀏覽:633
ubuntu編譯linux內核 發布:2024-05-05 19:46:05 瀏覽:8
php靜態方法調用對象 發布:2024-05-05 19:24:30 瀏覽:367
電腦LNS伺服器地址 發布:2024-05-05 19:22:15 瀏覽:377
不屬於編譯程序組成的部分是什麼 發布:2024-05-05 19:05:34 瀏覽:614
壓縮麵食 發布:2024-05-05 18:55:45 瀏覽:805