9、单表数据查询----第2篇

来源:互联网 发布:c语言必背基础程序 编辑:程序博客网 时间:2024/06/16 20:57

对应第10章

select结果显示控制

-- 使查询后的结果没有重复的SELECT DISTINCT dname,loc FROM t_dept;-- 对某些量用数学运算-- yearsalary是查询时的列名SELECT ename,sal*12 AS yearsalary FROM t_employee;-- 设置显示格式例:SELECT CONCAT(dname,'的序号为',deptno,'位置为',loc) AS 个人信息 FROM t_dept;

条件查询

>  <  =  !=  >=  <=AND  OR  XOR NOTWHERE 某值 BETWEEN 值1 AND2;例: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_name    WHERE 条件    ORDER BY field1 ASC|DESC [,field2 ASC|DESC ....]    

限制查询数量

有时查询得到的结果太多,需要限制一下数量。

语法:
SELECT …..
FROM …
WHERE ……
LIMIT 起始偏移量 , 显示的行数;

-- 起始偏移量可以不写例:SELECT *    FROM t_employee    WHERE COMM is NULL    LIMIT 11;  -- 设置只显示11条记录-- 起始偏移量写SELECT *    FROM t_employee    WHERE COMM is NULL    ORDER BY hiredate    LIMIT 0,5;  -- 从第1条记录开始,一共5条记录或   LIMIT 3,5;  -- 从第4条记录开始,一共5条记录

统计函数和分组

总共有句子:COUNT( )、 AVG( )、SUM( )、 MAX( )、MIN( )、GROUP BY、HAVING语句

-- 统计人数SELECT COUNT(*) AS number    FROM 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) number    FROM t_employee    GROUP BY deptno;-- HAVING语句例:SELECT deptno,GROUP_CONCAT(ename) enames,COUNT(ename) number    FROM t_employee    GROUP BY deptno    HAVING AVG(sal)>2000;  -- 只找平均工资大于2000的组
0 0
原创粉丝点击