Oracle基礎知識 高階insert語句

2021-08-31 20:33:50 字數 1772 閱讀 6011

以scott使用者下的emp,dept等幾張表作為示範,sqlplus演示。

首先建立兩張空e1, e2:

sql> create table e1 as select ename, sal, hiredate from emp where 1=2;

表已建立。

sql> create table e2 as select ename, deptno, mgr from emp where 1=2;

表已建立。

oracle向表裡插入資料有很多種方法

1. insert into *** values(***);

sql> insert into e1 values('test', 2000, to_date('20111111','yyyymmdd'));

已建立 1 行。

2. insert into *** select *** from ***;

sql> insert into e1 select ename, sal, hiredate from emp;

已建立14行。

3. 高階inert語句:將乙個查詢語句的結果插入到多張表中。

1). insert all

sql> insert all

2 into e1 values(ename, sal, hiredate)

3 into e2 values(ename, deptno, mgr)

4 select * from emp;

已建立28行。

即將查詢結果的每一行都插入到e1,e2表中。select * from emp 一共14行資料,所以共插入28行。 

2). insert first

sql> insert first

2 when sal > 2500 then

3 into e1 values(ename, sal, hiredate)

4 when sal >1000 then

5 into e2 values(ename, deptno, mgr)

6 select * from emp;

已建立12行。

查詢結果的一行只能插入到一張表,即使兩張表的條件都符合。寫在前面的條件優先插入...可以繼續測試一下:

sql> delete from e1;

已刪除5行。

sql> delete from e2;

已刪除7行。

sql> insert first

2 when sal > 1000 then

3 into e1 values(ename, sal, hiredate)

4 when sal > 2000 then

5 into e2 values(ename, deptno, mgr)

6 select * from emp;

已建立12行。

sql> select count(1) from e1;

count(1)

----------

12sql> select count(1) from e2;

count(1)

----------

0

可以看到,e2表中沒有插入任何行,因為滿足第二個條件的行都滿足第一條件,所以都插入到e1中了。所以需要在書寫條件的時候注意了...

ok~結束~

Oracle基礎知識

關於oracle的安裝過程這裡不再一一列出,網上有許多的安裝教程以及安裝過程所遇問題的解決辦法。通過學習所達到的目標如下 理解結構化查詢語句的作用 分類 理解select語句的作用 掌握選擇所有列 指定列 表示式 帶空值null 列別名 連線操作符 消除重複行的sql語句書寫方法。結構化查詢語言 s...

Oracle基礎知識

oracle基本划水知識 1.oracle 是乙個資料庫管理系統 啟動 服務 lsnrctl start 啟動資料庫服務 net start oracleserviceorcl 邏輯結構 資料庫 表空間 資料段 資料區間 資料段 進入資料庫 sqlplus 使用者名稱 密碼 切換使用者 conn 使...

oracle基礎知識

1.檢視所有使用者 select from dba user select from all users select from user users 2.檢視使用者系統許可權 select from dba sys privs select from all sys privs select fr...