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=? 類似一個道理,在此查到一個優先級別表:



運算符

級別

算術運算符(即‘+’,‘-’,‘*’,‘/’)

1

連接運算符(即‘||’)

2

比較運算符(即‘>’,‘>=’,‘<’,‘<=’,‘<>’)

3

Is [not] null,[not] like,[not] in

4

[not] between-and

5

not

6

and

or





select department_id, last_name
from employees
order by department_id desc;   //結果排序,ASC:升序,默認  DESC:降序,在order by 列名 之後加desc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章