sql查询语句中的或.doc
文本预览下载声明
sql查询语句中的或
篇一:常用SQL查询语句
常用SQL查询语句
一、简单查询语句
1. 查看表结构
SQLgt;DESC emp;
2. 查询所有列
SQLgt;SELECT * FROM emp;
3. 查询指定列
SQLgt;SELECT empmo, ename, mgr FROM emp;
SQLgt;SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
4. 查询指定行
SQLgt;SELECT * FROM emp WHERE job #39;CLERK#39;;
5. 使用算术表达式
SQLgt;SELECT ename, sal*13+nvl comm,0 FROM emp;
nvl comm,1 的意思是,如果comm中有值,则nvl comm,1 comm; comm中无值,则nvl comm,1 0。
SQLgt;SELECT ename, sal*13+nvl comm,0 year_sal FROM emp; (year_sal为别名,可按别名排序)
SQLgt;SELECT * FROM emp WHERE hiredategt;#39;01-1月-82#39;;
6. 使用like操作符(%,_)
%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,
[harlist]或者[!charlist]不在字符列中的任何单一字符。
SQLgt;SELECT * FROM emp WHERE ename like #39;S__T%#39;;
7. 在where条件中使用In
SQLgt;SELECT * FROM emp WHERE job IN #39;CLERK#39;,#39;ANALYST#39; ;
8. 查询字段内容为空/非空的语句
SQLgt;SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
9. 使用逻辑操作符号
SQLgt;SELECT * FROM emp WHERE salgt;500 or job #39;MANAGE#39; and ename like #39;J%#39;;
10. 将查询结果按字段的值进行排序
SQLgt;SELECT * FROM emp ORDER BY deptno, sal DESC; 按部门升序,并按薪酬降序
二、复杂查询
1. 数据分组 max,min,avg,sum,count
SQLgt;SELECT MAX sal ,MIN age ,AVG sal ,SUM sal from emp;
SQLgt;SELECT * FROM emp where sal SELECT MAX sal from emp ;
SQLgt;SELEC COUNT * FROM emp;
2. group by(用于对查询结果的分组统计) 和 having子句(用于限制分组显示结果) SQLgt;SELECT deptno,MAX sal ,AVG sal FROM emp GROUP BY deptno;
SQLgt;SELECT deptno, job, AVG sal ,MIN sal FROM emp group by deptno,job having AVG sal lt;2000;
对于数据分组的总结:
a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中) b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。
c. 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须出现在group by子句中,否则就是会出错。
使用group by不是使用having的前提条件。
3. 多表查询
SQLgt;SELECT ,e.sal,d.dname FROM emp e, dept d WHERE
e.deptno d.deptno order by d.deptno;
SQLgt;SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
4. 自连接(指同一张表的连接查询)
SQLgt;SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr ee.empno;
5. 子查询(
显示全部