一、统计函数
1.1 count
SELECT COUNT(*)FROM student;
SELECT COUNT(*)FROM student
WHERE math>70;
SELECT COUNT(*)FROM student
WHERE (math+english+chinese)>210;
1.2 sum
SELECT SUM(math)FROM student;
SELECT SUM(chinese)/COUNT(*) FROM student;
1.3 分组统计(group by 、having)
CREATE TABLE dept(
deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
dname VARCHAR(20)NOT NULL DEFAULT"",
loc VARCHAR(13)NOT NULL DEFAULT""
);
INSERT INTO dept VALUES(10,'ACCOUNTING','NEW YORK'),(20,'RESEARCH','DALLAS'),(30,'SALES','CHICAGO'),(40,'OPERATIONS','BOSTON');
SELECT * FROM dept;
CREATE TABLE emp2
(empno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
ename VARCHAR(20) NOT NULL DEFAULT"",
job VARCHAR(9) NOT NULL DEFAULT"",
mgr MEDIUMINT UNSIGNED,
hiredate DATE NOT NULL,
sal DECIMAL(7,2) NOT NULL,
comm DECIMAL(7,2),
deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0
);
DROP TABLE emp2;
INSERT INTO emp2 VALUES(7788,'SCOUT','CLERK',7698,'1991-9-8',1500.00,NULL,30);
INSERT INTO emp2 VALUES(7689,'SCOUT1','CLERK',7697,'1991-9-8',2000.00,NULL,20);
INSERT INTO emp2 VALUES(7690,'SCOUT2','CLERK',7699,'1991-9-8',2100.00,NULL,10);
INSERT INTO emp2 VALUES(7690,'SCOUT3','CLERK',7696,'1991-9-8',2100.00,NULL,40);
SELECT * FROM emp2;
CREATE TABLE salgrade
(
grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
losal DECIMAL(17,2) NOT NULL,
hisal DECIMAL(17,2) NOT NULL
);
INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);
INSERT INTO salgrade VALUES (5,3001,9999);
SELECT * FROM salgrade;
SELECT AVG(sal),MAX(sal),deptno
FROM emp2 GROUP BY deptno
HAVING AVG(sal)<2000;
二、 字符串函数
SELECT CHARSET(ename) FROM emp2;
SELECT CONCAT (ename,'job is',job)FROM emp2;
SELECT INSTR('chen','ping') FROM DUAL;
SELECT UCASE(ename) FROM emp2;
SELECT LCASE(ename) FROM emp2;
SELECT LEFT(ename,2) FROM emp2;
SELECT LENGTH(ename) FROM emp2;
SELECT ename,REPLACE(job,'CLERK','CLERK0')FROM emp2;
SELECT SUBSTRING(ename,1,2)FROM emp2;
SELECT LTRIM(' 去除前端空格或者后端空格 ')FROM emp2;
三、 数学函数
SELECT ABS(-10) FROM DUAL;
SELECT BIN(10) FROM DUAL;
SELECT CEILING(-1.1) FROM DUAL;
SELECT FLOOR(-1.1) FROM DUAL;
SELECT FORMAT(-1.1123456,2) FROM DUAL;
SELECT LEAST(-1.1,-10,1) FROM DUAL;
SELECT MOD(10,3) FROM DUAL;
SELECT RAND(3) FROM DUAL;
四、时间相关的函数
SELECT CURRENT_DATE() FROM DUAL;
SELECT CURRENT_TIME() FROM DUAL;
SELECT CURRENT_TIMESTAMP() FROM DUAL;
SELECT TIMEDIFF('10:11:11','06:30:30') FROM DUAL;
SELECT YEAR(NOW()) FROM DUAL;
SELECT MONTH(NOW()) FROM DUAL;
SELECT UNIX_TIMESTAMP() FROM DUAL;
SELECT FROM_UNIXTIME(1618483484,'%Y-%m-%d') FROM DUAL;
SELECT FROM_UNIXTIME(1618483484,'%Y-%m-%d %H-%m-%s' ) FROM DUAL;
五、加密函数和系统函数
SELECT USER() FROM DUAL;
SELECT DATABASE() FROM DUAL;
SELECT MD5(123) FROM DUAL;
SELECT PASSWORD('123') FROM DUAL;
六、流程控制函数
SELECT IF(TRUE,'北京','上海') FROM DUAL;
SELECT IFNULL('北京','上海') FROM DUAL;
SELECT CASE
WHEN TRUE THEN 'jack'
WHEN FALSE THEN 'tom'
ELSE'mary'END