本文主要是介绍9、单表数据查询----第2篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对应第10章
select结果显示控制
-- 使查询后的结果没有重复的
SELECT DISTINCT dname,locFROM t_dept;-- 对某些量用数学运算
-- yearsalary是查询时的列名
SELECT ename,sal*12 AS yearsalaryFROM t_employee;-- 设置显示格式
例:
SELECT CONCAT(dname,'的序号为',deptno,'位置为',loc) AS 个人信息FROM t_dept;
条件查询
> < = != >= <=
AND OR XOR NOTWHERE 某值 BETWEEN 值1 AND 值2;
例:WHERE sal NOT BETWEEN 1000 AND 2000;IS [NOT] NULL
例:WHERE comn IS NOT NULL;带IN的集合查询
例:WHERE empno [NOT] IN (34,56,22,NULL); -- 加个NULL空值时也会显示出来-- LIKE匹配
'_'代表单个字符,'%'代表0~多个字符
例:WHERE ename [NOT] LIKE '_a%';-- 排序显示
SELECT ...FROM table_nameWHERE 条件ORDER BY field1 ASC|DESC [,field2 ASC|DESC ....]
限制查询数量
有时查询得到的结果太多,需要限制一下数量。
语法:
SELECT …..
FROM …
WHERE ……
LIMIT 起始偏移量 , 显示的行数;
-- 起始偏移量可以不写
例:
SELECT *FROM t_employeeWHERE COMM is NULLLIMIT 11; -- 设置只显示11条记录-- 起始偏移量写
SELECT *FROM t_employeeWHERE COMM is NULLORDER BY hiredateLIMIT 0,5; -- 从第1条记录开始,一共5条记录
或 LIMIT 3,5; -- 从第4条记录开始,一共5条记录
统计函数和分组
总共有句子:COUNT( )、 AVG( )、SUM( )、 MAX( )、MIN( )、GROUP BY、HAVING语句
-- 统计人数
SELECT COUNT(*) AS numberFROM t_employee;
SELECT COUNT(deptno) AS number...SELECT AVG(comm) AS average...SELECT SUM(salary) AS sumvalue...SELECT MAX(sal) AS maxsal,MIN(sal) AS minsal...-- 分组
可以按照多个指标分组
GROUP BY field1,field2....;
例子:
根据员工所在的部门号进行分组,并统计每组的人数,其中GROUP_CONCAT()是SQL函数,用来连接多个字符串。比如一个组内有aa、bb、cc三个人,用GROUP_CONCAT(ename) enames把名字连起来后形成:'aa,bb,cc'
SELECT deptno,GROUP_CONCAT(ename) enames,COUNT(ename) numberFROM t_employeeGROUP BY deptno;-- HAVING语句
例:
SELECT deptno,GROUP_CONCAT(ename) enames,COUNT(ename) numberFROM t_employeeGROUP BY deptnoHAVING AVG(sal)>2000; -- 只找平均工资大于2000的组
这篇关于9、单表数据查询----第2篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!