score_db 表:

score_db
student_db表:
1.AVG() 函數
AVG() 函數傳回數值列的平均值。
擷取scoer_db 中 score的平均值
SELECT AVG(score) AS 平均分數 FROM score_db;
複制
2. COUNT() 函數
COUNT() 函數傳回比對指定條件的行數。
擷取學生表的總人數
SELECT count(name) as 學生總人數 FROM student_db;
複制
3.FIRST() 函數
FIRST() 函數傳回指定的列中第一個記錄的值。
擷取學生表第一個學生的名字
SELECT name AS Firststudent FROM student_db LIMIT 1;
複制
4.LAST() 函數
LAST() 函數傳回指定的列中最後一個記錄的值。
擷取最後一個學生的名字
SELECT name FROM student_db ORDER BY id DESC LIMIT 1;
複制
5.MAX() 函數
MAX() 函數傳回指定列的最大值。
擷取學生表中學生的最大年齡
SELECT MAX(age) AS 最大年齡 FROM student_db;
複制
6.MIN() 函數
MIN() 函數傳回指定列的最小值。
擷取學生表中學生的最小年齡
SELECT MIN(age) AS 最小年齡 FROM student_db;
複制
7.SUM() 函數
SUM() 函數傳回數值列的總數。
擷取分數表的總分數
SELECT SUM(score) AS 總分數 FROM score_db;
複制
8.GROUP BY 語句
GROUP BY 語句用于結合聚合函數,根據一個或多個列對結果集進行分組。
分組統計學生國家的數量
SELECT country,COUNT(country) FROM student_db GROUP BY country;
複制
9.HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與聚合函數一起使用。
HAVING 子句可以讓我們篩選分組後的各組資料。
篩選出成績小于80的學生
SELECT student_db.name, student_db.sex, score_db.score FROM (score_db
INNER JOIN student_db
ON score_db.sid=student_db.id)
HAVING score_db.score < 80;
複制
10.EXISTS 運算符
EXISTS 運算符用于判斷查詢子句是否有記錄,如果有一條或多條記錄存在傳回 True,否則傳回 False。
判斷是否有分數大于90分的學生
SELECT student_db.name, student_db.sex
FROM student_db
WHERE EXISTS (SELECT score FROM score_db WHERE student_db.id = score_db.sid AND score > 90);
複制
11.UCASE() 函數
UCASE() 函數把字段的值轉換為大寫。
學生表插入一條資料
INSERT INTO student_db VALUES (8, 'qwer', 18, '男', '東京', 'JA');
複制
把新增學生的名字變為大寫
SELECT UCASE(name), age,sex,city FROM student_db;
複制
12.LCASE() 函數
LCASE() 函數把字段的值轉換為小寫。
把新增學生的名字重新變為小寫
SELECT LCASE(name), age,sex,city FROM student_db;
複制
13.MID() 函數
MID() 函數用于從文本字段中提取字元。
參數 | 描述 |
---|---|
column_name | 必需。要提取字元的字段。 |
start | 必需。規定開始位置(起始值是 1)。 |
length | 可選。要傳回的字元數。如果省略,則 MID() 函數傳回剩餘文本。 |
提取學生的姓
SELECT MID(name,1,1) AS 姓 FROM student_db;
複制
14.LEN() 函數
LEN() 函數傳回文本字段中值的長度。
擷取城市名字的字元長度
SELECT name, LENGTH(city) as 城市名字長度 FROM student_db;
複制
15.ROUND() 函數
ROUND() 函數用于把數值字段舍入為指定的小數位數。
SELECT ROUND(column_name,decimals) FROM table_name;
複制
參數 | 描述 |
---|---|
column_name | 必需。要舍入的字段。 |
decimals | 必需。規定要傳回的小數位數。 |
ROUND(X):傳回參數X的四舍五入的一個整數。
select ROUND(3.1415);
複制
ROUND(X,D):傳回參數X的四舍五入的有 D 位小數的一個數字。如果D為0,結果将沒有小數點或小數部分。
select ROUND(3.1415,2);
複制
16.NOW() 函數
NOW() 函數傳回目前系統的日期和時間。
SELECT name, sex, Now() AS date FROM student_db;
複制
17.FORMAT() 函數
FORMAT() 函數用于對字段的顯示進行格式化。
SELECT FORMAT(column_name,format) FROM table_name;
參數 | 描述 |
---|---|
column_name | 必需。要格式化的字段。 |
format | 必需。規定格式。 |
SELECT name, sex, DATE_FORMAT(Now(),'%Y-%m-%d') AS date FROM student_db;
複制