日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ORACLE SQL:经典查询练手第二篇

發布時間:2024/9/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE SQL:经典查询练手第二篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  本文使用的實例表結構與表的數據如下:
  scott.emp員工表結構如下:
  SQL> DESC SCOTT.EMP;
  Name???? Type???????? Nullable Default Comments
  -------- ------------ -------- ------- --------
  EMPNO??? NUMBER(4)???????????????????? 員工編號
  ENAME??? VARCHAR2(10) Y??????????????? 員工姓名
  JOB????? VARCHAR2(9)? Y??????????????? 職位
  MGR????? NUMBER(4)??? Y??????????????? 上級編號
  HIREDATE DATE???????? Y??????????????? 雇傭日期
  SAL????? NUMBER(7,2)? Y??????????????? 薪金
  COMM???? NUMBER(7,2)? Y??????????????? 傭金
  DEPTNO?? NUMBER(2)??? Y??????????????? 所在部門編號
  --提示:工資 = 薪金 + 傭金
  scott.dept部門表
  SQL> DESC SCOTT.DEPT;
  Name?? Type???????? Nullable Default Comments
  ------ ------------ -------- ------- --------
  DEPTNO NUMBER(3)???????????????????? 部門編號
  DNAME? VARCHAR2(14) Y??????????????? 部門名稱
  LOC??? VARCHAR2(13) Y??????????????? 地點
  scott.emp表的現有數據如下:
  SQL> SELECT * FROM SCOTT.EMP;
  EMPNO ENAME????? JOB???????? MGR HIREDATE????????? SAL????? COMM DEPTNO
  ----- ---------- --------- ----- ----------- --------- --------- ------
  7369 SMITH????? CLERK????? 7902 1980-12-17???? 800.00?????????????? 20
  7499 ALLEN????? SALESMAN?? 7698 1981-2-20???? 1600.00??? 300.00???? 30
  7521 WARD?????? SALESMAN?? 7698 1981-2-22???? 1250.00??? 500.00???? 30
  7566 JONES????? MANAGER??? 7839 1981-4-2????? 2975.00?????????????? 20
  7654 MARTIN???? SALESMAN?? 7698 1981-9-28???? 1250.00?? 1400.00???? 30
  7698 BLAKE????? MANAGER??? 7839 1981-5-1????? 2850.00?????????????? 30
  7782 CLARK????? MANAGER??? 7839 1981-6-9????? 2450.00?????????????? 10
  7788 SCOTT????? ANALYST??? 7566 1987-4-19???? 4000.00?????????????? 20
  7839 KING?????? PRESIDENT?????? 1981-11-17??? 5000.00?????????????? 10
  7844 TURNER???? SALESMAN?? 7698 1981-9-8????? 1500.00????? 0.00???? 30
  7876 ADAMS????? CLERK????? 7788 1987-5-23???? 1100.00?????????????? 20
  7900 JAMES????? CLERK????? 7698 1981-12-3????? 950.00?????????????? 30
  7902 FORD?????? ANALYST??? 7566 1981-12-3???? 3000.00?????????????? 20
  7934 MILLER???? CLERK????? 7782 1982-1-23???? 1300.00?????????????? 10
  102 EricHu???? Developer? 1455 2011-5-26 1?? 5500.00???? 14.00???? 10
  104 huyong???? PM???????? 1455 2011-5-26 1?? 5500.00???? 14.00???? 10
  105 WANGJING?? Developer? 1455 2011-5-26 1?? 5500.00???? 14.00???? 10
  17 rows selected
  Scott.dept表的現有數據如下:
  SQL> SELECT * FROM SCOTT.DEPT;
  DEPTNO DNAME????????? LOC
  ------ -------------- -------------
  110 信息科???????? 海口
  10 ACCOUNTING???? NEW YORK
  20 RESEARCH?????? DALLAS
  30 SALES????????? CHICAGO
  40 OPERATIONS???? BOSTON
  50 50abc????????? 50def
  60 Developer????? HaiKou
  7 rows selected
  用SQL完成以下問題列表:
  1. 找出EMP表中的姓名(ENAME)第三個字母是A 的員工姓名。
  2. 找出EMP表員工名字中含有A 和N的員工姓名。
  3. 找出所有有傭金的員工,列出姓名、工資、傭金,顯示結果按工資從小到大,傭金從大到小。
  4. 列出部門編號為20的所有職位。
  5. 列出不屬于SALES 的部門。
  6. 顯示工資不在1000 到1500 之間的員工信息:名字、工資,按工資從大到小排序。
  7. 顯示職位為MANAGER 和SALESMAN,年薪在15000 和20000 之間的員工的信息:名字、職位、年薪。
  8. 說明以下兩條SQL語句的輸出結果:
  SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  9. 讓SELECT 語句的輸出結果為
  SELECT * FROM SALGRADE;
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  ……
  列出當前用戶有多少張數據表,結果集中存在多少條記錄。
  10. 判斷SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱錯,為什么?
  各試題解答如下(歡迎大家指出不同的方法或建議!):
  --------1. 找出EMP表中的姓名(ENAME)第三個字母是A 的員工姓名。---------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__A%';
  ENAME
  ----------
  ADAMS
  BLAKE
  CLARK
  -------2. 找出EMP表員工名字中含有A 和N的員工姓名。----------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%' AND ENAME LIKE '%N%';
  ENAME
  ----------
  ALLEN
  MARTIN
  WANGJING
  --------或--------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%N%';
  ENAME
  ----------
  ALLEN
  MARTIN
  WANGJING
  /*--------3. 找出所有有傭金的員工,列出姓名、工資、傭金,顯示結果按工資從小到大,
  傭金從大到小。----------*/
  SQL> SELECT ENAME,SAL + COMM AS WAGE,COMM
  2? FROM SCOTT.EMP
  3? ORDER BY WAGE,COMM DESC;
  ENAME??????????? WAGE????? COMM
  ---------- ---------- ---------
  TURNER?????????? 1500????? 0.00
  WARD???????????? 1750??? 500.00
  ALLEN??????????? 1900??? 300.00
  MARTIN?????????? 2650?? 1400.00
  EricHu?????????? 5514???? 14.00
  WANGJING???????? 5514???? 14.00
  huyong?????????? 5514???? 14.00
  SMITH
  JONES
  JAMES
  MILLER
  FORD
  ADAMS
  BLAKE
  CLARK
  SCOTT
  KING
  17 rows selected
  -------4. 列出部門編號為20的所有職位。----------
  SQL> SELECT DISTINCT JOB FROM EMP WHERE DEPTNO = 20;
  JOB
  ---------
  ANALYST
  CLERK
  MANAGER
  -------5. 列出不屬于SALES 的部門。----------
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME <> 'SALES';
  DEPTNO DNAME????????? LOC
  ------ -------------- -------------
  10 ACCOUNTING???? NEW YORK
  20 RESEARCH?????? DALLAS
  40 OPERATIONS???? BOSTON
  50 50abc????????? 50def
  60 Developer????? HaiKou
  110 信息科???????? 海口
  6 rows selected
  --或者:
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME != 'SALES';
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT IN('SALES');
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT LIKE 'SALES';
  ---6. 顯示工資不在1000 到1500 之間的員工信息:名字、工資,按工資從大到小排序。---------
  SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2? WHERE SAL + COMM NOT BETWEEN 1000 AND 1500
  3? ORDER BY WAGE DESC;
  ENAME??????????? WAGE
  ---------- ----------
  EricHu?????????? 5514
  huyong?????????? 5514
  WANGJING???????? 5514
  MARTIN?????????? 2650
  ALLEN??????????? 1900
  WARD???????????? 1750
  6 rows selected
  --或者
  SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2? WHERE SAL + COMM < 1000 OR SAL + COMM > 1500
  3? ORDER BY WAGE DESC;
  ENAME??????????? WAGE
  ---------- ----------
  EricHu?????????? 5514
  huyong?????????? 5514
  WANGJING???????? 5514
  MARTIN?????????? 2650
  ALLEN??????????? 1900
  WARD???????????? 1750
  6 rows selected
  /*----- 7. 顯示職位為MANAGER 和SALESMAN,年薪在15000 和20000 之間的員工的信息:名字、職位、年薪。----------*/
  SQL> SELECT ENAME 姓名,JOB 職位,(SAL + COMM) * 12 AS 年薪
  2? FROM SCOTT.EMP
  3? WHERE (SAL + COMM) * 12 BETWEEN 15000 AND 20000
  4? AND JOB IN('MANAGER','SALESMAN');
  姓名?????? 職位????????????? 年薪
  ---------- --------- ----------
  TURNER???? SALESMAN?????? 18000
  /*----- 8. 說明以下兩條SQL語句的輸出結果:
  SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  ----------*/
  SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  EMPNO????? COMM
  ----- ---------
  7369
  7566
  7698
  7782
  7788
  7839
  7876
  7900
  7902
  7934
  10 rows selected
  ---------------------------------------------------------------
  SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  EMPNO????? COMM
  ----- ---------
  --說明:IS NULL是判斷某個字段是否為空,為空并不等價于為空字符串或為數字0;
  --而 =NULL 是判斷某個值是否等于 NULL,NULL = NULL和NULL <> NULL都為 FALSE。
  /*-----9. 讓SELECT 語句的輸出結果為
  SELECT * FROM SALGRADE;
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  ……
  列出當前用戶有多少張數據表,結果集中存在多少條記錄。
  ----------*/
  SQL> SELECT 'SELECT * FROM '||TABLE_NAME||';' FROM USER_TABLES;
  'SELECT*FROM'||TABLE_NAME||';'
  ---------------------------------------------
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  --......等等,在此不列出。
  ---10. 語句SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱錯?---------
  SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > '1500';
  ENAME??????????? SAL
  ---------- ---------
  ALLEN??????? 1600.00
  JONES??????? 2975.00
  BLAKE??????? 2850.00
  CLARK??????? 2450.00
  SCOTT??????? 4000.00
  KING???????? 5000.00
  FORD???????? 3000.00
  EricHu?????? 5500.00
  huyong?????? 5500.00
  WANGJING???? 5500.00
  10 rows selected
  SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > 1500;
  ENAME??????????? SAL
  ---------- ---------
  ALLEN??????? 1600.00
  JONES??????? 2975.00
  BLAKE??????? 2850.00
  CLARK??????? 2450.00
  SCOTT??????? 4000.00
  KING???????? 5000.00
  FORD???????? 3000.00
  EricHu?????? 5500.00
  huyong?????? 5500.00
  WANGJING???? 5500.00
  10 rows selected
  --說明不會抱錯,這兒存在隱式數據類型的。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的ORACLE SQL:经典查询练手第二篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩一区二区在线播放 | 狠狠鲁影院 | av手机在线播放 | 欧美日韩国产二区 | 免费黄色小网站 | 日韩黄色大全 | 极品久久久 | 欧美精品电影一区二区 | 久草免费在线播放 | 男男做爰猛烈啪啪高 | 强开乳罩摸双乳吃奶羞羞www | 亚洲激情区 | 在线观看va| 国产精品呻吟 | 国产精品伦一区二区三级古装电影 | 少妇特黄一区二区三区 | 精品视频999 | 免费一级欧美 | 制服一区 | www.99re7.com| 丰满少妇大力进入 | 成人欧美在线 | 国内精品免费视频 | 欧美7777 | 天天插插 | 激情国产在线 | 6080午夜伦理 | 欧美日韩高清丝袜 | 少妇av在线 | 色狠狠一区二区三区 | 中文在线www | 婷婷综合激情网 | 亚洲综合精品 | jizz日本18 | 成人免费福利 | 亚洲无线观看 | 国产在线一二三区 | 欧美日韩人妻一区二区 | 舒淇裸体午夜理伦 | 91自啪 | 丁香婷婷在线 | 精品国产第一页 | 国产做爰xxxⅹ高潮视频12p | 911精品国产一区二区在线 | 亚洲精品久久久久久久久久 | 免费小视频在线观看 | 综合视频在线观看 | 欧美黑人添添高潮a片www | 国产网红主播精品av | 美女隐私免费 | 午夜成人免费视频 | 日本二区在线观看 | 爱av导航 | 亚洲一区高清 | 五月婷婷六月天 | 亚洲三级电影 | 老司机深夜视频 | 香蕉视频在线免费 | youjizz.com在线观看 | 一区二区国产精品 | 视频一区二区三区在线观看 | 偷偷色噜狠狠狠狠的777米奇 | 精品人妻一区二区三区在线视频 | 日本免费一区二区视频 | 久久一区精品 | 91欧美一区二区三区 | 亚洲熟妇色自偷自拍另类 | 人妻 丝袜美腿 中文字幕 | 本道久久 | 日本久久精品视频 | 李丽珍毛片 | 日韩高清影视在线观看 | 国产男女av | 久久婷婷综合国产 | 国产精品一区二区自拍 | 久热免费 | jizzjizz美国| 日本免费黄视频 | 制服一区二区 | 亚洲少妇网 | 欧美日韩国产精品一区二区 | 琪琪色18| 亚洲深爱| 成人夜晚视频 | 婷婷俺去也 | 欧美做爰爽爽爽爽爽爽 | 国产精品第56页 | 日本成人黄色片 | 看毛片的网站 | 色噜噜网站 | 91午夜精品 | 已满十八岁免费观看全集动漫 | 五月开心播播网 | 高清日韩av | av大片免费看 | 精品视频区 | 五月天欧美| av资源网站| 精品伦一区二区三区 |