數據庫 CURD測試題【簡單】

文章目錄

    • 1.組合兩個表
      • 基本信息
      • 要求
      • 答案
    • 2.第二高的薪水
      • 基本信息
      • 要求
      • 答案
    • 3.查找重復的電子郵箱
      • 基本信息
      • 要求
      • 答案
    • 4.超過經理收入的員工
      • 基本信息
      • 要求
      • 答案:
    • 5.超過5名學生的課
      • 信息:
      • 要求
      • 答案
    • 6.有趣的電影
      • 信息
      • 要求
      • 答案
    • 7.交換工資(updeta,條件判斷)
      • 基本信息
      • 要求
      • 答案
    • 8從不訂購的客戶
      • 信息
      • 要求
      • 答案
        • 使用的not in
        • 使用的not exists
    • 9.上升的溫度(mysql函數to_days)
        • 信息
        • 要求
        • 答案
    • 10.刪除重復的郵箱
        • 信息
        • 要求
        • 答案
    • 11.員工獎金(null的應用)
        • 信息
        • 要求
    • 12.查找訂單最多的用戶

1.組合兩個表

基本信息

表1: Person

列名類型
PersonIdint
FirstNamevarchar
LastNamevarchar
  • PersonId 是上表主鍵
    表2: Address
列名類型
AddressIdint
PersonIdint
Cityvarchar
Statevarchar
  • AddressId 是上表主鍵

要求

編寫一個 SQL 查詢,滿足條件:無論 person 是否有地址信息,都需要基于上述兩表提供 person 的以下信息:

FirstName, LastName, City, State

答案

select Person.FirstName,Person.LastName,Address.City,Address.State  
from Person left join Address on  Person.PersonId = Address.PersonId;

2.第二高的薪水

基本信息

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。

IdSalary
1100
2200
3300

要求

例如上述 Employee 表,SQL查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那么查詢應返回 null。

SecondHighestSalary
200

答案

select (select DISTINCT  Salary from Employee ORDER BY Salary DESC limit 1 offset 1
) as SecondHighestSalary;

3.查找重復的電子郵箱

基本信息

編寫一個 SQL 查詢,查找 Person 表中所有重復的電子郵箱。

示例:

IdEmail
1a@b.com
2c@d.com
3a@b.com

要求

根據以上輸入,你的查詢應返回以下結果:

Email
a@b.com

說明:所有電子郵箱都是小寫字母。

答案

select Email from Person group by Email having count(Email)>1;

4.超過經理收入的員工

基本信息

Employee 表包含所有員工,他們的經理也屬于員工。每個員工都有一個 Id,此外還有一列對應員工的經理的 Id。

IdNameSalaryManagerId
1Joe700003
2Henry800004
3Sam60000NULL
4Max90000NULL

要求

給定 Employee 表,編寫一個 SQL 查詢,該查詢可以獲取收入超過他們經理的員工的姓名。在上面的表格中,Joe 是唯一一個收入超過他的經理的員工。

Employee
Joe

答案:

Select e1.Name as Employee 
from Employee e1 join Employee e2  on e1.ManagerId = e2.Id and e1.Salary > e2.Salary

5.超過5名學生的課

信息:

有一個courses 表 ,有: student (學生) 和 class (課程)。

請列出所有超過或等于5名學生的課。

例如,表:

studentclass
AMath
BEnglish
CMath
DBiology
EMath
FComputer
GMath
HMath
IMath

要求

應該輸出:

class
Math
  • Note:
    學生在每個課中不應被重復計算。

答案

select class
from courses
group by class
having count(DISTINCT student) >= 5;

6.有趣的電影

信息

某城市開了一家新的電影院,吸引了很多人過來看電影。該電影院特別注意用戶體驗,專門有個 LED顯示板做電影推薦,上面公布著影評和相關電影描述。

作為該電影院的信息部主管,您需要編寫一個 SQL查詢,找出所有影片描述為非 boring (不無聊) 的并且 id 為奇數 的影片,結果請按等級 rating 排列。

例如,下表 cinema:

idmoviedescriptionrating
1Wargreat 3D8.9
2Sciencefiction8.5
3irishboring6.2
4Ice songFantacy8.6
5House cardInteresting9.1

要求

對于上面的例子,則正確的輸出是為:

idmoviedescriptionrating
5House cardInteresting9.1
1Wargreat 3D8.9

答案

select id,movie, description, rating
from cinema
where description  !='boring' and id %2=1
order by rating desc;

7.交換工資(updeta,條件判斷)

基本信息

給定一個 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交換所有的 f 和 m 值(例如,將所有 f 值更改為 m,反之亦然)。要求只使用一個更新(Update)語句,并且沒有中間的臨時表。

注意,您必只能寫一個 Update 語句,請不要編寫任何 Select 語句。

例如:

idnamesexsalary
1Am2500
2Bf1500
3Cm5500
4Df500

要求

運行你所編寫的更新語句之后,將會得到以下表:

idnamesexsalary
1Af2500
2Bm1500
3Cf5500
4Dm500

答案

UPDATE salary 
SET sex=IF(sex='f','m','f');

