Oracle数据处理
SQL> /*數(shù)據(jù)庫(kù)中語(yǔ)言:
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1600??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1250??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1250?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2850??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1500????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 950??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????
已選擇14行。
SQL> /*
SQL> 數(shù)據(jù)庫(kù)中語(yǔ)言:
SQL> DML: 數(shù)據(jù)庫(kù)操作語(yǔ)言,select insert update delete
SQL> DDL: 數(shù)據(jù)庫(kù)定義語(yǔ)言:cretae table, create user, create view
SQL> DCL: 數(shù)據(jù)庫(kù)控制語(yǔ)言: commit,rollback,grant,revoke
SQL> */
SQL> --插入語(yǔ)句;insert
SQL> --往員工表插入一條數(shù)據(jù)
SQL> insert into emp(empno,ename) values(1234,'Tom');
已創(chuàng)建 1 行。
SQL> desc
用法: DESCRIBE [schema.]object[@db_link]
SQL> desc emp;
?名稱????????????????????????????????????????????????????????????? 是否為空? 類型
?----------------------------------------------------------------- -------- --------------------------------------------
?EMPNO???????????????????????????????????????????????????????????? NOT NULL NUMBER(4)
?ENAME????????????????????????????????????????????????????????????????????? VARCHAR2(10)
?JOB??????????????????????????????????????????????????????????????????????? VARCHAR2(9)
?MGR??????????????????????????????????????????????????????????????????????? NUMBER(4)
?HIREDATE?????????????????????????????????????????????????????????????????? DATE
?SAL??????????????????????????????????????????????????????????????????????? NUMBER(7,2)
?COMM?????????????????????????????????????????????????????????????????????? NUMBER(7,2)
?DEPTNO???????????????????????????????????????????????????????????????????? NUMBER(2)
SQL> insert into emp values(1235,'Mary','SALEMAN',7839,sysdate,1000,1000,10);
已創(chuàng)建 1 行。
SQL> --往emp表中插入10個(gè)員工信息
SQL> --oracle中地址符
SQL> insert into emp values(&empno,'&ename','&job',&mgr,&hiredate,&sal,&comm,&deptno);
輸入 empno 的值:? 2222
輸入 ename 的值:? Mike
輸入 job 的值:? SALEMAN
輸入 mgr 的值:? 7839
輸入 hiredate 的值:? sysdate
輸入 sal 的值:? 2000
輸入 comm 的值:? 1500
輸入 deptno 的值:? 20
原值??? 1: insert into emp values(&empno,'&ename','&job',&mgr,&hiredate,&sal,&comm,&deptno)
新值??? 1: insert into emp values(2222,'Mike','SALEMAN',7839,sysdate,2000,1500,20)
已創(chuàng)建 1 行。
SQL> --關(guān)于地址符,對(duì)于數(shù)字,&empno;對(duì)于字符串,需要單引號(hào)
SQL> /
輸入 empno 的值:?
輸入 ename 的值:?
輸入 job 的值:?
輸入 mgr 的值:?
輸入 hiredate 的值:?
輸入 sal 的值:?
輸入 comm 的值:?
輸入 deptno 的值:?
原值??? 1: insert into emp values(&empno,'&ename','&job',&mgr,&hiredate,&sal,&comm,&deptno)
新值??? 1: insert into emp values(,'','',,,,,)
insert into emp values(,'','',,,,,)
?????????????????????? *
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00936: 缺失表達(dá)式
SQL> --在select中使用地址符
SQL> select *
? 2? from &table;
輸入 table 的值:? emp
原值??? 2: from &table
新值??? 2: from emp
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1600??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1250??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1250?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2850??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1500????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 950??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1000?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2000?????? 1500???????? 20??????????????????????????????????
已選擇17行。
SQL> /
輸入 table 的值:? dept
原值??? 2: from &table
新值??? 2: from dept
??? DEPTNO DNAME????????? LOC??????????????????????????????????????????????????????????????????????????????????????????
---------- -------------- -------------????????????????????????????????????????????????????????????????????????????????
??????? 10 ACCOUNTING???? NEW YORK?????????????????????????????????????????????????????????????????????????????????????
??????? 20 RESEARCH?????? DALLAS???????????????????????????????????????????????????????????????????????????????????????
??????? 30 SALES????????? CHICAGO??????????????????????????????????????????????????????????????????????????????????????
??????? 40 OPERATIONS???? BOSTON???????????????????????????????????????????????????????????????????????????????????????
SQL> select &col
? 2? from emp;
輸入 col 的值:? ename
原值??? 1: select &col
新值??? 1: select ename
ENAME??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
----------?????????????????????????????????????????????????????????????????????????????????????????????????????????????
SMITH??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
ALLEN??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
WARD???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
JONES??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
MARTIN?????????????????????????????????????????????????????????????????????????????????????????????????????????????????
BLAKE??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
CLARK??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
SCOTT??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
KING???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
TURNER?????????????????????????????????????????????????????????????????????????????????????????????????????????????????
ADAMS??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
ENAME??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
----------?????????????????????????????????????????????????????????????????????????????????????????????????????????????
JAMES??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
FORD???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
MILLER?????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Tom????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Mary???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Mike???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
已選擇17行。
SQL> --關(guān)于空值的插入
SQL> -- 隱式插入空值
SQL> insert into emp(empno,ename) values(2345,'ABC');
已創(chuàng)建 1 行。
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1600??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1250??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1250?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2850??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1500????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 950??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1000?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2000?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
已選擇18行。
SQL> --顯示插入空值
SQL> insert into emp value(2346,'BBB',null,null,null,null,null,null);
insert into emp value(2346,'BBB',null,null,null,null,null,null)
????????????????????? *
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00928: 缺失 SELECT 關(guān)鍵字
SQL> ed
已寫(xiě)入 file afiedt.buf
? 1* insert into emp values(2346,'BBB',null,null,null,null,null,null)
SQL> /
已創(chuàng)建 1 行。
SQL> --在插入數(shù)據(jù)中使用函數(shù)
SQL> insert into emp(empno,ename,hiredate) values(1122,'CCC', to_date('2011-06-12','yyyy-mm-dd'));
已創(chuàng)建 1 行。
SQL> host cls
SQL> --一次插入多條記錄
SQL> --創(chuàng)建一個(gè)新表,保存10號(hào)部門(mén)的員工信息
SQL> create table emp10 as select * from emp where 1=2;
表已創(chuàng)建。
SQL> select * from emp10;
未選定行
SQL> desc emp10;
?名稱????????????????????????????????????????????????????????????? 是否為空? 類型
?----------------------------------------------------------------- -------- --------------------------------------------
?EMPNO????????????????????????????????????????????????????????????????????? NUMBER(4)
?ENAME????????????????????????????????????????????????????????????????????? VARCHAR2(10)
?JOB??????????????????????????????????????????????????????????????????????? VARCHAR2(9)
?MGR??????????????????????????????????????????????????????????????????????? NUMBER(4)
?HIREDATE?????????????????????????????????????????????????????????????????? DATE
?SAL??????????????????????????????????????????????????????????????????????? NUMBER(7,2)
?COMM?????????????????????????????????????????????????????????????????????? NUMBER(7,2)
?DEPTNO???????????????????????????????????????????????????????????????????? NUMBER(2)
SQL> --如果where 1=1,創(chuàng)建表的同時(shí),拷貝數(shù)據(jù)
SQL> create table emp101 as select * from emp where 1=1;
表已創(chuàng)建。
SQL> select * from emp101
? 2? ;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1600??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1250??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1250?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2850??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1500????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 950??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1000?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2000?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
SQL> insert into emp10 (empno,ename,job,mgr,hiredate,sal,comm,deptno)
? 2? select *
? 3? from emp
? 4? where deptno=10;
已創(chuàng)建4行。
SQL> select * from emp10;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1000?????? 1000???????? 10??????????????????????????????????
SQL> host cls
SQL> --更新數(shù)據(jù): update
SQL> --update emp set .... where,如果沒(méi)有where,作用對(duì)象為整張表
SQL> --給員工漲工資,漲1塊錢(qián)
SQL> update emp set sal=sal+1;
已更新20行。
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2451??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5001??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1301??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1001?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
SQL> --在update中使用地址符
SQL> update emp set sal=&newsal where deptno=10;
輸入 newsal 的值:? sal+100
原值??? 1: update emp set sal=&newsal where deptno=10
新值??? 1: update emp set sal=sal+100 where deptno=10
已更新4行。
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2551??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5101??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1401??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1101?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
SQL> --外鍵可不可為null?
SQL> --1.如果外鍵不為null,它必須是父表中的某個(gè)值
SQL> --2.為空,子表中對(duì)應(yīng)的列沒(méi)有定義not null
SQL> --刪除表中的數(shù)據(jù) delete truncate
SQL> /*
SQL> 1. delete一條一條刪除;truncate:清空表。
SQL> 2. delete可以rollback;truncate不可以
SQL> 3. delete會(huì)產(chǎn)生碎片; truncate不會(huì)
SQL> 4.
SQL> */
SQL> --4. delete 不會(huì)釋放空間;truncate釋放空間
SQL> --對(duì)比delete和truncate的性能
SQL> @c:\sql.sql
表已創(chuàng)建。
已創(chuàng)建 1 行。
已用時(shí)間:? 00: 00: 00.00
提交完成。
已用時(shí)間:? 00: 00: 00.00
SQL> host cls
SQL> delete from testdelete;
已刪除5000行。
已用時(shí)間:? 00: 00: 00.06
SQL> host cls
SQL> rollback;
回退已完成。
已用時(shí)間:? 00: 00: 00.04
SQL> host cls
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2551??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5101??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1401??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1101?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
已用時(shí)間:? 00: 00: 00.00
SQL> host cls
SQL> --事務(wù)
SQL> /*
SQL> 開(kāi)始標(biāo)志:DML
SQL> 顯示結(jié)束:commit rollback exit(正常退出)
SQL> 隱式結(jié)束: 系統(tǒng)掉電,系統(tǒng)宕機(jī),非正常退出
SQL> */
SQL> /*
SQL> insert delete select, create table,grant
SQL> */
SQL> --事務(wù)實(shí)驗(yàn)一:
SQL> rollback;
回退已完成。
已用時(shí)間:? 00: 00: 00.06
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2551??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5101??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1401??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1101?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
已用時(shí)間:? 00: 00: 00.23
SQL> delete from emp where empn=1122;
delete from emp where empn=1122
????????????????????? *
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00904: "EMPN": 標(biāo)識(shí)符無(wú)效
已用時(shí)間:? 00: 00: 00.06
SQL> delete from emp where empno=1122;
已刪除 1 行。
已用時(shí)間:? 00: 00: 00.00
SQL> set timing off
SQL> update emp set ename='BBB123' where empno=2346;
已更新 1 行。
SQL> rollback;
回退已完成。
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2551??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5101??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1401??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1101?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
SQL> --使用存儲(chǔ)點(diǎn)回滾事務(wù)中部分的語(yǔ)句
SQL> update emp set ename='BBB123' where empno=2346;
已更新 1 行。
SQL> savepoint a;
保存點(diǎn)已創(chuàng)建。
SQL> delete from emp where empno=1122;
已刪除 1 行。
SQL> rollback to a;
回退已完成。
SQL> commit;
提交完成。
SQL> select * from emp;
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 801??????????????????? 20??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1601??????? 300???????? 30??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1251??????? 500???????? 30??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2976??????????????????? 20??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1251?????? 1400???????? 30??????????????????????????????????
????? 7698 BLAKE????? MANAGER???????? 7839 01-5月 -81????? 2851??????????????????? 30??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2551??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3001??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5101??????????????????? 10??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1501????????? 0???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1101??????????????????? 20??????????????????????????????????
???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7900 JAMES????? CLERK?????????? 7698 03-12月-81?????? 951??????????????????? 30??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3001??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1401??????????????????? 10??????????????????????????????????
????? 1234 Tom?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1235 Mary?????? SALEMAN???????? 7839 12-6月 -11????? 1101?????? 1000???????? 10??????????????????????????????????
????? 2222 Mike?????? SALEMAN???????? 7839 12-6月 -11????? 2001?????? 1500???????? 20??????????????????????????????????
????? 2345 ABC?????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 2346 BBB123??????????????????????????????????????????????????????????????????????????????????????????????????????
????? 1122 CCC???????????????????????????? 12-6月 -11??????????????????????????????????????????????????????????????????
已選擇20行。
SQL> /*
SQL> JDBC中:
SQL> conn = JDBCUtil.getConection();
SQL> conn.setAutoCommit(false);
SQL> sql1
SQL> sql2
SQL> Savepoint sp = conn.setSavePoint();
SQL> sql3
SQL> sql4
SQL> conn.rollback(sp);
SQL> */
SQL> spool off
總結(jié)
以上是生活随笔為你收集整理的Oracle数据处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 晚上为什么不能吃榴莲?
- 下一篇: Oracle创建和管理表