旅游網(wǎng)站建設(shè)系統(tǒng)百度一下官網(wǎng)頁
第7章 系統(tǒng)預(yù)定義函數(shù)
函數(shù):代表一個(gè)獨(dú)立的可復(fù)用的功能。
和Java中的方法有所不同,不同點(diǎn)在于:MySQL中的函數(shù)必須有返回值,參數(shù)可以有可以沒有。
MySQL中函數(shù)分為:
(1)系統(tǒng)預(yù)定義函數(shù):MySQL數(shù)據(jù)庫管理軟件給我提供好的函數(shù),直接用就可以,任何數(shù)據(jù)庫都可以用公共的函數(shù)。
- 分組函數(shù):或者又稱為聚合函數(shù),多行函數(shù),表示會(huì)對表中的多行記錄一起做一個(gè)“運(yùn)算”,得到一個(gè)結(jié)果。
- 求平均值的avg,求最大值的max,求最小值的min,求總和sum,求個(gè)數(shù)的count等
- 單行函數(shù):表示會(huì)對表中的每一行記錄分別計(jì)算,有n行得到還是n行結(jié)果
- 數(shù)學(xué)函數(shù)、字符串函數(shù)、日期時(shí)間函數(shù)、條件判斷函數(shù)、窗口函數(shù)等
(2)用戶自定義函數(shù):由開發(fā)人員自己定義的,通過CREATE FUNCTION語句定義,是屬于某個(gè)數(shù)據(jù)庫的對象。
7.1 分組函數(shù)
調(diào)用完函數(shù)后,結(jié)果的行數(shù)變少了,可能得到一行,可能得到少數(shù)幾行。
分組函數(shù)有合并計(jì)算過程。
常用分組函數(shù)類型
- AVG(x) :求平均值
- SUM(x):求總和
- MAX(x) :求最大值
- MIN(x) :求最小值
- **COUNT(x) **:統(tǒng)計(jì)記錄數(shù)
- …
- 下面展示一些
內(nèi)聯(lián)代碼片
。
#演示分組函數(shù),聚合函數(shù),多行函數(shù)
#統(tǒng)計(jì)t_employee表的員工的數(shù)量
SELECT COUNT(*) FROM t_employee;
SELECT COUNT(1) FROM t_employee;
SELECT COUNT(eid) FROM t_employee;
SELECT COUNT(commission_pct) FROM t_employee;/*
count(*)或count(常量值):都是統(tǒng)計(jì)實(shí)際的行數(shù)。
count(字段/表達(dá)式):只統(tǒng)計(jì)“字段/表達(dá)式”部分非NULL值的行數(shù)。
*/#找出t_employee表中最高的薪資值
SELECT MAX(salary) FROM t_employee;#找出t_employee表中最低的薪資值
SELECT MIN(salary) FROM t_employee;#統(tǒng)計(jì)t_employee表中平均薪資值
SELECT AVG(salary) FROM t_employee;#統(tǒng)計(jì)所有人的薪資總和,財(cái)務(wù)想看一下,一個(gè)月要準(zhǔn)備多少錢發(fā)工資
SELECT SUM(salary) FROM t_employee; #沒有考慮獎(jiǎng)金
SELECT SUM(salary+salary*IFNULL(commission_pct,0)) FROM t_employee; #找出年齡最小、最大的員工的出生日期
SELECT MAX(birthday),MIN(birthday) FROM t_employee;#查詢最新入職的員工的入職日期
SELECT MAX(hiredate) FROM t_employee;
// An highlighted block
#演示分組函數(shù),聚合函數(shù),多行函數(shù)
#統(tǒng)計(jì)t_employee表的員工的數(shù)量
SELECT COUNT(*) FROM t_employee;
SELECT COUNT(1) FROM t_employee;
SELECT COUNT(eid) FROM t_employee;
SELECT COUNT(commission_pct) FROM t_employee;/*
count(*)或count(常量值):都是統(tǒng)計(jì)實(shí)際的行數(shù)。
count(字段/表達(dá)式):只統(tǒng)計(jì)“字段/表達(dá)式”部分非NULL值的行數(shù)。
*/#找出t_employee表中最高的薪資值
SELECT MAX(salary) FROM t_employee;#找出t_employee表中最低的薪資值
SELECT MIN(salary) FROM t_employee;#統(tǒng)計(jì)t_employee表中平均薪資值
SELECT AVG(salary) FROM t_employee;#統(tǒng)計(jì)所有人的薪資總和,財(cái)務(wù)想看一下,一個(gè)月要準(zhǔn)備多少錢發(fā)工資
SELECT SUM(salary) FROM t_employee; #沒有考慮獎(jiǎng)金
SELECT SUM(salary+salary*IFNULL(commission_pct,0)) FROM t_employee; #找出年齡最小、最大的員工的出生日期
SELECT MAX(birthday),MIN(birthday) FROM t_employee;#查詢最新入職的員工的入職日期
SELECT MAX(hiredate) FROM t_employee;