MySQL基礎知識點
阿新 • • 發佈:2021-10-14
今天刷力扣題時發現我的資料庫忘得七七八八,這裡總結一些刷題時查的知識點:
- 欄位名含空格
這裡欄位名可以用單引號 ' ' 或者反引號 ` ` 括起來。
select `Cancellation Rate`
from Trips
- 比對時間區間
語法: 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
- 查詢計算欄位
語法: select 表示式 AS 欄位名
SELECT cancel/total AS `Cancellation Rate`
FROM Trips
WHERE date(Request_at) between '2013-10-01' and '2013-10-03'
- 除法保留特定小數位
- 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'
- 查詢某個欄位的重複記錄
根據A欄位分組,計數每個組的記錄數,返回組記錄數大於1的記錄
GROUP BY 欄位名: 按xx欄位分組
COUNT(欄位) : 返回記錄數,
SELECT Request_at
FROM Trips
GROUP BY Request_at
HAVING COUNT(Request_at) > 1
- 查詢只有一個欄位,而且指定欄位剛好為空時返回null
SELECT (SELECT employee_id FROM employees WHERE employee_id=10086) AS 查詢結果
- 查詢記錄裡指定列為空時預設為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