新聞中心
準(zhǔn)備 |
col empno for 9999; col ename for a10; col job for a10; col mgr for 9999; col hiredate for a12; col sal for 9999; col comm for 9999; col deptno for 99; col tname for a40; set pagesize 80; 讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、巨鹿網(wǎng)站維護(hù)、網(wǎng)站推廣。 |
--創(chuàng)建新表xxx_emp,復(fù)制emp表中的結(jié)構(gòu),同時(shí)復(fù)制emp表的所有數(shù)據(jù) create table xxx_emp as select * from emp; |
回顧SQL92/99標(biāo)準(zhǔn)的四大類(lèi)
(1)DML(數(shù)據(jù)操縱語(yǔ)言):select,insert,update,delete
(2)DDL(數(shù)據(jù)定義語(yǔ)言):create table,alter table,drop table,truncate table
(3)DCL(數(shù)據(jù)控制語(yǔ)言):grant select any table to scott/revoke select any table from scott
(4)TCL(事務(wù)控制語(yǔ)言):commit,rollback,savepoint to 回滾點(diǎn)
向emp表中插入一條記錄(方式一:按表默認(rèn)結(jié)構(gòu)順序)insert into 表名 values ...語(yǔ)法
insert into emp values(1111,'JACK','IT',7788,sysdate,1000,100,40);
向emp表中插入一條記錄(方式二:按自定義順序)insert into 表名(列名) values ...語(yǔ)法
insert into emp(ENAME,EMPNO,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values('MARRY',2222,'IT',7788,sysdate,1000,100,40);
向emp表中插入NULL值(方式一:采用顯示插入NULL值)
insert into emp values(3333,'SISI','IT',7788,sysdate,1000,NULL,40);
向emp表中插入NULL值 (方式二:采用隱式插入NULL值),前提是所插入的字段允許插入NULL值
insert into emp(ENAME,EMPNO,JOB,MGR,HIREDATE,SAL,DEPTNO) values('SOSO',4444,'IT',7788,sysdate,1000,40);
【&占位符應(yīng)用于insert】使用&占位符,動(dòng)態(tài)輸入值,&可以運(yùn)用在任何一個(gè)DML語(yǔ)句中,在values子句中使用,例如:'&ename'和&sal
insert into emp values(&empno,'&ename','&job',&mgr,&hiredate,&sal,&comm,&xxxxxxxx);
注意:&是sqlplus工具提供的占位符,如果是字符串或日期型要加''符,數(shù)值型無(wú)需加''符
【&占位符應(yīng)用于select的表名】使用&占位符,動(dòng)態(tài)輸入值,&可以運(yùn)用在任何一個(gè)DML語(yǔ)句中,在from子句中使用
select * from &table;
【&占位符應(yīng)用于select的列名】使用&占位符,動(dòng)態(tài)輸入值,&可以運(yùn)用在任何一個(gè)DML語(yǔ)句中,在select子句中使用
select empno,ename,&colname from emp;
【&占位符應(yīng)用于where】使用&占位符,動(dòng)態(tài)輸入值,&可以運(yùn)用在任何一個(gè)DML語(yǔ)句中,在where子句中使用
select * from emp where sal > &money;
【&占位符應(yīng)用于group by和having】使用&占位符,動(dòng)態(tài)輸入值,&可以運(yùn)用在任何一個(gè)DML語(yǔ)句中,在group by 和 having子句中使用
select deptno,avg(sal) from emp group by &deptno having avg(sal) > &money;
刪除emp表中的所有記錄
delete from emp;
將xxx_emp表中所有20號(hào)部門(mén)的員工,復(fù)制到emp表中,批量插入,insert into 表名 select ...語(yǔ)法
insert into emp select * from xxx_emp where deptno=20;
將'SMITH'的工資增加20%
update emp set sal=sal*1.2 where ename = upper('smith');
將'SMITH'的工資設(shè)置為20號(hào)部門(mén)的平均工資,這是一個(gè)條件未知的事物,優(yōu)先考慮子查詢(xún)
第一:20號(hào)部門(mén)的平均工資
select avg(sal) from emp where deptno=20;
第二:將'SMITH'的工資設(shè)置為2207
update emp set sal=2207 where ename = 'SMITH';
子查詢(xún):
update emp set sal = ( select avg(sal) from emp where deptno=20 ) where ename = 'SMITH';
刪除工資比所有部門(mén)平均工資都低的員工,這是一個(gè)條件未知的事物,優(yōu)先考慮子查詢(xún)
第一:查詢(xún)所有部門(mén)的平均工資
select avg(sal) from emp group by deptno;
第二:刪除工資比(*,*,*)都低的員工
delete from emp where sal子查詢(xún):
delete from emp where sal < all( select avg(sal) from emp group by deptno );刪除無(wú)傭金的員工
delete from emp where comm is null;將emp表丟入回收站,drop table 表名
drop table emp;從回收站將emp表閃回,flashback table 表名 to before drop
flashback table emp to before drop;查詢(xún)回收站,show recyclebin
show recyclebin;清空回收站,purge recyclebin
purge recyclebin;使用關(guān)鍵字purge,徹底刪除emp表,即不會(huì)將emp表丟入回收站,永久刪除emp表,drop table 表名 purge
drop table emp purge;依據(jù)xxx_emp表結(jié)構(gòu),創(chuàng)建emp表的結(jié)構(gòu),但不會(huì)插入數(shù)據(jù)
create table emp as select * from xxx_emp where 1<>1;create table emp(empno,ename) as select empno,ename from xxx_emp where 1=2;
創(chuàng)建emp表,復(fù)制xxx_emp表中的結(jié)構(gòu),同時(shí)復(fù)制xxx_emp表的所有數(shù)據(jù)
create table emp as select * from xxx_emp where 1=1;注意:where不寫(xiě)的話(huà),默認(rèn)為true
將emp截?cái)啵僮詣?dòng)創(chuàng)建emp表,truncate table 表名
truncate table emp;向emp表,批量插入來(lái)自xxx_emp表中部門(mén)號(hào)為20的員工信息,只包括empno,ename,job,sal字段
insert into emp(empno,ename,job,sal) select empno,ename,job,sal from xxx_emp where deptno=20;
向emp表(只含有empno和ename字段),批量插入xxx_emp表中部門(mén)號(hào)為20的員工信息
insert into emp(empno,ename) select empno,ename from xxx_emp where deptno=20;
drop table 和 truncate table 和 delete from 區(qū)別: drop table
1)屬于DDL
2)不可回滾
3)不可帶where
4)表內(nèi)容和結(jié)構(gòu)刪除
5)刪除速度快
truncate table
1)屬于DDL
2)不可回滾
3)不可帶where
4)表內(nèi)容刪除
5)刪除速度快
delete from
1)屬于DML
2)可回滾
3)可帶where
4)表結(jié)構(gòu)在,表內(nèi)容要看where執(zhí)行的情況
5)刪除速度慢,需要逐行刪除
當(dāng)前名稱(chēng):Oracle系列:(19)增刪改數(shù)據(jù)
標(biāo)題鏈接:http://www.dlmjj.cn/article/jicosg.html