1. 程式人生 > >Oracle資料庫深入學習

Oracle資料庫深入學習

一、Oracle概念

oracle資料可系統是美國oracle(甲骨文)公司提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器或B/S體系結構的資料庫之一,oracle資料庫時目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完善的資料庫管理功能,是關係型資料庫,比mysql更為龐大,在現行的關係型資料庫中排名第一(oracle、mysql、SqlServer),時間是最為精確的。

二、Oracle的安裝

安裝教程

三、Oracle資料庫的體系結構

1、資料庫database

Oracle資料庫是資料的物理儲存,這就包括(資料檔案ORA或者DBF、控制檔案、聯機日誌、引數檔案)。其實Oracle資料庫的概念和其他資料庫不一樣,這裡的資料庫時一個作業系統只有一個庫,可以看做Oracle就只有一個大資料庫。

2、例項

一個數據庫可以有n個例項,有一系列的後臺程序和記憶體結構組成。

3、資料檔案dbf

是資料庫的物理儲存單位,資料庫的資料是儲存在表空間中的,真正是在某一個或者多個數據檔案中,而一個表空間可以由一個或多個數據檔案組成,一個數據檔案只能屬於一個表空間,一旦資料檔案被加入到某個表空間後,就不能刪除這個檔案,如果要刪除某個資料檔案,只能刪除其所屬於的表空間才行。

4、表空間

表空間是Oracle對物理資料庫上相關資料檔案的邏輯對映,一個數據庫在邏輯上被劃分成一到若干個表空間,每個表空間包含了在邏輯上相關聯的一組結構,每個資料庫至少有一個表空間(稱之為system表空間)

每個表空間由同一磁碟上的一個或多個檔案組成,這些檔案叫資料檔案,一個數據檔案只能屬於一個表空間。

5、使用者

使用者是在例項下建立的,不同例項中可以建相同名字的使用者,表的資料是由使用者放入某一個表空間的,而這個表龍劍會隨機把這些表資料進行管理和存放的,但是表不是由表空間去查詢的,而是由使用者去查詢。

6、SCOTT和HR使用者

是Oracle幫我們建好的測試賬戶,Scott賬戶常用,裡面有emp、dept表等。

四、Oracle和MYSQL的差別

1、新建專案的方式

MYSQL : 建立一個數據庫,建立相應的表

2、Oracle是多使用者的, MYSQL是多資料庫的

3、Oracle安全級別要高,MYSQL開源免費

五、基本查詢

1、SQL概念

結構化查詢語言

2、SQL分類

DDL : 資料定義語言 create alter drop truncate
DML : 資料操縱語言 insert update delete
DCL : 資料控制語言 安全 授權 grant revoke
DQL : 資料查詢語言 select from子句 where子句

在oracle中將DQL放入DML中,多了TCL:事務控制語言 commit、rollback

3、Oracle中的資料字典

所謂資料字典就是編寫sql語句,全選可以一次性執行不報錯

/* 1.刪除資料物件 */
-- 刪除資料表
drop table t_reply;
drop table t_user;
-- 刪除序列
drop sequence sq_user;
drop sequence sq_reply;


/* 2.建立資料物件 */
-- 建立資料表
create table t_user(
   u_id number(4) primary key,
   u_userName varchar2(40) unique not null,
   u_password varchar2(50) not null,
   u_gender number(1) check(u_gender in (0,1,2)),
   u_age number(3) check(u_age between 12 and 120),
   u_registeTime date not null
);
create table t_reply(
   r_id number(10) primary key,
   r_content varchar2(500) not null,
   r_userId number(4) not null,
   foreign key(r_userId) references t_user(u_id)
);
-- 建立序列
create sequence sq_user start with 1001;
create sequence sq_reply start with 10000001;

/* 3.新增測試資料 */
-- 處理全新的資料表和全新的序列在使用時取不到初始值的問題
insert into t_user values
  (1, '1', '1', 1, 25, sysdate);
insert into t_reply values
  (1, '1', 1);
delete from t_reply;
delete from t_user;
commit;
/*insert into t_user values
  (1000, 'owner', '9999', 1, 25, sysdate);
insert into t_reply values
  (10000000, '人員召集...', 1000);*/
 
