標籤: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語句編寫規則
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檢索資料