8從不訂購的客戶

信息

某網站包含兩個表,Customers 表和 Orders 表。編寫一個 SQL 查詢,找出所有從不訂購任何東西的客戶。

Customers 表:

IdName
1Joe
2Henry
3Sam
4Max

Orders 表:

IdCustomerId
13
21

要求

例如給定上述表格,你的查詢應返回:

Customers
Henry
Max

答案

使用的not in

select Name as Customers
from Customers
where Customers.Id not in (select Customers.Id from Orders where Customers.Id = Orders.CustomerId);

使用的not exists

select Name as Customers
from Customers
where  not exists (select * from Orders where Customers.Id = Orders.CustomerId);

9.上升的溫度(mysql函數to_days)

信息

給定一個 Weather 表,編寫一個 SQL 查詢,來查找與之前(昨天的)日期相比溫度更高的所有日期的 Id。

Id(INT)RecordDate(DATE)Temperature(INT)
12015-01-0110
22015-01-0225
32015-01-0320
42015-01-0430

例如,根據上述給定的 Weather 表格,返回如下 Id:

要求

Id
2
4

答案

select w1.Id 
from weather as w1,weather as w2
where w1.Temperature > w2.Temperature and to_days(w1.RecordDate)-to_days(w2.RecordDate)=1;

10.刪除重復的郵箱

信息

編寫一個 SQL 查詢,來刪除 Person 表中所有重復的電子郵箱,重復的郵箱里只保留 Id 最小 的那個。

IdEmail
1john@example.com
2bob@example.com
3john@example.com
  • Id 是這個表的主鍵。

要求

例如,在運行你的查詢語句之后,上面的 Person 表應返回以下幾行:

IdEmail
1john@example.com
2bob@example.com

答案

delete p1
from Person p1, Person p2
where p1.Id>p2.Id and p1.Email = p2.Email;

11.員工獎金(null的應用)

信息

select all employee’s name and bonus whose bonus is < 1000.

Table:Employee

empIdnamesupervisorsalary
1John31000
2Dan32000
3Bradnull4000
4Thomas34000

empId is the primary key column for this table.
Table: Bonus

empIdbonus
2500
42000
  • empId is the primary key column for this table.

要求

Example ouput:

namebonus
Johnnull
Dan500
Bradnull

選出所有獎金<1000元的雇員姓名及獎金數額

答案:

select name, bonus
from Employee e left join Bonus b
on e.empId = b.empId
where bonus < 1000 or bonus is null

12.查找訂單最多的用戶

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273848.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273848.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273848.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA學習資料整理

今天偶然間發現之前一個群里發過的一篇關于JAVA學習資料的東西。本著服務大眾的精神&#xff0c;搬來了博客園&#xff1a; 《JAVA編程思想》第四版&#xff08;英文原版&#xff09;下載地址&#xff1a;http://115.com/file/e7fzi0fm《JAVA開發實戰經典》下載地址&#xff1a…

mysql快速了解

文章目錄數據庫了解&#xff1a;快速操作&#xff1a;安裝mysql啟動,關閉,重啟mysql服務連接mysql的root用戶創建數據庫刪除數據庫選擇數據庫mysql 數據類型MySQL 創建數據表MySQL 刪除數據表MySQL 插入數據MySQL 查詢數據MySQL WHERE 子句BINARY 關鍵字MySQL UPDATE 更新批量更…

javascript編程風格(粗略筆記)

1、空格 緊湊型&#xff1a;    project.MyClass function(arg1, arg2){  松散型&#xff1a;    for( i 0; i < length; i ){ 2、代碼行長度  最多80個字符 3、命名: 采用駝峰式方法命名(開始的第一個單詞小寫&#xff0c;之后的所有單詞首字母大寫)  var …

數據結構 面試題

文章目錄1.數組1.1 尋找數組中第二小的元素1.2 找到數組中第一個不重復出現的整數1.3合并兩個有序數組1.4 重新排列數組中的正值和負值2.棧2.1 前綴表達式&#xff0c;中綴表達式&#xff0c;后綴表達式2.1.1 中綴表達式轉化為后綴表達式2.1.2 中綴表達式轉化為前綴表達式2.2使…

WPF之無法觸發KeyDown或者KeyUp鍵盤事件

有時候我們可能在Panel(StackPanel、Canvas、Grid)上或者是在一些默認不支持Focus的控件上添加了KeyDown或者KeyUp&#xff0c;可是殘酷的現實告訴我們&#xff0c;這是無法觸發的&#xff0c;怎么辦呢&#xff0c;很簡單&#xff0c;只需一句代碼。 private void MouseLeftBut…

宣布在日本地區正式發布 Windows Azure

&#xfeff;&#xfeff;昨天&#xff0c;我與 Microsoft 日本的集團副總裁 Yasuyuki Higuchi 一同站在臺上&#xff0c;宣布在兩個新地區正式發布 Windows Azure&#xff1a;日本東部和日本西部。能夠親自見證 Microsoft 對日本市場的持續承諾&#xff0c;對我來說是莫大的榮…

運行cmd狀態下MySQL導入導出.sql文件

