1.1最簡單的查詢語句
例 1-1
SQL> select * from emp;
例 1-1 結果
這裏的 * 號表示所有的列,它與在select 之後列出所有的列名是一樣的。查詢語句以分號( ; )結束。emp(employee)是一個員工表。
1.2 在查詢語句中如何選擇特定的列
在平時的使用過程中我們需要的往往只是一張表中的某一條或者某幾條數據而已,但上面查詢的結果可能看起來比較亂。如果我們指向知道若干個特定列的信息,使用select 語句很容易就可以做到。就好比我們去菜市場買東西,不會把真個市場的東西買完。例如:
買 白菜,豬肉
從 菜市場;
下面我們舉個例子:
公司的會計在每次發放工資時,她可能需要確定每個員工的工號(empno)、名字(ename)和工資(sal)。可以使用下面的語句來實現她的要求,例1-2。
例1-2
SQL> SELECT empno,ename,sal FROM emp;
--注意,這裏關鍵字SELECT、FROM,在oracle大小寫是沒有區分的
例1-2 結果
在查詢語句中選擇指定的列就是關係數據庫中所稱的投影(Project)
當然,在select關鍵字後面,你可以選擇任意的列然後用逗號隔開,而且也可以根據需要來指定顯示的順序。(一般是按照select後面列名從左到右排序),例1-3
例1-3
SQL>select sal,ename,empno from emp;
例1-3 結果
1.3 如何書寫查詢語句
oracle中規定,組成SQL的關鍵字是不能縮寫的,也就是說,你在查詢語句中不能將 select寫成sel或者selec等,不能把from寫成fro或者fr,也不能把關鍵字分開書寫,即關鍵字必須原樣書寫。
當然,可以用大寫,或小寫,或大小寫混寫來書寫SQL語句,如例1-4
例1-4
SQL>select Sal,EName,EMPNO From Emp;
例1-4 結果
注意:雖然使用沒什麼問題,但是oracle還是推薦 關鍵字 使用大寫,其他用小寫。
我們也許會發現,我們在上面的例子中,sql語句都是一句話寫成的,其實我們可以將SQL語句放在多行上,方便我們的閱讀。(語句簡單的時候看不出,當查詢的內容較多時,分行書寫的優勢就出來了。),如例1-5
例1-5
SQL> SELECT sal,ename,empno
2 FROM emp;
輸出結果:
注意:完整的SQL命令叫做語句(statement),玫瑰關鍵字和後面跟着的選項叫字句(clause),例如,“SELECT * FROM emp;"叫語句,而”SELECT *”叫子句,“FROM emp”也叫子句。
例1-6
SQL> SELECT empno,ename,sal
2 eptno,job
3 FROM emp;
例 1-6 結果
從例1-6的語句中我們可以很容易的看出:第一行和第二行爲SELECT子句,第三行爲FROM子句。例1-6的查詢結果顯示了emp表中每個員工的工號(empmo),名字(ename)、工資(sal)、部門號(deptno)和職位(job)。
1.4 列標題和數據的默認顯示格式
在文章一開始的時候,已經看到了由於字符集的不同,使日期型的顯示有些問題。爲了解決這個問題可以使用裏1-7的SQL語句。
例1-7
SQL> alter session
2 set NLS_DATE_LANGUAGE = 'AMERICAN';
例1-7 結果
爲了使顯示跟家清晰,可以使用例1-8和例1-9的SQL*PLUS格式化語句
例1-8
SQL> col hiredate for a15
例1-9
SQL> col ENAME FOR A8
注意:如果對以上SQL*PLUS命令不太理解的話,請不要緊張,後面會慢慢解釋
SQL*PLUS默認的列表標題結果顯示是:
字符和日期數據爲左對齊;
而數字型數據爲右對齊。
可以使用例1-10的例子來驗證以上的結論。
例1-10
SQL> SELECT empno,ename,sal,
2 hiredate,job
3 FROM emp;
例1-10 結果
無語,寫完文章後,保存發佈,圖沒了,非常無語。重新再編輯一邊,也發現一些語句的錯誤,已經改正
---------------------------------------------------------