基本查詢語句

-- 實驗四 數據庫SQL語言基礎編程
-- 實驗目的:
--  掌握數據庫查詢語句的編寫方法
--  掌握利用查詢語言完成基本查詢
--  掌握利用SQL語句完成數據的添加、刪除、修改操做
-- 實驗內容:
-- 1、簡單查詢
-- 編寫簡單查詢語句,理解笛卡爾積、選擇、投影的概念及其在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;ui

     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;date

-- -- 編寫查詢語句,完成對員工信息、部門狀況等的基本查詢
-- --  查詢工資超過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;
--  -- 2、分組查詢
-- -- 編寫分組查詢語句,理解分組查詢的意義
  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


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;
      
-- -- 3、增刪改語句
-- -- 添加數據方法

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;數據

相關文章
相關標籤/搜索