Oracle從入門到精通 關於簡單查詢的問題
阿新 • • 發佈:2018-07-03
oracle http 同時 操作 png mark sql rom mage 視頻課程:李興華 Oracle從入門到精通視頻課程
學習者:陽光羅諾
視頻來源:51CTO學院
如果要進行查詢,肯定使用的時DML中的查詢部分支持,相對於簡單查詢而言,通俗的理解,就是全部記錄都查詢,但是可以通過語法控制列的顯示與否。 簡單查詢的SQL語法結構如下所示: ②SELECT [DISTINCT] * |列[別名],別[別名],…….①FROM 表名稱[別名]; 兩者在執行的順序上是先從①開始執行,然後再去執行② 舉例:如果再select子句之中使用了“*”表示的是查詢一張表中的所有數據列。 範例:查詢emp表中的全部記錄 SELECT * FROM emp; 在本程序中,from子句是確定數據來源,來源只要是表結構(行與列的集合),而select子句控制的是所需要的數據列。 範例:進行數據的投影————控制所需要顯示的數據列。 查詢每個員工的編號、姓名、基本工資 語法格式: SELECT empno,ename,sal,job FROM emp; ![](http://i2.51cto.com/images/blog/201807/03/7d3aff027d278824f6971af6d095430e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 除了進行基本的查詢列之外,在簡單查詢之中也支持四則運算,並且可以直接使用列的內容進行四則運算。 要求查詢出每一個雇員的編號、姓名、基本年薪(月工資sal,年薪*12); 語法格式: SELECT empno,ename,sal*12 FROM emp; 發現此時部分的列表名稱不好看,為了達到美觀效果,可以進行別名的設置。 我們可以這樣子去寫。但是在一般情況下,**都不建議使用中文。** SELECT empno 員工編號,ename員工姓名,sal*12 年薪 FROM emp; 實際上在以後定義的數據表名稱或者是列名稱的時候中文也支持,但是你想讓你開發正常點,盡量都去使用英文。 ![](http://i2.51cto.com/images/blog/201807/03/2dd48cf236d99667b03a64f51166baf8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 實際上在進行簡單查詢的過程之中,還支持數據的連接操作,使用“||”進行連接。 範例:觀察連接。 SELECT empno || ename FROM emp; 結果圖如下: ![](http://i2.51cto.com/images/blog/201807/03/5cb68e816646d0fe52fd0f801e8b7acb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 相信這個結果圖,很多人看了肯定是這是什麽玩意?為了使得這個連接效果變得更好看一點。我們可以在中間使用一些文字描述。 例如:現在希望最終的格式是:“編號:XXX,姓名:XXX”,對於我們的編號和姓名都是通過數據表的查詢出來的數據列。針對於一些固定輸出的內容就必須進行處理,對於此部分的處理暫時只考慮使用兩種類型的數據: 普通數字:那麽直接編寫。(SELECT ename || 1 FROM emp;) ![](http://i2.51cto.com/images/blog/201807/03/bfbf86d4ede2f505c969fa6766eedbd5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 字符串:使用單引號說明。(SELECT empno || ‘hello’ FROM emp;) ![](http://i2.51cto.com/images/blog/201807/03/c772c508f582a3ca36af5fca06443813.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 範例:實現格式化輸出 語法格式: SELECT ‘編號:’ || empno || ‘姓名:’ename FROM emp; ![](http://i2.51cto.com/images/blog/201807/03/f62be5d5b627d609023d607cf58a7f4b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 在簡單查詢中,有一個DISTINCT關鍵字,此關鍵字的主要目的是消除重復內容。 範例:查詢所有雇員的職位信息。 ![](http://i2.51cto.com/images/blog/201807/03/0c3c32fbe18d0dab3f74c70fcf61142a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 在圖中,我們會發現,又很很多人一起辦公,那麽現在如果不希望在裏面出現重復的內容,那麽就可以在SELECT子句中使用DISTINCT來消除重復的內容。 語法格式: SELECT DISTINCT Job FROM emp; 結果如圖: ![](http://i2.51cto.com/images/blog/201807/03/a0ff2028b3eacb77050ccc13e91f3c5f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 註意:如果消除重復內容,指的是查詢出來的數據所有列的內容都重復查詢的結果。 範例:觀察如下查詢的結果 SELECT DISTINCT ename,Job FROM emp; 結果如下: ![](http://i2.51cto.com/images/blog/201807/03/cdb6a7c0e4a41d3525bbb9ddefb57e3e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 相信你會看到又是出現14行的數據內容。此時 因為姓名和職位沒有同時重復的內容,那麽將無法刪除掉那些重復的內容。 **總結:簡單查詢的最大特征在於:控制數據列,但是它無法進行數據列的控制。**
Oracle從入門到精通 關於簡單查詢的問題