liukaida 发表于 2018-10-23 09:41:13

sql的基础语句-sql的查询语句select

  SQL查询语句介绍--select语句
  1.简单的select查询语句
  1.1 查行
  SQL> select * from emp;
  1.2 查列
  SQL> select empno,ename from emp;
  1.3 关联查询
  oracle的语法:
  selecta.*,b.*from emp a,dept b where a.deptno=b.deptno;
  通用的语法:
  selecta.*,b.* from emp a join dept b on(a.deptno = b.deptno );
  1.4 排序
  A.升序排序,asc 可以省略
  selecta.*,b.* from emp a join dept b on(a.deptno = b.deptno ) order by a.empno ;
  B.降序排序,desc
  selecta.*,b.* from emp a join dept b on(a.deptno = b.deptno ) order by a.empno desc;
  C.混合排序
  selecta.*,b.* from emp a join dept b on(a.deptno = b.deptno ) order by b.deptno desc,a.empno asc;
  在第一个字段排序的基础上,有分组,在组内,使用第二个字段进行排序
  使用select列表中显示的第八个字段和第一个字段作混合排序
  selecta.*,b.* from emp a join dept b on(a.deptno = b.deptno ) order by 8 desc,1 asc;
  注意:
  排序的字段不一定要出现在select列表中:
  select a.ename,b.deptno from emp a join dept b on(a.deptno = b.deptno ) order by empno desc;
  用字段或者表达式的别名来排序
  select a.ename,a.mgr,a.empno,(a.sal*12) asannsal from emp a order by annsal;
  1.5 分组
  select b.deptno,b.dname,sum(a.sal)
  from emp a,dept b
  where a.deptno=b.deptno
  group by b.deptno,b.dname
  order by b.deptno desc
  group by后面的字段= select列表中除了聚合函数以外的所有显示字段
  求每个部分的总工资,人数,最高工资,最低工资,平均工资
  select b.deptno,b.dname,sum(a.sal),count(a.empno),max(a.sal),min(a.sal),round(avg(a.sal))
  from emp a,dept b
  where a.deptno=b.deptno
  group by b.deptno,b.dname
  order by b.deptno desc
  注意:
  (1) group by 后面的字段 = select列表中除了聚合函数以外的所有显示字段
  (2) order by 要出现group by的后面
  (3) sum(a.sal),count(a.empno),max(a.sal),min(a.sal),round(avg(a.sal))都叫做聚合函数
  (4)分组操作一定有聚合函数的参与

页: [1]
查看完整版本: sql的基础语句-sql的查询语句select