Oracle 學習之SQL(一) 使用SELECT檢索資料

來源:互聯網
上載者:User

標籤:select sql

SELECT能幹什嗎?

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/A9/wKiom1XV-dXjc32KAAHWZqCVaRI172.jpg" title="01.PNG" alt="wKiom1XV-dXjc32KAAHWZqCVaRI172.jpg" />

Projection:查詢表中指定列。

Selection:查詢表中指定行。

Join:表與表之間做串連,要查看的資料放在多張表中,並且表與表之間的資料有關係。


SELECT 語句的基本文法:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/A5/wKioL1XV_T2jDhTkAABw_aCG5UE334.jpg" title="02.PNG" alt="wKioL1XV_T2jDhTkAABw_aCG5UE334.jpg" />

SELECT 關鍵字後指定需要顯示的列。

FROM 關鍵字後面指定包含這些列的表。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/71/A5/wKioL1XV_f-QYY1IAAFFxnN4V60467.jpg" title="03.PNG" alt="wKioL1XV_f-QYY1IAAFFxnN4V60467.jpg" />

為了示範SELECT命令,我們需要使用sqlplus登入到資料庫。

切換到Oracle使用者,用如下命令解鎖scott使用者並將密碼設定成tiger

[[email protected] ~]# su - oracle 11gdg1-> sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 14 09:59:36 2015Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> alter user scott account unlock identified by tiger;User altered.

以下所有示範都是使用scott使用者,登入scott使用者。

SQL> conn scott/tigerConnected.


樣本一、選擇所有列

SQL> select * from dept;    DEPTNO DNAME      LOC---------- ------------------------------------------ ---------------------------------------10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON


樣本二、選擇指定列

SQL> select deptno,dname from dept;    DEPTNO DNAME---------- ------------------------------------------10 ACCOUNTING20 RESEARCH30 SALES40 OPERATIONS

列與列之間用逗號隔開,結果顯示的順序與SELECT後欄位的順序一致。


SQL語句編寫規則

  • 大小寫不敏感。

  • 語句可以佔用一行或者多行。

  • 關鍵字不能被省略,或者拆分成多行。

  • 通常情況子句獨佔一行。

  • 使用縮排增加語句的可讀性。

  • 在sqlplus或者其他工具中,每個語句結束需要加上一個分號。告訴用戶端,你的語句結束了。


SELECT 可以在整形或者日期類型的欄位上做算術運算

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/A5/wKioL1XWAzLgDLyMAACd2sc2XEs517.jpg" title="04.PNG" alt="wKioL1XWAzLgDLyMAACd2sc2XEs517.jpg" />

樣本三、顯示員工的姓名、工資及工資+300

SQL> select ename,sal,sal+300 from emp;

運算子的優先順序

跟數學中的概念一樣,乘除優先於加減,可以使用括弧改變優先順序

樣本四、

SQL> select ename,sal,sal*12+300 from emp;ENAME      SAL SAL*12+300------------------------------ ---------- ----------SMITH      8009900ALLEN     1600      19500WARD     1250      15300JONES     2975      36000
SQL> select ename,sal,sal*(12+300) from emp;ENAME      SAL SAL*(12+300)------------------------------ ---------- ------------SMITH      800249600ALLEN     1600499200WARD     1250390000JONES     2975928200MARTIN     1250390000

NULL值

SQL> select ename,sal,comm from emp;ENAME      SALCOMM------------------------------ ---------- ----------SMITH      800ALLEN     1600 300WARD     1250 500JONES     2975MARTIN     12501400BLAKE     2850CLARK     2450SCOTT     3000KING     5000TURNER     1500   0ADAMS     1100JAMES      950FORD     3000MILLER     1300

我們看到COMM列下的資料有些是空著的。這個是一個特殊的值,我們稱之為NULL。

null可以理解成一個不確定的、不可得的、未知的數。這個數不等於任何數,包含null自身。

null並不是0或者空格。

樣本五、null作用於任何算術運算子後,其結果都是null

SQL> select ename,sal,sal+comm,sal-comm,sal*comm from emp;ENAME      SAL   SAL+COMM   SAL-COMM   SAL*COMM------------------------------ ---------- ---------- ---------- ----------SMITH      800ALLEN     16001900   1300     480000WARD     12501750    750     625000JONES     2975MARTIN     12502650   -150    1750000


列別名

SQL> select ename xingming,sal as gongzi,sal*12 "Annual salary" from emp;XINGMING   GONGZI Annual salary------------------------------ ---------- -------------SMITH      800   9600ALLEN     1600  19200WARD     1250  15000

列串連

使用||將兩個字串串連起來。

SQL> select ename||job  from emp;ENAME||JOB---------------------------------------------------------SMITHCLERKALLENSALESMAN

文字字串,使用‘‘括起來

SQL> select ename||‘ is a ‘||job as "Employee Detail" from emp;Employee Detail---------------------------------------------------------------------------SMITH is a CLERKALLEN is a SALESMANWARD is a SALESMAN



本文出自 “叮咚” 部落格,請務必保留此出處http://lqding.blog.51cto.com/9123978/1686704

Oracle 學習之SQL(一) 使用SELECT檢索資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.