1. 程式人生 > >oracle:基本的SQL語句

oracle:基本的SQL語句

一、基本語句
show user --檢視登入登入的使用者賬戶
conn hr/hr 切換使用者
start up 開啟資料庫
檢視hr例項的狀態:
SELECT username,account_status
FROM dba_users
WHERE username=‘HR’;
修改hr使用者的密碼:
ALTER USER hr ACCOUNT UNLOCK IDENTIFIED BY hr;

set wrap off 讓欄位都顯示在一行不打斷
col 列值 format a20(不能顯示將a20改為9999幾位 就幾個9)
desc dba_users 檢視dba_users表的構成
SELECT * FROM tab 檢視某方案下的普通物件
SELECT * FROM employees; 檢視 employees表的情況
SELECT department_id,department_name,manager_id,location_id FROM departments; 檢視departments下指定的列

二、算術表示式;
+、-、x、/、<、>、=

SELECT employee_id,first_name,hire_date FROM employees WHERE rownum<5;行輸出小於5
在這裡插入圖片描述
SELECT first_name,salary,salary+1000 FROM employees
WHERE rownum<5; 輸出薪酬+1000
在這裡插入圖片描述
SELECT first_name,salary,12salary+100 FROM employees
WHERE rownum<5;
SELECT first_name,salary,12
(salary+100)FROM employees
WHERE rownum<5;遵循運演算法則
在這裡插入圖片描述


SELECT first_name,salary,job_id,commission_pct,salary+salarycommission_pct
FROM employees 因為commission_pct為null值所以會造成結果為空值
在這裡插入圖片描述
null值 不等價空格 不等價0
三、列別名
SELECT first_name,salary,job_id,commission_pct,salary+salary
commission_pct sal
FROM employees
WHERE rownum<10;在需要變成別名列位置後面新增別名
在這裡插入圖片描述
SELECT first_name,salary,job_id,commission_pct,salary+salary*commission_pct AS sal
FROM employees
WHERE rownum<10;

SELECT first_name FNAME,last_name LNAME FROM employees
WHERE rownum<10;
在這裡插入圖片描述
SELECT first_name Fname,last_name LNAME FROM employees
WHERE rownum<10;
SELECT first_name “Fname”,last_name “Lname” FROM employees
WHERE rownum<10;
在這裡插入圖片描述
在這裡插入圖片描述
別名有空白符 需要強引用
在這裡插入圖片描述
四、連線運算
SELECT first_name,last_name FROM employees;
SELECT first_name||last_name “Name” FROM employees;
在這裡插入圖片描述
在這裡插入圖片描述
SELECT first_name||’ ‘||last_name “Name” FROM employees;
在這裡插入圖片描述
SELECT first_name||’ job is ‘||job_id FROM employees;
在這裡插入圖片描述
SELECT first_name||’ job’s is ‘||job_id FROM employees; --error
SELECT first_name||’ job’‘s is ‘||job_id FROM employees;
在這裡插入圖片描述有符號需要再加單引號強應用或者用q加花括號和大括號
SELECT first_name||q’{ job’s is }’||job_id FROM employees;
SELECT first_name||q’[ job’s is ]’||job_id FROM employees;
五、DISTINCT檢視單種類型,重複省略
SELECT job_id FROM employees WHERE rownum<10;
SELECT DISTINCT job_id FROM employees WHERE rownum<10;
在這裡插入圖片描述
在這裡插入圖片描述
這兩種寫法都是錯誤的,應該在篩選文段前
SELECT DISTINCT department_id, DISTINCT job_id FROM employees; --ERROR
SELECT department_id, DISTINCT job_id FROM employees; --ERROR
UNIQUE和DISTINCT 同意
在這裡插入圖片描述
六、資料型別
number數字型別 儲存數字型別 可以整數 小數 負數
varchar2(s)字元型別 儲存變長的字元型別 VARCHAR2(5) ‘A’ ‘ABCDE’ ‘ABCDEF’
date 日期時間型別 精確到秒
NUMBER(4) 表示範圍[-9999,9999]
NUMBER(4,2) 表示範圍[-99.99,99.99]
4表示位數,2表示浮點數
SELECT sysdate FROM dual;顯示當前資料庫伺服器的日期時間
在這裡插入圖片描述

SQL> ALTER SESSION SET nls_date_format=‘yyyy-mm-dd hh24:mi:ss’;
SQL> SELECT sysdate FROM dual;
修改日期格式
在這裡插入圖片描述
七、WHERE
SELECT employee_id,salary,salary+300 sal
FROM employees
WHERE sal>10000; --error
SELECT employee_id,salary,salary+300 sal
FROM employees
WHERE salary+300>10000; --right
不能用別名進行篩選
在這裡插入圖片描述
字元和日期型別的篩選
SELECT * FROM employees WHERE last_name=‘King’;
SELECT * FROM employees WHERE last_name=‘king’;
輸出結果是不同的 嚴格區分大小寫
SELECT employee_id,last_name,hire_date
FROM employees WHERE hire_date<‘2008-01-01’ 對日期格式敏感
八、比較運算子
between and、in 、like、null
between A and B在什麼之間的篩選
在這裡插入圖片描述
in(A,B)包括A和B 的值
在這裡插入圖片描述
like WHERE的指定值
在這裡插入圖片描述
在這裡插入圖片描述
null空值
SELECT employee_id,salary,commission_pct
FROM employees WHERE commission_pct=null; --error

SELECT employee_id,salary,commission_pct
FROM employees WHERE commission_pct IS null;
在這裡插入圖片描述
九、邏輯運算
NOT、AND、OR
NOT 否定
在這裡插入圖片描述
AND 和 兩個條件同時滿足
在這裡插入圖片描述
OR 或者 任意條件滿足
在這裡插入圖片描述
AND 和 OR同時存在時 AND優先
在這裡插入圖片描述
也可以通過()改變優先級別
在這裡插入圖片描述
十、排序
ASC  預設升序 DESC  降序
SELECT employee_id,first_name,salary FROM employees
ORDER BY salary;預設為升序
在這裡插入圖片描述

SELECT employee_id,first_name,salary FROM employees
ORDER BY salary DESC;改為降序

在這裡插入圖片描述
SELECT employee_id,salary+salary*0.2 sal FROM employees
ORDER BY sal;支援別名
在這裡插入圖片描述
SELECT employee_id,first_name FROM employees
ORDER BY salary DESC;

SELECT employee_id,salary,commission_pct
FROM employees RDER BY commission_pct ASC;含有null值時升序null最後
在這裡插入圖片描述
SELECT employee_id,salary,commission_pct
FROM employees ORDER BY commission_pct DESC;含有null值時降序null第一
在這裡插入圖片描述

SELECT employee_id,salary,commission_pct
FROM employees ORDER BY commission_pct DESC NULLS FIRST;也可以自己定義null前後
在這裡插入圖片描述

SELECT employee_id,salary,commission_pct
FROM employees ORDER BY 1 ASC;檢索了三個值 表示第一個值的排序
在這裡插入圖片描述

SELECT employee_id,salary,commission_pct
FROM employees ORDER BY 4;超過了三個值 則會報錯
在這裡插入圖片描述
SELECT employee_id,first_name,salary FROM employees
ORDER BY salary DESC,first_name ASC;也可以混合使用升降序
在這裡插入圖片描述