zoukankan      html  css  js  c++  java
  • 基本查询语句

    -- 实验四 数据库SQL语言基础编程
    -- 实验目的:
    --  掌握数据库查询语句的编写方法
    --  掌握利用查询语言完成基本查询
    --  掌握利用SQL语句完成数据的添加、删除、修改操作
    -- 实验内容:
    -- 一、简单查询
    -- 编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现
     
    --  查询员工表与部门表的笛卡尔积
         select empno,ename,dname
         from emp,dept
         where emp.deptno=dept.deptno;

    --  在上述操作的基础上完成连接的选择操作和投影操作
         select empno,ename,dname
         from emp
         JOIN dept ON emp.deptno=dept.deptno;

         select empno,ename,dname
         from EMP
         LEFT JOIN dept ON emp.deptno=dept.deptno;

         select empno,ename,dname
         from emp
         RIGHT JOIN dept ON emp.deptno=dept.deptno;

         select empno,ename,dname
         from emp
         FULL JOIN dept ON emp.deptno=dept.deptno;

         select count(empno),
                dname
         from emp
         FULL JOIN dept ON emp.deptno=dept.deptno
         GROUP BY emp.deptno,dname;
    --  --  对查询数据进行排序操作
          select count(empno),
                 nvl(dname,'OTHER')
           from emp
           FULL JOIN dept ON emp.deptno=dept.deptno
           GROUP BY emp.deptno,dname;

    -- -- 编写查询语句,完成对员工信息、部门情况等的基本查询
    -- --  查询工资超过2500的员工基本信息
     
           select * from emp  where  sal>2500
         
     
    -- --  查询月总收入超过2500的员工基本信息
           
             select * from emp
             where  sal+nvl(comm,0) >2500;
                   
    -- --  查询工资超过2500的员工的姓名及其所在部门名称
         
           select empno,
                  ename,
                  sal,
                  nvl(comm,0) as comm,
                  sal+nvl(comm,0) incoming
            from emp
            where sal>2500
           ORDER BY incoming desc,ename asc;
    -- --  查询所有员工的工资、奖金、总收入,并按部门编号排序
    select empno,
                  ename,
                  sal,
                  comm,
                  sal+nvl(comm,0) incoming,
                  deptno
            from emp
            order by deptno;
    -- --  查询全公司的平均工资、最高工资、最低工资和总奖金数。
      select sum(sal) sum_sal,
             max(sal) max_sal,
             min(sal) min_sal,
             sum(sal+nvl(comm,0)) sum_incoming,
             max(sal+nvl(comm,0)) max_incoming,
             min(sal+nvl(comm,0)) min_incomingg
       from emp;
    --  -- 二、分组查询
    -- -- 编写分组查询语句,理解分组查询的意义
      select MAX(empno),
             MIN(ename),
             SUM(sal),
             AVG(nvl(comm,0)) as avg_comm,
             avg(sal+nvl(comm,0)) avg_incoming,
             deptno
       from emp
       GROUP BY deptno
       ORDER BY deptno;
    -- -- 编写分组查询语句,实现分组查询的应用
    select empno,
           ename,
           sal,
           comm,
           sal+nvl(comm,0) incoming,
           deptno
     from emp
     ORDER BY deptno;


    select MAX(empno),
             MIN(ename),
             SUM(sal),
             AVG(nvl(comm,0)) as avg_comm,
             avg(sal+nvl(comm,0)) avg_incoming,
             deptno
       from emp
       where sal+nvl(comm,0)>2000
       GROUP BY deptno
       ORDER BY deptno;
          
    select MAX(empno),
             MIN(ename),
             SUM(sal),
             AVG(nvl(comm,0)) as avg_comm,
             avg(sal+nvl(comm,0)) avg_incoming,
             deptno
       from emp
       GROUP BY deptno
       HAVING avg(sal+nvl(comm,0))>2000
       ORDER BY deptno;
          
    -- -- 三、增删改语句
    -- -- 添加数据

    insert into emp values(1234,'tang','teacher',null,'01-SEP-96',null,null,null);
     insert into emp values(empno,ename,job,hiredate,sal) values(1234,'tang','teacher','01-SEP-96','980');
    -- -- 修改数据
    update emp set sal=1080 where empno=1234;
    update emp set (sal=980,comm=100) where empno=1234;
    -- -- 删除数据
    delete from emp where empno=1234;
    delete from emp where empno=20;

  • 相关阅读:
    连续两天写论文
    既然杂事比较多,索性统统处理一下
    Power symbol
    不要被一些无谓的事情烦扰
    今天提前回去吧,整理一下,为下周做好准备。
    天气暖和了,我却感冒了
    每天回想一下,今天到底完成了什么
    opensue12.1硬盘升级安装12.2问题解决
    IPmsg(飞鸽传书)协议翻译
    关于交叉验证和过拟合
  • 原文地址:https://www.cnblogs.com/CQ--0101/p/10042420.html
Copyright © 2011-2022 走看看