我在面試中常問的數據庫問題

面試時經常使用的sql問題面試

第一題

表A有字段aid等,表B有字段bid等sql

A表spa

字段名ci

aid開發

其餘字段略it

記錄1table

1效率

*項目

記錄2查詢

2

*

記錄3

3

*

B表

字段名

bid

其餘字段略

記錄1

2

*

記錄2

3

*

記錄3

4

*

SELECT a.aid,b.bid,……

FROM A a

LEFT JOIN B b ON a.aid=b.bid

查詢結果中有那些行,每行的列都是什麼樣子的

【主要考察:對左鏈接的瞭解,這是基本技能】

第二題

有user表記錄了系統中的用戶信息

user_id

user_name

province

city

1

ebola

遼寧省

瀋陽市

2

camus

遼寧省

大連市

3

leon

遼寧省

大連市

4

tyler

遼寧省

瀋陽市

5

oven

遼寧省

大連市

6

susie

吉林省

長春市

7

nancy

吉林省

吉林市

8

lucy

吉林省

四平市

9

tom

河北省

石家莊市

10

lily

河北省

秦皇島市

11

wendy

河北省

保定市

12

andy

河北省

唐山市

13

hard

河北省

張家口市

14

vance

河北省

廊坊市

請寫SQL查詢表中的知足如下要求的省份

一、 很多於5個用戶

二、 省份所屬用戶屬於至少3個城市

例如:

遼寧省 不知足第二個條件,只屬於瀋陽市大連市兩個城市

吉林省 不知足第一個條件,只有3個用戶

河北省 知足第一個條件有6個用戶知足第二個條件 有6個城市

 【深度考察sql能力,以面試的緊張情形,目前只有一我的答出來,是一個作過dba的開發】

第三題

表有兩列id,name,其中id是主鍵,name是名稱,在項目剛開始時name能夠重複,當上線運行一段時間後,發現name必須惟一才符合需求,

但願刪除掉name重複的,只保留name相同的行中id最小的行,

要求

一、必須使用一個SQL,即 不能多個SQL依次執行來達到目的

二、當name重複時,只能保留id最小的行,當name不重複時,直接保留。

三、不要求效率

即若是有兩行(1,張三),(3,張三)則必須刪掉id=3的。保留id=1的

相關文章
相關標籤/搜索