SQL SELECT語句


基本SQL SELECT語句

 

1.       下面的語句是否可以執行成功

select ename , job , sal as salary  from emp;

2.       下面的語句是否可以執行成功

select  *  from emp;

3.       找出下面語句中的錯誤

select empno , ename   sal * 12  ANNUAL  SALARY  from emp;

修改后

select empno , ename ,sal * 12  "ANNUAL  SALARY" from emp;

4.       顯示表dept的結構,並查詢其中的全部數據

SQL> desc dept;

Name   Type         Nullable Default Comments

------ ------------ -------- ------- --------

DEPTNO NUMBER(2)                             

DNAME  VARCHAR2(14) Y                        

LOC    VARCHAR2(13) Y                         

 

SQL>

5.       顯示出表emp中的不重復的崗位job

 SELECT DISTINCT JOB FROM EMP;

6.       連接表emp的全部列,各個列之間用逗號連接,列頭顯示成OUT_PUT(提示:使用連接符||)  

select EMPNO|| ',' || ENAME || ',' || JOB || ',' || MGR || ',' || HIREDATE || ',' || SAL || ',' || COMM || ',' || DEPTNO as "OUT_PUT" from emp;

 

過濾和排序數據

1.       查詢工資大於1600的員工姓名和工資

select ename, sal from emp  where sal>1600;

2.       查詢員工號為7369的員工的姓名和部門號

select empno,ename,deptno from emp where empno=7369;

3.       選擇工資不在40005000的員工的姓名和工資

select ename,sal  from emp  where sal  not between 4000 and 5000;

4.       選擇雇用時間在1981-2-191981-12-3之間的員工姓名,JOB和雇用時間HIREDATE

Select ename, job, hiredate  from emp  where hiredate between to_date('1981-2-19','YYYY-mm-dd')   and  to_date('1981-12-3','YYYY-mm-dd');

5.       選擇在2030號部門工作的員工姓名和部門號

select ename,deptno from emp where deptno in(20,30);

6.       選擇在1987年雇用的員工的姓名和雇用時間

Select ename,hiredate

from emp

where hiredate  between to_date('1987-1-1','YYYY-mm-dd')

and  to_date('1987-12-31','YYYY-mm-dd');

7.       選擇公司中沒有管理者的員工姓名及JOB

select ename,job

from emp

where mgr is null;

8.       選擇公司中有獎金的員工姓名,工資和獎金

select ename,sal,comm

from emp

where comm is not null

and comm>0;

9.       選擇員工姓名的第三個字母是A的員工姓名

select ename from emp

where ename like '__A%';

10.   選擇姓名中有字母AE的員工姓名

select ename from emp

where ename like '%A%' and ename like '%E%' ;

 

單行函數

1.       顯示系統時間

select sysdate from emp;

2.       查詢員工表emp中員工號empno,姓名ename,工資sal,以及工資提高百分之20%后的結果

   select empno,ename,sal,sal*0.2+sal from scott.emp

3.       將員工的姓名按首字母排序,並寫出姓名的長度(length

   select ename  from scott.emp order by substr(ename,1,1)

4.       查詢各員工的姓名ename,並顯示出各員工在公司工作的月份數(:與當前日期比較,該員工已經工作了幾個月)

 select ename,hiredate,round((sysdate-hiredate)/30from scott.emp  order by ename

5.       查詢員工的姓名和工資,按下面的形式顯示

 

Name

Salary

SMITH

$$$$$$$$$$24000

 

select ename,sal,lpad(sal,10,'$'from scott.emp

 

6.       查詢員工的姓名ename和工資數sal,條件限定為工資數必須大於1200,並對查詢結果按月份數降序方式進行排列

select to_char(hiredate,'mm'as monthorder from scott.emp

where comm>1200

 order by monthorder

7.       做一個查詢,產生下面的結果

select ename || ' earns ' || to_char(sal,'$99,999') || ' monthly but wants ' || to_char(sal*3,'$99,999')   "Dream Salary"

  from scott.emp

<enamename> earns <sal> monthly but wants <sal*3>

 

Dream Salary

King earns $24000 monthly but wants $72000

 

 

8.       做一個查詢,產生類似下面的結果

 

Ename

HireDate

reiew

SMITH

1980-12-17

19801217

 

select ename,to_char(hiredate,'yyyy-mm-dd'as hiredate,

   to_char(hiredate,'YYYY"年"MONTH"月"DD"日"' as review

  from scott.emp

9.       使用decode函數,按照下面的條件:

job                  grade

PRESIDENT            A

MANAGER             B

ANALYST              C

SALESMAN            D

CLERK                E

產生類似下面形式的結果

 

ENAME

Job

Grade

SMITH

CLERK

E

 

select ename,job,

 DECODE(job, 'PRESIDENT''A',

             'MANAGER''B',

             'ANALYST',  'C',

             'SALESMAN''D',

             'CLERK''E'

             )

       Grade

          

 from   scott.emp

 

10.   將第9題的查詢用case函數重新實現。

 

select ename,job,

  CASE job WHEN 'PRESIDENT'  THEN 'A'

          WHEN 'MANAGER' THEN  'B'

          WHEN 'ANALYST' THEN  'C'

          WHEN 'SALESMAN' THEN  'D' 

          WHEN 'CLERK' THEN  'E'         

           END    "Grade"

          

 from   scott.emp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM