一、如何限制所選擇的資料行
使用WHERE語句
、WHERE 是關鍵字,其後跟限制條件。
、條件是由列名、字串、算術運算式、常量和比較子組成的。
例如:
SELECTempno,ename,sal
FROMemp
WHEREsal >= 500;
二、比較子
oracle提供了>、>=、<、<=、=、<>、!=6個常用的比較子。
oracle還提供了between and 、in、like3個比較常用的運算子。
三、如何使用BETWEEN ADN比較子
SELECT empno,ename,sal
FROM emp
WHERE sal BETWEEN 1500 AND 2900;
註:改運算子不僅可以用於數值型資料,而且還可以用於字元型和日期型資料。但是後兩者必須要用單引號括起來。
也可以使用NOT BETWEEN AND
四、在SQL語句中使用字串和日期
SELECT empno,ename,job
FROM emp
WHERE JOB='salesman';//這時候查詢不到資料,因為salesman在資料庫中都是大寫的,所以需要改成全部大寫的。
SELECT empno,ename,job
FROM emp
WHERE JOB='SALESMAN';//這時候能查出資料。
五、使用IN比較子
SELECT empno,ename,sal,job
FROM emp
WHERE job IN('SALESMAN','CLERK','MANAGER');
IN也是SQL種一個很有用的比較子。IN用來測試默寫值是否在列表中出現。
也可以使用not in
六、使用LIKE比較子
SELECT empno,ename,sal,job
FROM emp
WHERE job LIKE 'SAL%';
、%代表0個或多個字元。
、__代表一個且只能是一個字元。
也可以查詢日期。
例如:
SELECT empno,hiredate
FROM emp
WHERE hiredate like '%81';//查詢在1981年僱傭的所有員工的清單
七、如何使用轉義操作符
當SQL語句中含有__和%時候,需要使用escape轉義
例如:
SELECT *
FROM emp
SHERE dname LIKE 'IT\_%' escape '\';
八、ORDER BY子句
1、ASC預設是從小到大。DESC是從大到小
2、可以對數字型、日期型、字元型資料進行排序。
3、預設時,數字型和日期型資料的順序為從小到大。字元型資料的順序是按ASCII碼的次序,即從A到Z。
注意:如果使用了ORDER BY子句,一定是SQL語句的最後一個子句。
九、在ORDER BY子句中使用列名或運算式
使用列名
SELECT empno AS "Employee Number",ename name,(500+sal)*12 "Annual Salary"
FROM emp;
ORDER BY "Annual Salary" DESC;
使用運算式
SELECT empno AS "Employee Number",ename name,(500+sal)*12 "Annual Salary"
FROM emp
ORDER BY (500+sal)*12 DESC;
十、在ORDER BY子句中使用列號
SELECT empno "Employee Number",ename name,(500+sal)*12 "Annual Salary"
FROM emp
ORDER BY 3 DESC;
十一、在ORDER BY子句中使用多列
可以再多列中排序,使用ORDER BY。
ORDER BY job,sal desc,//這裡的desc只能作用在sal上面,job是預設的。
十二、在ORDER BY子句中使用在SELECT列表中沒有的列
SELECT ename,job,sal
FROM emp
ORDER BY empno;
注意:可以用,但是需要少用,避免歧義。
十三、擴充後的查詢語句的格式
SELECT *|[{[DISTINCT] 列表,。。。。。}]
FROM 表明
[WHERE 條件]
[ORDER BY {列名|別名|運算式,.....}[ASC|DESC]];
其中,條件由列名、文字串、算術運算式、常量、比較子5部分組成。
需要注意的是,ORDER BY 子句一定要放在SQL語句的最後。