1. 程式人生 > 其它 >MySQL基礎知識點

MySQL基礎知識點

今天刷力扣題時發現我的資料庫忘得七七八八,這裡總結一些刷題時查的知識點:

  1. 欄位名含空格
    這裡欄位名可以用單引號 ' ' 或者反引號 ` ` 括起來。
select `Cancellation Rate`
from Trips
  1. 比對時間區間
    語法: date(欄位名) between '開始時間' and '結束'
SELECT Request_at as Day,`Cancellation Rate`
FROM Trips  
WHERE date(Request_at) between '2013-10-01' and  '2013-10-03'

除此之外,還有返回年份,月份,天數,星期幾,哪個季度,
可參考連結:

https://www.jb51.net/article/138562.htm

  1. 查詢計算欄位
    語法: select 表示式 AS 欄位名
SELECT cancel/total AS `Cancellation Rate`
FROM Trips  
WHERE date(Request_at) between '2013-10-01' and  '2013-10-03'
  1. 除法保留特定小數位
  • DECIMAL(有效數字數的精度,小數點後的位數)
    有四捨五入
  • TRUNCATE(expression,小數點後的位數)
    單純截斷小數點後多餘數位
# convert(a/b,decimal(15,2)) :保留15位有效數位,其中小數點後有兩位
SELECT convert(cancel/total,decimal(15,2)) AS `Cancellation Rate`
FROM Trips  
WHERE date(Request_at) between '2013-10-01' and  '2013-10-03'
  1. 查詢某個欄位的重複記錄
    根據A欄位分組,計數每個組的記錄數,返回組記錄數大於1的記錄
    GROUP BY 欄位名: 按xx欄位分組
    COUNT(欄位) : 返回記錄數,
SELECT Request_at
FROM Trips  
GROUP BY Request_at
HAVING COUNT(Request_at) > 1
  1. 查詢只有一個欄位,而且指定欄位剛好為空時返回null
SELECT (SELECT employee_id FROM employees WHERE employee_id=10086) AS 查詢結果
  1. 查詢記錄裡指定列為空時預設為null,可以自定義null值為0(通常用於計算)
SELECT Request_at,IF(COUNT(Request_at),COUNT(Request_at) ,0) AS Total
FROM Trips  
GROUP BY Request_at
SELECT Request_at,IF(COUNT(Request_at) is null ,0) AS Total
FROM Trips  
GROUP BY Request_at
SELECT Request_at,IFNULL(COUNT(Request_at) ,0) AS Total
FROM Trips  
GROUP BY Request_at