-- 新增資料
insert into t_user values
  (sq_user.nextval, 'admin', '9999', 1, 25, sysdate);
insert into t_reply values
  (sq_reply.nextval, '系統1.0上線...', sq_user.currval);

/* 4.提交 */
commit;

/* 5.查詢語句 */
/*
   select * from t_user;
   select * from t_reply;
*/

3、查詢語句的結構

 select [列名] [*] from 表名 [where 條件] [group by 分組條件] [having 過濾] [order by 排序]

4、偽表dual

dual : oracle中的虛表 ,偽表, 主要是用來補齊語法結構,

比如:select 1+1 from dual;
注意:直接寫一個常量比寫 * 要高效
select count(1) from emp;
select count(*) from emp;

5、別名查詢

使用as 關鍵字, 可以省略,別名中不能有特殊字元或者關鍵字, 如果有就加雙引號(比如空格)

elect ename 姓名, sal 工資 from emp;
select ename "姓       名", sal 工資 from emp;

6、去除重複資料 distinct

加在select和列名後面,多列去除重複: 每一列都一樣才能夠算作是重複

--單列去除重複
select distinct job from emp;

--多列去除重複的
select distinct job,deptno from emp;

7、查詢中四則運算

需要用到偽表dual

select 1+1 from dual;
--查詢員工年薪  = 月薪* 12
select sal*12 from emp;

在Oracle 中 ,雙引號主要是別名的時候使用, 單引號是使用的值, 是字元

8、空值處理函式

注意: null值 , 代表不確定的 不可預知的內容 , 不可以做四則運算

1)mysql的空值處理
​ ifnull(引數1, 引數2):
​ 判斷引數1是否為null,
​ 不為null, 則函式的結果取引數1的值
​ 為null, 則取引數2的值
​ if(引數1, 引數2, 引數3)
​ 判斷引數1是否為null,
​ 為null, 則取引數3的值
​ 不為null, 則取引數2的值
​ 注意if函式只能處理數值欄位的空值

SELECT e.`ename` 姓名,
	e.`sal` 底薪,
	e.`comm` 獎金,
	(e.`sal`+e.`comm`) 實發,
	IFNULL(e.`sal`+e.`comm`, e.`sal`) 實發1,
	IF(e.`comm`, e.`sal`+e.`comm`, e.`sal`) 實發2
FROM emp e;

2)oracle的空值處理

nvl(引數1,引數2):如果1為null,則返回2,不為null就為1

nvl2(引數1, 引數2, 引數3)1為null,則返回,3,不為null,則返回2

decode(需要判斷的欄位,
​ 常量值1, 結果值1,
​ 常量值2, 結果值2,
​ …
​ 常量值n, 結果值n,
​ 預設結果值
​ )

select e.ename 姓名,
       e.sal 底薪,
       e.comm 獎金,
       nvl(e.sal+e.comm, e.sal) 實發1,
       nvl2(e.comm, e.sal+e.comm, e.sal) 實發2,
       decode(e.comm, null, e.sal, e.sal+e.comm) 實發3
from emp e;

9、字串拼接

  • Oracle 特有的連線符: || 拼接
  • concat(str1,str2) 函式, 在mysql和Oracle中都有
--查詢員工姓名 :  姓名:SCOTT
select ename from emp;
--使用拼接符
select '姓名:' || ename from emp;

--使用函式拼接
select concat('姓名:',ename) from emp;

六、條件查詢

條件查詢就是where後面的寫法

1、關係運算符和排序

> >= = < <= != <>
注意:不等於既可以用!=也可以用<>但是<>效率更高

2、邏輯運算子

and or not

3、其它運算子

like 模糊查詢
in(set) 在某個集合內
between..and.. 在某個區間內
 is null  判斷為空
is not null 判斷不為空

4、模糊查詢: like

% 匹配多個字元

_ 匹配單個字元

如果有特殊字元, 需要使用escape轉義

--查詢員工姓名中,包含%的員工資訊
select * from emp where ename like '%\%%' escape '\';

select * from emp where ename like '%#%%' escape '#';

5、排序order by

升序: asc ascend

降序: desc descend

排序注意null問題 : nulls first | last指定null值顯示的位置

同時排列多列, 用逗號隔開

--查詢員工資訊,按照獎金由高到低排序
select * from emp order by comm desc nulls last;

