運算符 |
級別 |
算術運算符(即‘+’,‘-’,‘*’,‘/’) |
1 |
連接運算符(即‘||’) |
2 |
比較運算符(即‘>’,‘>=’,‘<’,‘<=’,‘<>’) |
3 |
Is [not] null,[not] like,[not] in |
4 |
[not] between-and |
5 |
not |
6 |
and |
|
or |
|
SQL語言之DQL部分 PART1
select department_id as dashabia from hr.departments;
//別名的使用,從hr用戶下查詢departments表,將department_id命名爲dashabia並列出
SELECT last_name||' '||job_id AS "Employees" FROM employees;
//連接符 ||'@' || 中間用引號隔開,可以加字符,但是不可以加'
select ename || q'<'s salary is >'|| sal from scott.emp;
select ename || q'<'s job is >'|| job from scott.emp;
//引用操作符Alternative Quote (q) Operator
SELECT DISTINCT department_id FROM employees;
//DISTINCT,去除重複的行
select EMPLOYEE_ID , LAST_NAME , EMAIL ,PHONE_NUMBER , SALARY ,COMMISSION_PCT ,DEPARTMENT_ID from hr.employees where department_id=50;
//過濾條件where,一般寫在from table 後面,where子句中不可以使用別名
select employee_id ,first_name ,salary from employees where salary <3000
//比較運算符,大於等於之類,太簡單就不說了
SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ;
//between,區間值
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id =100 or manager_id = 101 or manager_id =201;
//in和 or 也很好理解
SELECT first_name FROM employees WHERE first_name LIKE 'S%' ; //模糊查詢,%表示一個或者多個字符,理解起來就是從employees表中查詢出最初名字開頭爲S的姓名,_表示一個字符
SELECT first_name FROM employees WHERE first_name LIKE 'S_e%' ;
//同上,區別在於 _表示一個字符
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 AND job_id LIKE '%MAN%' ;
//and ,須保證2邊都爲真
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%' ; //一邊爲真即可
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_VP'
AND salary > 10000;
SELECT last_name, job_id, salary
FROM employees
WHERE (job_id = 'SA_REP'
OR job_id = 'AD_VP')
AND salary > 10000;
//優先級別問題,2者區別,由於在 job_id = 'SA_REP' OR job_id = 'AD_VP' AND salary > 10000 中,AND優先級大於OR,所以先算 job_id = 'AD_VP' AND salary > 10000 ,之後再進行( job_id = 'SA_REP' ) OR ( job_id
= 'AD_VP' AND salary > 10000) 具體看個人理解,其實道理和1+2*3=? 一樣,所以也就可以使用符號(1+2)*3=? 類似一個道理,在此查到一個優先級別表:
select department_id, last_name
from employees
order by department_id desc;
//結果排序,ASC:升序,默認 DESC:降序,在order by 列名 之後加desc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.