MySQL導入導出.sql文件步驟如下&#xff1a; 一.MySQL的命令行模式的設置&#xff1a; 桌面->我的電腦->屬性->環境變量->新建-> PATH“&#xff1b;path\mysql\bin;”其中path為MySQL的安裝路徑。 二.簡單的介紹一下命令行進入MySQL的方法&#xff1a; 1.C:\&g…

python中的collections

文章目錄deque(雙向列表)defaultdict(為不存在的key設置默認值)OrderedDictOrderedDict可以實現一個FIFO&#xff08;先進先出&#xff09;的dict&#xff0c;Counter參考collections是Python內建的一個集合模塊&#xff0c;提供了許多有用的集合類。deque(雙向列表) 使用list…

mysql 面試點

文章目錄mysql 運算符1.mysql運算符中的 !和Not的區別&#xff1f;CRUD1.條件判斷的用法2. not exits 和not in 的區別3. case when語句mysql函數1.to_days()連接1.什么時候選擇右連接&#xff0c;什么時候選擇左連接&#xff1f;mysql 運算符 1.mysql運算符中的 !和Not的區別…

[Windows Phone] 實作不同的地圖顯示模式

[Windows Phone] 實作不同的地圖顯示模式 原文:[Windows Phone] 實作不同的地圖顯示模式前言 本文章主要示范如何讓地圖有不同的模式產生&#xff0c;例如平面圖、地形圖、鳥瞰圖、鳥瞰圖含街道等。 這部分主要是調整 Map.CartographicMode 屬性&#xff0c;其中 MapCartograph…

數據庫 CURD測試題【中等】

文章目錄1.換座位&#xff08;交換相鄰的id&#xff09;基本信息要求答案[case when]2.分數排名(分組&#xff0c;排序)基本信息要求答案3.連續出現的數字(連接)信息要求答案4.第N高的薪水(函數)信息要求答案5.各個部門工資最高的員工(分組&#xff0c;連接)信息要求答案6.統計…

[STemWin教程入門篇]第一期:emWin介紹

特別說明&#xff1a;原創教程&#xff0c;未經許可禁止轉載&#xff0c;教程采用回復可見的形式&#xff0c;謝謝大家的支持。 armfly-x2,x3,v2,v3,v5開發板裸機和帶系統的emWin工程已經全部建立&#xff0c;鏈接如下&#xff1a; http://bbs.armfly.com/read.php?tid1830 SE…

python 棧【測試題】

文章目錄1.刪除最外層的括號信息要求答案2.棒球比賽信息示例答案3. 用棧實現隊列要求說明:答案4.用隊列模擬棧描述注意答案5.下一個更大的元素&#xff08;未解&#xff09;信息&#xff1a;示例&#xff1a;注意:答案&#xff1a;6.刪除字符串中的所有相鄰重復項信息示例&…

python從socket做個websocket的聊天室server

下面的是server端&#xff1a;把IP改成自己的局域網IP&#xff1a; #coding:utf8 import socket,select import SocketServer import hashlib,base64,time from pprint import pprint#author:lijim def f(key):skey"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"sha1hashli…

python進階(第三章1) 字典

文章目錄3.1 泛映射類型什么是可散列的數據類型&#xff08;鍵的要求&#xff09;字典的構造方法3.2 字典推導(dictcomp)3.3 常見的映射方法用setdefault處理找不到的鍵3.4 映射的彈性鍵查詢3.4.1 defaultdict:處理找不到的鍵的一個選擇注意&#xff1a;defaultdict與dict實例化…

python基礎 list和tuple

文章目錄一、list1、len()函數可以獲得list元素的個數2、索引從0開始3、末尾追加 append(xx)4、也可以把元素插入到指定的位置&#xff0c;比如索引號為1的位置(insert)5、末尾刪除pop() &#xff0c;并且返回該值6、要刪除指定位置的元素&#xff0c;用pop(i)方法&#xff0c;…

HDU 2818 Building Block

題目連接 http://acm.hdu.edu.cn/showproblem.php?pid2818 題意:給定N個blocks&#xff0c;分在N個堆里&#xff0c;然后又P個操作&#xff0c;每次將x所在的堆放在y所在的堆上&#xff0c;或者詢問x的下面有幾個blocks 做法&#xff1a;帶權并查集 因為要查詢x的下面有多少bl…

百度社會化分享組件使用問題

今天下午玩了玩百度的社會化分享sdk,我是在這下載的sdk http://developer.baidu.com/frontia/sdk 誰知道這個下載鏈接是沒更新的,還是1.0版本的,是尼瑪13年初的版本 搗鼓了半天各種bug 然后去百度官網重新找http://developer.baidu.com/wiki/index.php?titledocs/frontia/res…

python基礎 dict和set

文章目錄dictset4.用集合為列表去重5.集合的增 add,update6.集合的刪 discard,remove,pop,clear7 集合運算7.1 子集(<或者issubset()方法)7.2并集(|或者union()方法)7.3 交集(&或者intersection())7.4 差集(-或者difference()方法)7.5 對稱集(^或者symmetric_difference…