天天看點

Oracle查詢練習我的Oracle資料庫學習筆記

我的Oracle資料庫學習筆記

Day 6 查詢練習

文章目錄

  • 我的Oracle資料庫學習筆記
        • 查詢20号部門中工資低于1500的員工(編号,姓名,職位,工資,部門編号)
        • 查詢10号和20号部門中工資高于1000的員工資訊(編号,姓名,職位,工資,部門編号)
        • 查詢員工姓名以'A'開頭或以‘M'開頭的員工資訊(編号,姓名,職位,工資,部門編号)
        • 查詢員工姓名不以'A'開頭同時不以‘M'開頭的員工資訊(編号,姓名,職位,工資,部門編号)
        • 查詢10部門和20部門中職位為‘CLERK'的員工資訊(編号,姓名,職位,部門編号)
        • 查詢職位為’CLERK'的員工資訊,同時此員工不是10号也不是20部門的員工(編号,姓名,職位,部門編号)
        • 查詢10部門中沒有獎金的員工資訊(編号,姓名,職位,工資,獎金,部門編号)
        • 查詢語句
        • 查詢所有員工的資訊
        • 查詢所有部門的資訊
        • 查詢所有工資等級
        • 投影查詢 select 列名清單 from 表名; --列名清單部分使用逗号分隔
        • 查詢所有員工的資訊 (編号,姓名,職位,工資,所在部門編号)
        • 查詢所有員工的資訊(編号,姓名,職位,上級編号,工資)
        • 給查詢的列名起 “别名”,以别名顯示在結果集中 : 列名 [as] 别名
        • 查詢所有員工的資訊 (編号,姓名,職位,工資,所在部門編号)
        • 可以在查詢語句中使用表達式
        • 查詢員的的年薪(編号,姓名,年薪)
        • 查詢員的資訊,(編号,姓名,年薪,公司名稱【‘ORACLE公司’】)

查詢20号部門中工資低于1500的員工(編号,姓名,職位,工資,部門編号)

select empno,ename,job,sal,deptno
 from emp
 where deptno=20 and sal<1500;
           

查詢10号和20号部門中工資高于1000的員工資訊(編号,姓名,職位,工資,部門編号)

select empno,ename,job,sal,deptno
 from emp
 where deptno=20 or deptno=10 and sal>1000; --(20部門中所有員工及10号部門中工資高于1000的員工)
 where (deptno=20 or deptno=10) and sal>1000; --條件正确
-- where deptno=20 and sal>1000 or deptno=10 and sal>1000; --條件正确
           

查詢員工姓名以’A’開頭或以‘M’開頭的員工資訊(編号,姓名,職位,工資,部門編号)

select empno,ename,job,sal,deptno
 from emp
 where ename like 'A%' or ename like 'M%';
           

查詢員工姓名不以’A’開頭同時不以‘M’開頭的員工資訊(編号,姓名,職位,工資,部門編号)

select empno,ename,job,sal,deptno
from emp
where ename not like 'A%' and ename not like 'M%';
--
select empno,ename,job,sal,deptno
from emp
where not (ename like 'A%' or ename like 'M%');
           

查詢10部門和20部門中職位為‘CLERK’的員工資訊(編号,姓名,職位,部門編号)

select empno,ename,job,deptno
 from emp
 where deptno in(10,20)and job ='CLERK';
           

查詢職位為’CLERK’的員工資訊,同時此員工不是10号也不是20部門的員工(編号,姓名,職位,部門編号)

select empno,ename,job,deptno
 from emp
 where deptno not in(10,20)and job ='CLERK';
 --
 select empno,ename,job,deptno
 from emp
 where not (deptno =10 or deptno=20) and job='CLERK';
 --
 select empno,ename,job,deptno
 from emp
 where deptno !=10 and deptno!=20 and job='CLERK';
           

查詢10部門中沒有獎金的員工資訊(編号,姓名,職位,工資,獎金,部門編号)

select empno,ename,job,sal,comm,deptno
from emp
where deptno=10 and comm is null;
           

Scott使用者下的表:

1 emp 員工表

字段:empno (員工編号) ,ename(員工姓名),job(職位),mgr(上級編号),hiredate(入

職日期)

sal(月工資),comm(獎金),deptno(部門編号)

2 dept 部門表

字段: deptno(部門編号) ,dnanme(部門名稱), loc(部門位址)

3 salgrade 工資等級表

grade (工資等級) ,losal(最低工資) ,hisal(最高工資)

查詢語句

文法:

select 列名清單 from 表名
           

查詢的結果以表的方式 ,稱為:結果集。

查詢所有行所有列的資料 :select * from 表名;

查詢所有員工的資訊

查詢所有部門的資訊

查詢所有工資等級

投影查詢 select 列名清單 from 表名; --列名清單部分使用逗号分隔

查詢所有員工的資訊 (編号,姓名,職位,工資,所在部門編号)

select empno,ename,job,sal,deptno
 from emp;
           

查詢所有員工的資訊(編号,姓名,職位,上級編号,工資)

select empno,ename,job,mgr,sal
 from emp;
           

給查詢的列名起 “别名”,以别名顯示在結果集中 : 列名 [as] 别名

查詢所有員工的資訊 (編号,姓名,職位,工資,所在部門編号)

select empno as 員工編号, ename as 姓名, job as 職位, sal as 工資, deptno as 部門編
号
 from emp;
           
-- 與上面效果相同
 select empno 員工編号, ename 姓名, job 職位, sal 工資, deptno 部門編号
 from emp;
           

可以在查詢語句中使用表達式

查詢員的的年薪(編号,姓名,年薪)

select empno ,ename , sal *12 yearSal
 from emp;
           

查詢員的資訊,(編号,姓名,年薪,公司名稱【‘ORACLE公司’】)

select empno,ename,sal*12 yearsal, 'ORACLE公司' 公司名稱
 from emp;