--查詢部門編號和按照工資  按照部門升序排序, 工資降序排序
select deptno, sal from emp order by deptno asc, sal desc;

分析函式:用來處理排名並列問題

rank——排名可並列,之後序號不會順眼(如2個第二,下一個是第三名)

dense_rank——排名可並列,之後序號會順眼(如2個第二,下一個是第四名)

row_number——不可並列排名

over——新增分組條件

partition—by——分組

6、分組排序

  • select 分組的條件,分組之後的條件 from 表名 group by 分組的條件 having 條件過濾
  • 在分組查詢語句的檢索內容中, 只能出現分組欄位和聚合函式

sql的編寫順序:
​ select,from,where,group by,having,order by
sql的執行順序:
​ from,where,group by,having,select,order by…

  • where和having的區別:

    where後面不能跟聚合函式,可以接單行函式
    having是在group by之後執行,可以接聚合函式

    --分組統計所有部門的平均工資,找出平均工資大於1500的部門
    select deptno,avg(sal) from emp group by deptno having avg(sal)>1500;
    
    --報錯,給分組之後的條件取別名的時候出錯,因為sql語句執行的順序問題
    select deptno,avg(sal),bb from emp group by deptno having bb>1500;
    

七、函式

函式: 必須要有返回值

1、單行函式

對某一行中的某個值進行處理

1)數值函式

  • 取整

    select ceil(45.926) from dual;  --46 向上取整
    select floor(45.926) from dual; --45  向下取整
    
  • 四捨五入

    round(a,b)

    b如果是正數代表取到小數點後b位數為止

    b如果是負數代表取到十位為止

    elect round(45.926,2) from dual; --45.93
    select round(45.926,1) from dual; -- 45.9
    select round(45.926,0) from dual; --46
    select round(45.926,-1) from dual; --50
    select round(45.926,-2) from dual; --0
    select round(65.926,-2) from dual; --100
    
  • 截斷(去尾法)

    select trunc(45.926,2) from dual; --45.92
    select trunc(45.926,1) from dual; -- 45.9
    select trunc(45.926,0) from dual; --45
    select trunc(45.926,-1) from dual; --40
    select trunc(45.926,-2) from dual; --0
    select trunc(65.926,-2) from dual; --0
    
  • 求餘

    select mod(9,3) from dual; --0
    select mod(9,4) from dual; --1
    

2)字元函式

 substr(str1,起始索引,長度) 
--注意: 起始索引不管寫 0 還是 1 都是從第一個字元開始擷取
select substr('abcdefg',0,3) from dual; --abc
select substr('abcdefg',1,3) from dual; --abc

select substr('abcdefg',2,3) from dual; --bcd

--獲取字串長度 24 28
select length('abcdefg') from dual;

--去除字元左右兩邊的空格
select trim('  hello  ') from dual;

--替換字串
Select replace('hello','l','a') from dual;

3) 日期函式

-查詢今天的日期(查詢的是伺服器上的日期)
select sysdate from dual;
--查詢3個月後的今天的日期
select add_months(sysdate,3) from dual;
--查詢3天后的日期
select sysdate + 3 from dual;


--查詢員工入職的天數
select sysdate - hiredate from  emp;

select ceil(sysdate - hiredate) from  emp;

--查詢員工入職的週數
select (sysdate - hiredate)/7 from emp;

--查詢員工入職的月數
select months_between(sysdate,hiredate) from emp;

--查詢員工入職的年份
select months_between(sysdate,hiredate)/12 from emp;

4) 轉換函式

數值轉字元

select to_char(sal,'$9,999.99') from emp;

select to_char(sal,'L9,999.99') from emp;
/*
to_char(1210.73, '9999.9') 返回 '1210.7' 
to_char(1210.73, '9,999.99') 返回 '1,210.73' 
to_char(1210.73, '$9,999.00') 返回 '$1,210.73' 
to_char(21, '000099') 返回 '000021' 
to_char(852,'xxxx') 返回' 354'

*/

日期轉字元 to_char() (不區分大小寫)

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') from dual; --預設的是24小時制度
--只想要年
select to_char(sysdate,'yyyy') from dual;  --2017

