1.SQL語句包括:
1) 數據查詢:select
2) DML(data manipulation language):insert、update、delete、merge
3) DDL(data definition language):create、alter、drop、rename、truncate
4) 事務控制:commit、rollback、savepoint
5) DCL(數據控制語言):grant、revoke
2.基本SELECT語句
SELECT * | {[DISTINCT] column [alias],...}
FROM table;
例:SELECT deptno,loc
FROM dept;
3.顯示錶的結構
DESC[RIBE] tablename
4.表說明
1)僱員信息表(emp)
名稱 是否爲空? 類型
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
2)部門表(dept)
名稱 是否爲空? 類型
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
3) 薪水等級表(salgrade)
名稱 是否爲空? 類型
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
5.SELECT語句練習
例1:
SELECT * FROM dept;
結果:
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
...
例2:
SELECT deptno,loc
FROM dept;
結果:
DEPTNO LOC
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
...
6.執行SQL語句的工具:
1)SQL*Plus工具
2)iSQL*Plus工具
3)PL/SQL Developer工具
7.算術表達式
使用+,-,*,/可創建一個數據型或日期型數據的表達式
例1:
SELECT ename,sal,sal+300
FROM emp;
結果:
ENAME SAL SAL+300
SMITH 2000 2300
ALLEN 1600 1900
WARD 1250 1550
JONES 2975 3275
...
例2:
SELECT ename,sal,12*sal+100
FROM emp;
結果:
ENAME SAL 12*SAL+100
SMITH 2000 24100
ALLEN 1600 19300
WARD 1250 15100
JONES 2975 35800
...
例3:
SELECT ename,sal,12*(sal+100)
FROM emp;
結果:
ENAME SAL 12*(SAL+100)
SMITH 2000 25200
ALLEN 1600 20400
WARD 1250 16200
JONES 2975 36900
...
8.空值NULL
-是在一種無效的、未賦值、未知的或不可用的值
例:
SELECT ename,job,sal,comm
FROM emp;
結果:
ENAME JOB SAL COMM
MARTIN SALESMAN 1250 1400
BLAKE MANAGER 2850
CLARK MANAGER 2450
TURNER SALESMAN 1500 0
ADAMS CLERK 1100
...
注:任何包含空值的算術表達式運算後的結果都爲空值NULL
例:
SELECT ename,12*sal,12*sal+comm
FROM emp
WHERE ename='BLAKE';
結果:
ENAME 12*SAL 12*SAL+COMM
BLAKE 34200
9.列的別名:
2)如果別名包含空格或特殊關鍵字符或區分大小寫則需要使用雙引號
例1:
SELECT ename AS name,sal salary
FROM emp;
結果:
NAME SALARY
SMITH 2000
...
例2:
SELECT ename "Name",sal*12 "Annual Salary"
FROM emp;
結果:
Name Annual Salary
SMITH 24000
ALLEN 19200
10.連接操作符
1)用於列與列、列和字符之間的連接
2)形式上是連個豎槓:||
3)用於創建字符表達式的結果列
例:
SELECT ename||job AS "Employees"
FROM emp;
結果:
Employees
SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
...
4)原義字符串:
-是包含在SELECT列表中的字符、數字或日期
-日期和字符字面值必須用單引號引起來
-每個字符串都會在每個數據行輸出中出現
例:
SELECT ename||' is a '||job AS "Employees"
FROM emp;
結果:
Employees
SMITH is a CLERK
ALLEN is a SALESMAN
WARD is a SALESMAN
JONES is a MANAGER
...
11. 消除重複行
在SELECT子句中使用關鍵字DISTINCT可消除重複行
例:
SELECT DISTINCT deptno
FROM emp;
練習題
1.顯示emp表結構
DESC emp
2.顯示emp表中所有列的數據
SELECT * FROM emp;
3.顯示emp表僱員編號、僱員名、薪水信息
SEELCT empno,ename,sal
FROM emp;
4.顯示emp表中不重複的工作類別
SELECT DISTINCT job
FROM emp;
5.顯示emp表中empno、sal*12、job,它們對應的別名爲編號、年薪、工作類別
SELECT empno "編號",sal*12 "年薪",job "工作類別"
FROM emp;
6.顯示emp表的ename和sal列,要求顯示的格式爲:XXXX僱員的薪水爲XXX。
SELECT ename ||'僱員的薪水爲 '||sal
FROM emp;