1.簡單查詢
1.1 SELECT [DISTINCT] * | 列名稱[別名],列名稱[別名]...FROM 表名稱[別名]
首先查詢的是FROM字句,因爲必須通過FRMO字句確定來源。
如果要查看錶的所有信息,可以使用*,比如:SELECT * FROM emp; 表示查詢emp表中所有的數據。
例如:SELECT ename,empno,job,sal FROM emp; 表示從emp表中查詢ename,empo和job以及sal。
ENAME EMPNO JOB SAL
---------- ---------- ------------ ----------
SMITH 7369 CLERK 800
ALLEN 7499 SALESMAN 1600
WARD 7521 SALESMAN 1250
JONES 7566 MANAGER 2975
MARTIN 7654 SALESMAN 1250
BLAKE 7698 MANAGER 2850
CLARK 7782 MANAGER 2450
SCOTT 7788 ANALYST 3000
KING 7839 PRESIDENT 5000
TURNER 7844 SALESMAN 1500
ADAMS 7876 CLERK 1100
JAMES 7900 CLERK 950
FORD 7902 ANALYST 3000
MILLER 7934 CLERK 1300
1.2 比如要查詢job列,使用語句: SELECT job FROM emp;
JOB
------------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK
CLERK
ANALYST
CLERK
但是此時從結果中可以看出,有重複的數據,所以爲了消除重複,可以使用語句:SELECT DISTINCT job FROM emp;
JOB
------------
CLERK
SALESMAN
PRESIDENT
MANAGER
ANALYST
可是這是在查詢一個列,如果查詢多個列,只有多個列的內容全部相同,纔會消除重複。
1.3 對查詢的數據進行四則運算,比如: SELECT empno, ename, sal*12 FROM emp;
EMPNO ENAME SAL*12
---------- ---------- ----------
7369 SMITH 9600
7499 ALLEN 19200
7521 WARD 15000
7566 JONES 35700
7654 MARTIN 15000
7698 BLAKE 34200
7782 CLARK 29400
7788 SCOTT 36000
7839 KING 60000
7844 TURNER 18000
7876 ADAMS 13200
7900 JAMES 11400
7902 FORD 36000
7934 MILLER 15600
但是從結果中可以看出,SAL*12這個意思並不能表達清楚年薪的含義,所以我們可以使用別名。
例如:SELECT empno, ename, sal*12 INCOME FROM emp;
EMPNO ENAME INCOME
---------- ---------- ----------
7369 SMITH 9600
7499 ALLEN 19200
7521 WARD 15000
7566 JONES 35700
7654 MARTIN 15000
7698 BLAKE 34200
7782 CLARK 29400
7788 SCOTT 36000
7839 KING 60000
7844 TURNER 18000
7876 ADAMS 13200
7900 JAMES 11400
7902 FORD 36000
7934 MILLER 15600
可以看出,此時SAL*12變爲了INCOME我們設置的別名。但是不建議使用中文。
2.SELECT語句除了可以進行查詢以外,還能聲明常量,但是有以下三點說明:
2.1 如果是字符串,使用單引號,比如:'hello'
2.2 如果是數字,直接書寫,比如:19
2.3 如果常量是日期,按照日期風格編寫:使用"日-月-年"的格式,例如:17-12月-80
3. 直接查詢常量:比如:
SELECT '僱員', empno, ename FROM emp;
查詢結果:
'僱員' EMPNO ENAME
------------ ---------- -------
僱員 7369 SMITH
僱員 7499 ALLEN
僱員 7521 WARD
僱員 7566 JONES
僱員 7654 MARTIN
僱員 7698 BLAKE
僱員 7782 CLARK
僱員 7788 SCOTT
僱員 7839 KING
僱員 7844 TURNER
僱員 7876 ADAMS
僱員 7900 JAMES
僱員 7902 FORD
僱員 7934 MILLER
3.1 轉換顯示格式
SELECT empno||ename FROM emp;
查詢結果:
EMPNO||ENAME
-----------------
7369SMITH
7499ALLEN
7521WARD
7566JONES
7654MARTIN
7698BLAKE
7782CLARK
7788SCOTT
7839KING
7844TURNER
7876ADAMS
7900JAMES
7902FORD
7934MILLER
從顯示結果來看,將兩列合併爲了一列。
3.2準換顯示格式:
例如:僱員編號:7369,姓名:SIMTH,收入:800,假設我們要實現這種顯示效果。
很明顯,有常量字符串,也有變量。所以可以寫成查詢語句爲:
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
'僱員編號:'||EMPNO||',姓名:'||ENAME||',收入:'||SAL,此時的表名稱爲這個,很顯然,不直觀,可以爲此表明起一個別名:
SELECT '僱員編號:'||empno||', 姓名:'||ename||', 收入: '||sal Information FROM emp;
值得注意的是,別名雖然是常量字符串,但可以不用單引號進行括起來。
INFORMATION
-------------------------------------------------------------
僱員編號: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