--只想要日
select to_char(sysdate,'d') from dual; --2  代表一個星期中第幾天(美國周天是一個星期的第一天)
select to_char(sysdate,'dd') from dual;  --10  代表一個月中的第幾天
select to_char(sysdate,'ddd') from dual; --100 代表一年中的第幾天


select to_char(sysdate,'day') from dual;  --monday(星期的英文)
select to_char(sysdate,'dy') from dual;   --mon  星期的簡寫

字元轉日期

select to_date('2017-04-10','yyyy-mm-dd') from dual;

--查詢1981年 -- 1985年入職的員工資訊
select * from emp where hiredate between to_date('1981','yyyy') and to_date('1985','yyyy');

5) 通用函式

nvl(引數1,引數2) 如果引數1 = null 就返回引數2
       nvl2(引數1,引數2,引數3) 如果引數1 = null ,就返回引數3, 否則返回引數2
       
       nullif(引數1,引數2) 如果引數1 = 引數2 那麼就返回 null , 否則返回引數1
       
       coalesce: 返回第一個不為null的值
       
select nvl2(null,5,6) from dual; --6;

select nvl2(1,5,6) from dual; --5;

select nullif(5,6) from dual; --5
select nullif(6,6) from dual; --null

select coalesce(null,null,3,5,6) from dual;  --3

2、多行函式(聚合函式)

對某一列的所有行進行處理

max() min count sum avg

注意:直接忽略空值

例子:

--統計員工的平均獎金  550  錯誤    2200/14 =,因為空值產生的影響
select avg(comm) from emp;
--統計員工的平均獎金 157.
select sum(comm)/count(1) from emp;
select ceil(sum(comm)/count(1)) from emp;

3、條件表示式

作用:查詢的時候用來替換列中所有資料的值,區別於取別名,取別名只是單純的給子彈取別名

/*
條件表示式:
	case 欄位
	when 值1 then 值
	when 值2 then 值
	else
		預設值
	end "別名"
case、when通用的寫法,mysql和oracle中都可以用

oracle特有的寫法:decode(欄位,if1,then1,if2,then2,else1)
*/
--給表中姓名取一箇中文名
select 
	case ename
	when 'SMITH' then '劉備小二'
	when 'ALLEN' then '薩達'
	else 
		'路人甲'
	end "中文名"
from emp;

--oracle 特有寫法
select decode(ename,'SMITH','劉備小二','ALLEN','薩達','路人甲') from emp;

八、多表查詢

1、笛卡爾積

實際上是兩張表的乘積,但是在實際開發中沒有太大意義,格式: select * from 表1,表2

select * from emp;
select * from dept;

select * from emp, dept;

select * from emp e1, dept d1 where e1.deptno = d1.deptno;

2、內連線

隱式內聯接:
​ 等值內聯接: where e1.deptno = d1.deptno;
​ 不等值內聯接: where e1.deptno <> d1.deptno;
​ 自聯接: 自己連線自己
顯式內聯接:
​ select * from 表1 inner join 表2 on 連線條件
​ inner 關鍵字可以省略

       --查詢員工編號,員工姓名,經理的編號,經理的姓名
select e1.empno,e1.ename,e1.mgr,m1.ename
from emp e1, emp m1 where e1.mgr= m1.empno;


--查詢員工編號,員工姓名,員工的部門名稱,經理的編號,經理的姓名
select e1.empno,e1.ename,d1.dname,e1.mgr,m1.ename
from emp e1, emp m1,dept d1 where e1.mgr= m1.empno and e1.deptno = d1.deptno;

--查詢員工編號,員工姓名,員工的部門名稱,經理的編號,經理的姓名,經理的部門名稱
select e1.empno,e1.ename,d1.dname,e1.mgr,m1.ename,d2.dname
from emp e1, emp m1,dept d1,dept d2 
where 
     e1.mgr= m1.empno 
 and e1.deptno = d1.deptno
 and m1.deptno = d2.deptno 
;

--查詢員工編號,員工姓名,員工的部門名稱,員工的工資等級,經理的編號,經理的姓名,經理的部門名稱
select e1.empno,e1.ename,d1.dname,s1.grade,e1.mgr,m1.ename,d2.dname
from emp e1, emp m1,dept d1,dept d2,salgrade s1 
where 
     e1.mgr= m1.empno 
 and e1.deptno = d1.deptno
 and m1.deptno = d2.deptno
 and e1.sal between s1.losal and s1.hisal 
