RBAC、xadmin與Book系列多表群操作
在此,先準備測試資料,程式碼如下:
-- 建立資料庫
DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;
USE mydb;
-- 建立student表
CREATE TABLE student (
sid CHAR(6),
sname VARCHAR(50),
age INT,
gender VARCHAR(50) DEFAULT 'male'
);
-- 向student表插入資料
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1001', 'lili', 14, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1002', 'wang', 15, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1003', 'tywd', 16, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1004', 'hfgs', 17, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1005', 'qwer', 18, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1006', 'zxsd', 19, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1007', 'hjop', 16, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1008', 'tyop', 15, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1009', 'nhmk', 13, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1010', 'xdfv', 17, 'female');
mysql安裝:
1.聚合函式
在開發中,我們常常有類似的需求:統計某個欄位的最大值、最小值、 平均值等等。為此,MySQL中提供了聚合函式來實現這些功能。所謂聚合,就是將多行彙總成一行;其實,所有的聚合函式均如此——輸入多行,輸出一行。聚合函式具有自動濾空的功能,若某一個值為NULL,那麼會自動將其過濾使其不參與運算。
聚合函式使用規則:
只有SELECT子句和HAVING子句、ORDER BY子句中能夠使用聚合函式。例如,在WHERE子句中使用聚合函式是錯誤的。
接下來,我們學習常用聚合函式。
1.1、count()
統計表中資料的行數或者統計指定列其值不為NULL的資料個數
查詢有多少該表中有多少人
MySQL命令:
select count(*) from student;
1.2、max()
計算指定列的最大值,如果指定列是字串型別則使用字串排序運算
查詢該學生表中年紀最大的學生
MySQL命令:
select max(age) from student;
1.3、min()
計算指定列的最小值,如果指定列是字串型別則使用字串排序運算
查詢該學生表中年紀最小的學生 MySQL命令:
select sname,min(age) from student;
1.4、sum()
計算指定列的數值和,如果指定列型別不是數值型別則計算結果為0
查詢該學生表中年紀的總和 MySQL命令:
select sum(age) from student;
1.5、avg()
計算指定列的平均值,如果指定列型別不是數值型別則計算結果為
查詢該學生表中年紀的平均數 MySQL命令:
select avg(age) from student;
2.其他常用函式
這裡我就不一一舉例了,基本混個眼熟,以後用到再細說
2.1、時間函式
SELECT NOW();
SELECT DAY (NOW());
SELECT DATE (NOW());
SELECT TIME (NOW());
SELECT YEAR (NOW());
SELECT MONTH (NOW());
SELECT CURRENT_DATE();
SELECT CURRENT_TIME();
SELECT CURRENT_TIMESTAMP();
SELECT ADDTIME('14:23:12','01:02:01');
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY);
SELECT DATE_ADD(NOW(),INTERVAL 1 MONTH);
SELECT DATE_SUB(NOW(),INTERVAL 1 DAY);
SELECT DATE_SUB(NOW(),INTERVAL 1 MONTH);
SELECT DATEDIFF('2019-07-22','2019-05-05');
2.2、字串函式
--連線函式
SELECT CONCAT ()
--
SELECT INSTR ();
--統計長度
SELECT LENGTH();
2.3、數學函式
-- 絕對值
SELECT ABS(-136);
-- 向下取整
SELECT FLOOR(3.14);
-- 向上取整
SELECT CEILING(3.14);