轉載自: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]