;

--查詢員工編號,員工姓名,員工的部門名稱,員工的工資等級,經理的編號,經理的姓名,經理的部門名稱,經理的工資等級
select e1.empno,e1.ename,d1.dname,s1.grade,e1.mgr,m1.ename,d2.dname,s2.grade
from emp e1, emp m1,dept d1,dept d2,salgrade s1,salgrade s2 
where 
     e1.mgr= m1.empno 
 and e1.deptno = d1.deptno
 and m1.deptno = d2.deptno
 and e1.sal between s1.losal and s1.hisal 
 and m1.sal between s2.losal and s2.hisal 
;

--查詢員工編號,員工姓名,員工的部門名稱,員工的工資等級,經理的編號,經理的姓名,經理的部門名稱,經理的工資等級
--將工資等級 1,2,3,4 顯示成 中文的 一級 二級 三級...

select e1.empno,
       e1.ename,
       d1.dname,
       case s1.grade
         when 1 then '一級'--為所有列更換成你想要的資訊
         when 2 then '二級'
         when 3 then '三級'
         when 4 then '四級'
         else
             '五級'
         end "等級",--取別名
       e1.mgr,
       m1.ename,
       d2.dname,
       decode(s2.grade,1,'一級',2,'二級',3,'三級',4,'四級','五級') "等級"
from emp e1, emp m1,dept d1,dept d2,salgrade s1,salgrade s2 
where 
     e1.mgr= m1.empno 
 and e1.deptno = d1.deptno
 and m1.deptno = d2.deptno
 and e1.sal between s1.losal and s1.hisal 
 and m1.sal between s2.losal and s2.hisal 
;

--查詢員工姓名和員工部門所處的位置
select e1.ename,d1.loc from emp e1,dept d1 where e1.deptno = d1.deptno;

select * from emp e1 inner 
            
           

相關推薦

Oracle資料庫深入學習

一、Oracle概念 oracle資料可系統是美國oracle(甲骨文)公司提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器或B/S體系結構的資料庫之一,oracle資料庫時目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完善的資料庫管理功

oracle資料庫逐步學習總結【基礎二】

  原創作品,轉載請在文字開頭明顯位置註明出處:https://www.cnblogs.com/sunshine5683/p/10067872.html 接著上一篇,繼續總結!   五、oracle表管理 首先,在開頭說一下sys使用者和system使用者的區別:sys使用者是超

Oracle資料庫基礎學習_01

–建立表空間 create tablespace itheima; DATAFILE ‘heima.dbf’ size 100m autoextend on next 10m; –刪除表空間 drop tablespace itheima; –建立使用者 cre

Oracle資料庫基礎學習DAY3

1、連線用一個連線來從多個表中獲取資料。select table.column,table2.columnfrom table1,table2where table1.column1=table2.column2;在where子句中書寫連線的條件。如果某個列的名字在多個表中出

Oracle資料庫基礎學習DAY1

1.資料字典(data dictionary)是資料庫中所有物件及其關係的資訊集合。·系統空間資訊·資料庫中物件資訊·效能以及統計資訊·Oracle使用者資訊·使用者訪問、操作資訊·使用者角色等許可權資訊·列的相關資訊2.資料檔案包括了全部資料庫資料·一個數據庫可以有多個數據

oracle資料庫加密學習總結

作者: ldd600 安全就好比在寒冷的冬天裡,您穿上好幾件衣服或穿最龐大的冬天使用的夾克禦寒。 但是,構建各防禦層可能阻止不了最堅決的惡意入侵者,當然這也不會總能夠防禦合法使用者盜竊公司財產。 這裡的組最後一道防線是加密,通過加密,使用者(或者惡意入侵者)只有使用密碼才

Oracle資料庫個人學習筆記

Oracle資料庫知識講解 第一章:使用者和表空間 1:登入部分 開啟SQL PLUS(Oracle資料庫裡不分大小寫) Sys(許可權要高於SYSTEM)和system兩個使用者名稱,密碼預設是不顯示的 當登入SYSTEM使用者名稱時。我設定的密碼是Wuyi148267

mysql資料庫深入學習

