SQL(Structued Query Language,結構查詢語言)是一個功能強大的數據庫語言。SQL一般用於與數據庫通信。ANSI(美國國家標準學會)聲稱,SQL是關係數據庫管理系統的標準語言。數據庫
Oracle數據庫之因此發展的很好,主要也是由於Oracle是全世界最先採用SQL語句的數據庫產品。ide
DML(Data Manipulation Language,數據操做語言)—-用於檢索或者修改數據spa
DDL(Data Definition Language,數據定義語言)—-用於定義數據的結構,如:建立、修改或者刪除數據庫對象;對象
DCL(Data Control Language,數據控制語言)—-用於定義數據庫用戶的權限blog
簡單查詢指的是一張表中的全部的數據,簡單查詢的語法以下:ip
SELECT [DISTINCT] *| 字段 [別名] [字段 [別名]]FROM 表名稱 [別名]
範例1: 查詢dept表的所有記錄
開發
SELECT * FROM dept ;
SQL> SELECT * FROM dept ;字符串
DEPTNO DNAME LOCget
---------- -------------- -------------數學
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
範例2:查詢出第個僱員的編號、姓名、基本工資
SELECT empno,ename,sal FROM emp ;
SQL> SELECT empno,ename,sal FROM emp ;
EMPNO ENAME SAL
---------- ---------- ----------
7369 SMITH 800
7499 ALLEN 1600
7521 WARD 1250
7566 JONES 2975
7654 MARTIN 1250
7698 BLAKE 2850
7782 CLARK 2450
7788 SCOTT 3000
7839 KING 5000
7844 TURNER 1500
7876 ADAMS 1100
7900 JAMES 950
7902 FORD 3000
7934 MILLER 1300
已選擇14行。
SQL>
範例3:查詢出每一個僱員的編號、姓名、職位
SELECT empno,ename,job FROM emp ;
SQL> SELECT empno,ename,job FROM emp ;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
已選擇14行。
SQL>
範例4:查詢出每一個僱員的職位
SELECT job FROM emp ;
SQL> SELECT job FROM emp ;
JOB
---------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK
CLERK
ANALYST
CLERK
已選擇14行。
SQL>
由上可知,查詢出的job內容出現了重複的數據,而之因此數據會有重複,主要的緣由是如今沒有消除掉重複記錄,可使用DISTINCT消除掉全部的重複內容:
範例5:查詢出每一個職位的不重複的記錄
SELECT DISTINCT job FROM emp ;
SQL> SELECT DISTINCT job FROM emp ;
JOB
---------
ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN
SQL>
可是,對於重複數據,指的是一行中的每一個列的記錄重複,才叫重複數據。
範例6:查詢出每一個僱員的姓名、職位
SELECT ename,job FROM emp ;
SQL> SELECT ename,job FROM emp ;
ENAME JOB
---------- ---------
SMITH CLERK
ALLEN SALESMAN
WARD SALESMAN
JONES MANAGER
MARTIN SALESMAN
BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
TURNER SALESMAN
ADAMS CLERK
JAMES CLERK
FORD ANALYST
MILLER CLERK
已選擇14行。
SQL>
在進行簡單查詢的操做之中,也可使用各個數學的四則運算符
範例7:要求顯示每一個僱員的姓名、職位、基本年薪(incom)
SELECT ename,job,(sal*12) as income FROM emp ;
SQL> SELECT ename,job,(sal*12) as income FROM emp ;
ENAME JOB INCOME
---------- --------- ----------
SMITH CLERK 9600
ALLEN SALESMAN 19200
WARD SALESMAN 15000
JONES MANAGER 35700
MARTIN SALESMAN 15000
BLAKE MANAGER 34200
CLARK MANAGER 29400
SCOTT ANALYST 36000
KING PRESIDENT 60000
TURNER SALESMAN 18000
ADAMS CLERK 13200
JAMES CLERK 11400
FORD ANALYST 36000
MILLER CLERK 15600
已選擇14行。
SQL> SELECT ename,job,(sal*12)income FROM emp ; //as可省略!
重點:可是對於別名,建議不要使用中文,只要是程序的開發,都要回避中文,這不是中國的「易語言」。
範例8:公司福利好,每月都有200元的飯食補貼及100元車費補助,這個時候的年薪
SELECT ename,job,12*(sal+200+100) income FROM emp ;
SQL> SELECT ename,job,12*(sal+200+100) income FROM emp ;
ENAME JOB INCOME
---------- --------- ----------
SMITH CLERK 13200
ALLEN SALESMAN 22800
WARD SALESMAN 18600
JONES MANAGER 39300
MARTIN SALESMAN 18600
BLAKE MANAGER 37800
CLARK MANAGER 33000
SCOTT ANALYST 39600
KING PRESIDENT 63600
TURNER SALESMAN 21600
ADAMS CLERK 16800
JAMES CLERK 15000
FORD ANALYST 39600
MILLER CLERK 19200
已選擇14行。
SQL>
範例9:公司每一年的年末都會多發一個月的基本工資
SELECT ename,job,12*(sal+200+100)+sal income FROM emp ;
SQL> SELECT ename,job,12*(sal+200+100)+sal income FROM emp ;
ENAME JOB INCOME
---------- --------- ----------
SMITH CLERK 14000
ALLEN SALESMAN 24400
WARD SALESMAN 19850
JONES MANAGER 42275
MARTIN SALESMAN 19850
BLAKE MANAGER 40650
CLARK MANAGER 35450
SCOTT ANALYST 42600
KING PRESIDENT 68600
TURNER SALESMAN 23100
ADAMS CLERK 17900
JAMES CLERK 15950
FORD ANALYST 42600
MILLER CLERK 20500
已選擇14行。
SQL>
在簡單查詢之中也可使用「||」鏈接查詢的字段
範例10:觀察「||」的使用
因爲「,」(逗號)屬於原樣輸出的字符串,因此必須使用「’」(單引號)括起來,即:在SQL語句之中,「’」(單引號)表示的是字符串
範例11:要求如今的數據按照以下的格式顯示:
「僱員編號是:7369 僱員姓名是:SMITH 基本工資是:800職位是:CLERK 」
如今至關於查找:empno ename sal job字段,且使用||來鏈接,
SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job FROM emp ;
SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job||'|' FROM emp ;
SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job||'|'僱員信息 FROM emp ;
重點:
必定要記住,別名上的內容不要使用「’」(單引號)括起來,而只有在SELECT子句之中出現的內容才使用「’」(單引號)。
什麼叫子句?通常習慣而言,SELECT後面的叫SELECT 子句,FROM後面的叫FROM子句。
範例12:
用戶(sys)鏈接到Oracle數據庫,去查詢用戶scott下的一張表emp(僱員表)的方法:
SELECT '僱員部門編號是:'||empno||'的僱員姓名是:'||ename||',基本工資'||sal||',領導編號'||mgr||',僱員職位是:'||job||',獎金是:'||comm ||'|' as 僱員信息 FROM scott.emp ;