oracle:sql介紹及SQL基本查詢 <四>

轉載自:https://blog.csdn.net/redarmy_chen/article/details/6521835

SQL是structured Query Language(結構化查詢語言)的縮寫。可以使用sql語句建立或刪除數據庫的對象,插入,修改和更新數據庫中的數據,並且可以對數據庫執行各種日常管理的操作。它是所有關係數據庫管理系統的標準語言.換句話說使用sql可以對所有的關係數據庫進行操作。 
   SQL按照功能分類: 
1、 數據庫定義語句 
DDL(Data Definition Language):用於創建、修改、刪除數據庫對象。 
2、 數據庫操作語句 
DML(Data Manipulation Language)用於:查詢,添加修改或刪除存在數據庫對象中的數據。 
3、 數據庫控制語句DCL 
DCL(Data Control Language)用於控制訪問數據庫中特定對象的用戶、grant revoke 
Oracle系統中經過對Sql語言擴展被稱爲PL/SQL語言。

基本的sql語句
SELECT    *|{[DISTINCT] column|expression [alias],...}
FROM    table;
ORACLE基本語句的查詢與使用
SQL> select * from emp;//查詢所有的字段信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;//查詢所有
SQL> select empno from emp;//查詢部分字段
SQL> select empno "員工編號" from emp;//採用別名查詢
SQL> select empno as "員工編號" from emp;//採用別名查詢 等效於上面的效果
SQL> select distinct(hiredate) from emp;//查詢所有員工的入職日期並且去掉重複的日期
SQL> select sal+comm from emp;//注意:包含空值的數學表達式求出的結果爲空值
SQL> select empno||ename from emp;//||連接符 把empno與ename作爲一個字段顯示
SQL> select empno||ename  as "員工編號和員工姓名" from emp;//效果同上
SQL> select '員工的編號是'||empno from emp;//字符的鏈接
SQL> select '姓名爲'||ename||'員工,所在的部門是:'||deptno as "新列" from emp;//字段的鏈接包號字符連接
SQL> select distinct(deptno) from emp;//查詢去掉(部門編號)重複的行

條件查詢
SELECT    *|{[DISTINCT] column|expression [alias],...}
FROM    table 
[WHERE    condition(s)];
Condition(s)要使用到比較運算符常用的比較運算符如下:
操作符    含義
=    等於
>    大於
>=    大於等於
<    小於
<=    小於等於
<>    不等於 等效於!=
其它操作
And 邏輯運算  邏輯與
Or  邏輯運算  邏輯或
Not 邏輯運算  邏輯否
Between 起始值 and 結束值:使用 BETWEEN 運算來顯示在一個區間內的值 包含(起始結束值)
In: 使用 IN運算顯示列表中的值。 In(,,,)相當於一個集合,只要出現集合中匹配的就顯示
Like:
        使用 LIKE 運算選擇類似的值 
        選擇條件可以包含字符或數字:
•    % 代表零個或多個字符(任意個字符)。 
•    _ 代表一個字符。 
Escape:
   迴避特殊符號的:使用轉義符。例如:將[%]轉爲[/%]、[_]轉爲[/_],然後再加上[ESCAPE ‘/’] 即可
Null:
使用 IS (NOT) NULL 判斷空值。 

//查詢部門號爲10的員工信息  部門爲整數類型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10; 
//查詢職位號爲MANAGER的員工信息  崗位的類型爲字符類型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';
//查詢部門號爲10並且員工的職位爲MANAGER的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;
注意:
    字符和日期要包含在單引號中。 
    字符大小寫敏感,日期格式敏感。 
    默認的日期格式是 DD-MON-RR。 
    
Where子句使用比較運算符:'>'(大於),'>='(大於等於),'='(等於),'<='(小於等於)'<'(小於).'<>'(不等於).'!>'(不大於).'!<'(不小於)

//查詢部門號大於10的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;
//查詢薪水大於等於3000的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;
//查詢薪水不等於3000的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;
//查詢薪水大於2000並且小於3000的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;
//查詢薪水大於等於2000並且小於等於3000的員工信息

邏輯運算符的使用:'and','or','not'

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;
//等效於
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;
//查詢部門號位10,20的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);
//注意:相當於如下操作:
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20; 模糊查詢:
兩種方式:'_'和'%','_'代表一個未知數,'%'代表多個
//查詢員工名稱以S開頭的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';
//查詢員工名稱以S結尾的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';
//查詢員工名稱第三個字符爲N的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';
//查詢員工名稱中含有N的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';
轉義字符的使用:'\'
//查詢員工名稱中倒數第二個字符爲%的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%/%_'escape'/';
//查詢員工名稱總含有%的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%/%%'escape'/';

查找檢索值爲空的數據:'is null'

//查詢獎金爲null的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;
//查詢獎金非null的員工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;
優先級表格:
優先級    
1    算術運算
2    連接符
3    比較符
4    Is not null like not in
5    Not between
6    not
7    and
8    Or
備註:可以採用括號改變優先級    


操作sql參考附件中的sql語句

以上內容歸redarmy_chen總結創建,如需轉載請添加出處,如有疑問請發送到[email protected] 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章