按部就班學Oracle之簡單查詢

   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觀察「||」的使用    

clip_p_w_picpath002clip_p_w_picpath004clip_p_w_picpath006

因爲「,」(逗號)屬於原樣輸出的字符串,因此必須使用「」(單引號)括起來,即:在SQL語句之中,「’」(單引號)表示的是字符串

範例11要求如今的數據按照以下的格式顯示:

「僱員編號是:7369 僱員姓名是:SMITH 基本工資是:800職位是:CLERK 」

如今至關於查找:empno ename sal job字段,且使用||來鏈接,  

SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job FROM emp ;

clip_p_w_picpath008

SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job||'|' FROM emp ;

clip_p_w_picpath010

SELECT '僱員編號是:'||empno||'的僱員姓名是:'||ename||',基本工資是:'||sal||',職位是:'||job||'|'僱員信息 FROM  emp ;

clip_p_w_picpath012

重點:

     必定要記住,別名上的內容不要使用「」(單引號)括起來,而只有在SELECT子句之中出現的內容才使用「」(單引號)。

什麼叫子句?通常習慣而言,SELECT後面的叫SELECT 子句,FROM後面的叫FROM子句。

範例12

用戶(sys)鏈接到Oracle數據庫,去查詢用戶scott下的一張表emp(僱員表)的方法:  

SELECT '僱員部門編號是:'||empno||'的僱員姓名是:'||ename||',基本工資'||sal||',領導編號'||mgr||',僱員職位是:'||job||',獎金是:'||comm ||'|' as 僱員信息 FROM scott.emp ;

clip_p_w_picpath014

相關文章
相關標籤/搜索