MySQL单表数据记录查询经典语句
2016-05-24 17:18
633 查看
1.避免重复数据查询——DISTINCT
SELECT DISTINCT job
FROM t_employee;
2.实现数学四则运算数据查询
SELECT ename,sal*12
FROM t_employee;
SELECT ename,sal*12 AS yearsalary
FROM t_employee;
3.设置显示格式数据查询
设置显示格式,以方便用户浏览所查询到的数据。
SELECT CONCAT(ename,'雇员的年薪为:',sal*12) yearsalary
FROM t_employee;
4.条件数据记录查询
SELECT ename
FROM t_employee
WHERE sal BETWEEN 1000 AND 2000;
SELECT ename
FROM t_employee
WHERE sal NOT BETWEEN 1000 AND 2000;
SELECT ename
FROM t_employee
WHERE sal IS NULL
SELECT ename
FROM t_employee
WHERE sal IS NOT NULL;
5.带LIKE关键字的模糊查询
通过通配符来实现模糊查询。通配符主要是用来实现匹配部分值的特殊字符。
通配符“_”能匹配单个字符,“%”能匹配任意长度的字符串
SELECT ename
FROM t_employee
WHERE ename LIKE '%a';
注意,在MySQL软件中不区分大小写,不仅对关键字不区分大小写,对于字段数据记录也不区分大小写。
SELECT ename
FROM t_employee
WHERE NOT ename LIKE 'A%';
SELECT ename
FROM t_employee
WHERE ename LIKE '_A%';
SELECT ename
FROM t_employee
WHERE sal LIKE '%5%';
6.排序数据记录查询
SELECT *
FROM t_employee
ORDER BY sal ASC; #按照字段sal的值对该表的所有数据记录进行升序排序
SELECT *
FROM t_employee
ORDER BY sal ASC,
hiredate DESC;
7.限制数据记录查询数量
SELECT *
FROM t_employee
WHERE comm is NULL
LIMIT 2; #设置显示数据记录数目为2
SELECT *
FROM t_employee
WHERE comm is NULL
ORDER BY hiredate LIMIT 0,5; #设置显示记录数为5,从第1条记录开始。
SELECT *
FROM t_employee
WHERE comm is NULL
ORDER BY hiredate LIMIT 5,5; #从第6条记录开始,共显示5条记录。
8.统计函数和分组数据记录查询
(1)统计数据记录条数
SELECT COUNT(*) number
FROM t_employee;
在具体使用统计函数COUNT()时,除了可以操作符号“*”外,而且还可以操作相应字段
SELECT COUNT(comm) number
FROM t_employee
WHERE NOT comm=0;
SELECT AVG(comm) average
FROM t_employee
WHERE NOT comm=0;
SELECT SUM(sal) sumvalue
FROM t_employee;
SELECT MAX(sal) maxval, MIN(sal) minval
FROM t_employee;
SELECT AVG(deptno) average, SUM(deptno) summer, MAX(deptno) maxval, MIN(deptno) minval
FROM t_dept;
9.分组数据查询——简单分组查询
SELECT *
FROM t_employee
GROUP BY deptno; #字段deptno的值只有三个,所以首先将所有数据记录按照这三个值分成三组,然后再显示每组中的一条记录。
10.分组数据查询——实现统计功能分组查询
SELECT deptno, GROUP_CONCAT(ename) enames, COUNT(ename) number
FROM t_employee
GROUP BY deptno;
10.分组数据查询——实现多个字段分组查询
SELECT deptno,hiredate, GROUP_CONCAT(ename) enames, COUNT(ename)
FROM t_employee
GROUP BY deptno,hiredate;
11.分组数据查询——实现HAVING子句限定分组查询
SELECT deptno, AVG(sal) average, GROUP_CONCAT(ename) enames, COUNT(ename) number
FROM t_employee
GROUP BY deptno
HAVING AVG(sal)>2000;
上述语句,不仅通过统计函数AVG()获得每个部门的平均工资,还通过函数GROUP_CONCAT显示出每个部门的雇员名和通过函数COUNT()统计出每个部门雇员人数。最后通过关键字HAVING进行条件的限制。
SELECT DISTINCT job
FROM t_employee;
2.实现数学四则运算数据查询
SELECT ename,sal*12
FROM t_employee;
SELECT ename,sal*12 AS yearsalary
FROM t_employee;
3.设置显示格式数据查询
设置显示格式,以方便用户浏览所查询到的数据。
SELECT CONCAT(ename,'雇员的年薪为:',sal*12) yearsalary
FROM t_employee;
4.条件数据记录查询
SELECT ename
FROM t_employee
WHERE sal BETWEEN 1000 AND 2000;
SELECT ename
FROM t_employee
WHERE sal NOT BETWEEN 1000 AND 2000;
SELECT ename
FROM t_employee
WHERE sal IS NULL
SELECT ename
FROM t_employee
WHERE sal IS NOT NULL;
5.带LIKE关键字的模糊查询
通过通配符来实现模糊查询。通配符主要是用来实现匹配部分值的特殊字符。
通配符“_”能匹配单个字符,“%”能匹配任意长度的字符串
SELECT ename
FROM t_employee
WHERE ename LIKE '%a';
注意,在MySQL软件中不区分大小写,不仅对关键字不区分大小写,对于字段数据记录也不区分大小写。
SELECT ename
FROM t_employee
WHERE NOT ename LIKE 'A%';
SELECT ename
FROM t_employee
WHERE ename LIKE '_A%';
SELECT ename
FROM t_employee
WHERE sal LIKE '%5%';
6.排序数据记录查询
SELECT *
FROM t_employee
ORDER BY sal ASC; #按照字段sal的值对该表的所有数据记录进行升序排序
SELECT *
FROM t_employee
ORDER BY sal ASC,
hiredate DESC;
7.限制数据记录查询数量
SELECT *
FROM t_employee
WHERE comm is NULL
LIMIT 2; #设置显示数据记录数目为2
SELECT *
FROM t_employee
WHERE comm is NULL
ORDER BY hiredate LIMIT 0,5; #设置显示记录数为5,从第1条记录开始。
SELECT *
FROM t_employee
WHERE comm is NULL
ORDER BY hiredate LIMIT 5,5; #从第6条记录开始,共显示5条记录。
8.统计函数和分组数据记录查询
(1)统计数据记录条数
SELECT COUNT(*) number
FROM t_employee;
在具体使用统计函数COUNT()时,除了可以操作符号“*”外,而且还可以操作相应字段
SELECT COUNT(comm) number
FROM t_employee
WHERE NOT comm=0;
SELECT AVG(comm) average
FROM t_employee
WHERE NOT comm=0;
SELECT SUM(sal) sumvalue
FROM t_employee;
SELECT MAX(sal) maxval, MIN(sal) minval
FROM t_employee;
SELECT AVG(deptno) average, SUM(deptno) summer, MAX(deptno) maxval, MIN(deptno) minval
FROM t_dept;
9.分组数据查询——简单分组查询
SELECT *
FROM t_employee
GROUP BY deptno; #字段deptno的值只有三个,所以首先将所有数据记录按照这三个值分成三组,然后再显示每组中的一条记录。
10.分组数据查询——实现统计功能分组查询
SELECT deptno, GROUP_CONCAT(ename) enames, COUNT(ename) number
FROM t_employee
GROUP BY deptno;
10.分组数据查询——实现多个字段分组查询
SELECT deptno,hiredate, GROUP_CONCAT(ename) enames, COUNT(ename)
FROM t_employee
GROUP BY deptno,hiredate;
11.分组数据查询——实现HAVING子句限定分组查询
SELECT deptno, AVG(sal) average, GROUP_CONCAT(ename) enames, COUNT(ename) number
FROM t_employee
GROUP BY deptno
HAVING AVG(sal)>2000;
上述语句,不仅通过统计函数AVG()获得每个部门的平均工资,还通过函数GROUP_CONCAT显示出每个部门的雇员名和通过函数COUNT()统计出每个部门雇员人数。最后通过关键字HAVING进行条件的限制。