mysql 資料庫 一、資料庫介紹 1、關係型資料庫的特點 ​ 二維表 典型產品Oracle傳統企業,MySQL是網際網路企業 資料存取是通過SQL 最大特點,資料安全性方面強(ACID) 2、NoSQL:非關係型資料庫(Not only SQL) ​ 不是否定關係型資料庫,做關係型資料庫的的補充。 3、we

oracle資料庫學習02

簡單查詢的使用、SQL的基本語法 select * from emp; 在取得全部資料之後,可以發現某些列上會顯示 null 的資訊,那麼所謂的 null 表示 沒有內容。 null != 0,表示暫時位置的內容。 簡單查詢語句語法 SELECT [DISTINCT] *

學習致用——使用PL/SQL提取Oracle資料庫上下文資訊(使用者環境) (Extraction of Oracle context/User environment)

學了這麼久PL/SQL,是時候用一用了。 第一個任務:批量輸出Oracle資料庫上下文資訊(使用者環境) 程式碼: DECLARE TERMINAL VARCHAR2 (50); LANGUAG VARCHAR2 (5

Oracle資料庫學習(一)安裝和簡單使用

新公司的新專案,需要用到Oracle資料庫,所以現在便來解除此資料庫,不得不說,這個資料庫還這是麻煩。 安裝倒是簡單,就是中間會遇到各種問題。 安裝步驟參考:https://blog.csdn.net/fancheng614/article/details/78172894 安裝完成後,中間不要有太大的

oracle資料庫學習07

檢視 檢視其實就是一個或幾個實體表匯出的表,它本身不包含任何真實資料的虛擬表。資料庫中只存放檢視的定義,而不存放檢視對應的資料。(我的理解:檢視就是需要的時候把它從資料庫中調出來的一個視窗,可以觀察資料的變化,有點像大資料) 優點: 簡化使用者操作; 構建邏輯性;

oracle資料庫學習,參考學生就業資訊共享平臺(job_student_system)

學生就業資訊共享平臺mysql資料庫建立語句 學生就業資訊共享平臺oracle資料庫建立語句 學生就業資訊共享平臺sqlserver資料庫建立語句 學生就業資訊共享平臺spring+springMVC+hibernate框架物件(javaBean,pojo)設計

資料庫深入學習

首先輸入以下程式碼,創建出幾個表,方便使用 ## 學生表 CREATE TABLE student( stuid VARCHAR(10) PRIMARY KEY, stuname VARCHAR(50) ); ## 分數表 CREATE TABLE sco

Oracle資料庫學習心得(二)

20、單行函式:每次執行函式,傳入一行列值,返回一個結果;多行函式:每次執行函式,傳入多行列值,返回一個結果 21、字元型函式: (1)大小寫轉換:lower(小寫)、upper(大寫)、initcap(首字母大寫) (2)拼接字串:concat,例 selec

oracle資料庫基礎知識學習筆記

一、SQL語言分類: 1.DDL(資料定義語言):  create(建立)    alter(修改)  drop(刪除)------------主要是對錶操作。 2.DML(資料操作語言):  insert(插入)    delete(刪除)  update(更新)  

oracle 資料庫學習筆記

oracle 資料庫學習筆記 Giser-Yu 1、匯入命令 imp Test/[email protected] file='D:\bdcdata\Test.DMP' log='D:\bdcdata\Test_in.log' full=y; 引數tables=

Oracle資料庫學習第二天

Oracle資料庫學習第二天 目錄: 子查詢: 為什麼要有子查詢 子查詢的本質 子查詢型別 子查詢使用注意事項 子查詢與多表查詢效率問題 子查詢放置的位置 單行子查詢 多行子查詢 子查詢遇見空值問題

Oracle資料庫學習第二天對應練習題

Oracle資料庫學習第二天對應練習題 1、查詢和Zlotkey相同部門的員工姓名和僱用日期 Select ename,hire_date from emp where deptno=( select deptno from emp where ena

Oracle資料庫學習第一天對應練習題

Oracle資料庫學習第一天對應練習題 1、查詢工資大於12000的員工姓名和工資 SELECT ENAME ,SAL FROM EMP WHERE SAL>12000; 2、查詢員工號為176的員工的姓名和部門號 SELECT LAST_NAME,D