SQL語言基礎(SELECT語句)
透過SQL 語句,程式設計師或資料庫管理員可以做如下的主要工作:
(1 )建立資料庫的表格,包括設定表格所可以使用之空間。
(2 )改變資料庫系統環境設定。
(3 )針對某個資料庫或表格,授予使用者存取許可權。
(4 )對資料庫表格建立索引值。
(5 )修改資料庫表格結構(新建、刪除或是修改表格欄位)。
(6 )對資料庫進行資料的新建。
(7 )對資料庫進行資料的刪除。
(8 )對資料庫進行資料的修改。
(9 )對資料庫進行資料的查詢。
SQL 語言分類:
1-1 基本sql語句
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
Ø SELECT 標識選擇哪些列
Ø * 選擇全部列
Ø DISTINCT 過濾重複值
Ø column|expression 選擇的列名或表示式
Ø alias 表的別名
Ø FROM 標識從哪個表中選擇
Ø table 取資料的表名
1-1-1 選擇全部列
SELECT * FROM departments;
使用”* ”選擇表中的全部列。
在實際工作中,儘量避免使用select * … 因為ORACLE 在解析的過程中, 會將’* ’依次轉換成所有的列名, 這個工作是透過查詢資料字典完成的, 將耗費更多的時間。
1-1-2 選擇特定的列
SELECT department_id, location_id FROM departments;
1-2 算數運算子
SELECT last_name, salary, salary + 300 FROM employees;
1-2-1 運算子優先順序
Ø 乘除的優先順序高於加減。
Ø 同一優先順序運算子從左向右執行。
Ø 括號內的運算先執行。
SELECT last_name, salary, 12*salary+100 FROM employees;
1-2-2 使用括號
SELECT last_name, salary, 12*(salary+100) FROM employees;
1-2-3 定義空值
Ø 空值是無效的,未指定的,未知的或不可預知的值。
Ø 空值不是空格或者0 。
Ø 各種型別的列都可以包含空值
Ø NOT NULL 和 PRIMARY KEY 約束列不允許空值
SELECT last_name, job_id, salary, commission_pct FROM employees;
1-3 列的別名
Ø 重新命名一個列。
Ø 便於計算。
Ø 緊跟列名,也可以在列名和別名之間加入關鍵字‘AS ’,以便在別名中包含空格或特殊的字元並區分大小寫。
SELECT last_name AS name, commission_pct comm FROM employees;
1-4 連線符
Ø 把列與列,列與字元連線在一起。
Ø 用 ‘|| ’表示。
Ø 可以用來‘合成’列。
SELECT last_name||job_id AS "Employees" FROM employees;
1-5 字串
Ø 字串可以是 SELECT 列表中的一個字元, 數字, 日期。
Ø 日期和字元只能在單引號中出現。
Ø 每當返回一行時,字串被輸出一次。
SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees;
1-6 重複行
SELECT department_id FROM employees;
使用關鍵字‘DISTINCT ’過濾掉多餘的重複記錄 。
SELECT DISTINCT department_id FROM employees;
1-7 過濾
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];
WHERE 子句緊隨 FROM 子句
1-7-1 WHERE子句
SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90 ;
1-7-2 比較運算
SELECT last_name, salary FROM employees WHERE salary <= 3000;
1-7-3 其他比較運算
BETWEEN:
使用 BETWEEN 運算來顯示在一個區間內的值
SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500;
IN:
使用 IN 運算顯示列表中的值
SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);
LIKE:
使用 LIKE 運算選擇類似的值
選擇條件可以包含字元或數字:
% 代表一個或多個字元。
_ 代表一個字元。
‘% ’和‘- ’可以同時使用。
可用ESCAPE 識別符號查詢% 或_
SELECT first_name FROM employees WHERE first_name LIKE 'S%';
NULL:
使用 NULL 判斷空值
null 不等於0 ,空格
任意兩個null 不相等
SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL;
1-7-4 邏輯運算
AND:
AND 要求和的關係為真
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%';
OR:
OR 要求或關係為真。
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%';
NOT:
SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');
1-7-5 優先順序
1-8 排序
使用 ORDER BY 子句排序
ASC: 升序
DESC: 降序
ORDER BY 子句在SELECT 語句的結尾。
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;
規則:
預設按升序排序,可用DESC 說明降序排序
可用表示式或別名排序
NULL 值的顯示:升序在最後;降序在首位
可用位置(列序號)排序
ORDER BY 列表的順序是排序的順序
可用未出現在SELECT 列表中的列排序
1-8-1 降序排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ;
1-8-2 按別名排序
SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal;
1-8-3 多個列排序
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021989/viewspace-2923934/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL SELECT 語句SQL
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- SQL語言基礎(資料控制語言)SQL
- insert into select語句與select into from語句
- MySQL指南之SQL語句基礎MySql
- GaussDB SQL基礎語法示例-迴圈語句SQL
- SQL語言基礎(函式)SQL函式
- Python語言最常見的8個基礎語句!Python
- SQL語言基礎(多表連線)SQL
- SQL語言基礎(子查詢)SQL
- SQL基礎的查詢語句烈鉍SQL
- 【Golang 基礎系列十】Go 語言 條件語句之ifGolang
- python基礎語法—語句Python
- 比CRUD多一點兒(二):基礎INSERT、SELECT語句
- SQL語言基礎(高階查詢)SQL
- Python基礎-if,for語句Python
- MySQL基礎語句MySql
- mysql資料庫sql語句基礎知識MySql資料庫
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 6. Oracle開發和應用—6.3. 基本SQL語句—6.3.4. select語句OracleSQL
- SQL語句SQL
- java基礎-衛語句Java
- Oracle OCP(01):使用SQL SELECT語句檢索資料OracleSQL
- Go select語句詳解Go
- C語言基礎C語言
- dart語言基礎Dart
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- mysql基礎複習(SQL語句的四個分類),MySql
- 【MySQL】MySQL基礎(SQL語句、約束、資料型別)MySql資料型別
- JAVA基礎--Switch case語句Java
- 【Python基礎】for迴圈語句Python
- MySQL基礎之DML語句MySql
- 【TUNE_ORACLE】查出所有有“select *”語句的SQL參考OracleSQL
- sql常用語句SQL
- 圖解Go select語句原理圖解Go
- 學習MySQL的select語句MySql
- Select語句執行順序
- Go語言基礎語法總結Go