oracle數據庫之sql語句使用
SCOTT E-R模型圖
DEPT 部門表 EMP 僱員表 BONUS 獎金錶 GRADE 工資等級
DEPTNO 部門編號 EMPNO 僱員編號 ENAME 僱員名稱 GRADE 工資等級
DNAME 部門名稱 ENAME 僱員名稱 JOB 工作職位 LOSAL 最低薪資
LOC 部門位置 JOB 工作職位 SAL 薪資 HISAL 最高薪資
MGR 領導編號 COMM 獎金
HIREDATE 僱用日期
SAL 薪資
COMM 獎金
DEPTNO 部門編號
語法結構
select 列名/表名 ---用於從表中選取數據
from 表名
where 條件
例子 select * from tab; 列出所有表
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.select 語句
select 列名稱 from 表名稱
select * from 表名稱
例子1:列出emp中所有員工名
SQL> select ename from emp;
ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
ENAME
----------
JAMES
FORD
MILLER
14 rows selected.
例子2:列出emp表的所有信息
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300
30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500
30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.distinct語句 ---用於返回唯一不同的值
語法:select distinct 列表名 from 表名稱
例子:列出emp表中所有不重名的員工
SQL> select distinct ename from emp;
ENAME
----------
ALLEN
JONES
FORD
CLARK
MILLER
SMITH
WARD
MARTIN
SCOTT
TURNER
ADAMS
ENAME
----------
BLAKE
KING
JAMES
14 rows selected.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3.where語句
語法:select 列表名 from 表名稱 where 列 運算符 值
操作符
= 等於
<> 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
between。。and 。。 在某個範圍內
like 搜索某種模式
例子:列出emp表中員工名爲scott的所有信息
SQL> select * from emp where ename='SCOTT';
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7788 SCOTT ANALYST 7566 19-APR-87 3000
20
字符使用單引號,數值不用引號
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.and&or運算符 ----用於基於一個以上的條件對記錄進行過濾
可在where子語句中把兩個或多個條件結合起來
如果第一個條件和第二個條件都成立,則and運算符顯示一條記錄
如果第一個條件和第二個條件只有一個成立,則or運算符顯示一條記錄
例子1:and --列出emp表中員工名爲king且工資爲5000的所有信息
SQL> select * from emp where ename='KING' and sal=5000;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7839 KING PRESIDENT 17-NOV-81 5000
10
例子2:or ---列出emp表中員工名爲king或工資爲3000的員工的所有信息
SQL> select * from emp where ename='KING' or sal=3000;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7788 SCOTT ANALYST 7566 19-APR-87 3000
20
7839 KING PRESIDENT 17-NOV-81 5000
10
7902 FORD ANALYST 7566 03-DEC-81 3000
20
例子3:and&or ---列出emp表中員工名爲scott或king的並且工資爲3000的員工所有信息
SQL> select * from emp where (ename='SCOTT' or ename='KING') and sal=3000;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7788 SCOTT ANALYST 7566 19-APR-87 3000
20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5.order by語句
order by語句用於根據指定的列隊結果集進行排序,默認升
desc 爲降序
asc爲升序
例子1:按工資由高到低進行排序
SQL> select ename,sal from emp order by sal desc;
ENAME SAL
---------- ----------
KING 5000
FORD 3000
SCOTT 3000
JONES 2975
BLAKE 2850
CLARK 2450
ALLEN 1600
TURNER 1500
MILLER 1300
WARD 1250
MARTIN 1250
ENAME SAL
---------- ----------
ADAMS 1100
JAMES 950
SMITH 800
14 rows selected.
例子2:按工資由低到高進行排序
SQL> select ename,sal from emp order by sal asc;
ENAME SAL
---------- ----------
SMITH 800
JAMES 950
ADAMS 1100
WARD 1250
MARTIN 1250
MILLER 1300
TURNER 1500
ALLEN 1600
CLARK 2450
BLAKE 2850
JONES 2975
ENAME SAL
---------- ----------
SCOTT 3000
FORD 3000
KING 5000
14 rows selected.