天天看點

SQL函數1.AVG() 函數2. COUNT() 函數3.FIRST() 函數4.LAST() 函數5.MAX() 函數6.MIN() 函數7.SUM() 函數8.GROUP BY 語句9.HAVING 子句10.EXISTS 運算符11.UCASE() 函數12.LCASE() 函數13.MID() 函數14.LEN() 函數15.ROUND() 函數16.NOW() 函數17.FORMAT() 函數

score_db 表:

SQL函數1.AVG() 函數2. COUNT() 函數3.FIRST() 函數4.LAST() 函數5.MAX() 函數6.MIN() 函數7.SUM() 函數8.GROUP BY 語句9.HAVING 子句10.EXISTS 運算符11.UCASE() 函數12.LCASE() 函數13.MID() 函數14.LEN() 函數15.ROUND() 函數16.NOW() 函數17.FORMAT() 函數

score_db

student_db表:

SQL函數1.AVG() 函數2. COUNT() 函數3.FIRST() 函數4.LAST() 函數5.MAX() 函數6.MIN() 函數7.SUM() 函數8.GROUP BY 語句9.HAVING 子句10.EXISTS 運算符11.UCASE() 函數12.LCASE() 函數13.MID() 函數14.LEN() 函數15.ROUND() 函數16.NOW() 函數17.FORMAT() 函數

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;           

複制