Oracle必备学习学习资料.docx
- 文档编号:12924653
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:44
- 大小:29.69KB
Oracle必备学习学习资料.docx
《Oracle必备学习学习资料.docx》由会员分享,可在线阅读,更多相关《Oracle必备学习学习资料.docx(44页珍藏版)》请在冰点文库上搜索。
Oracle必备学习学习资料
--创立表空间
Createtablespacenewer
datafile'd:
\tablespace\'
size50m
autoextendon;
--创立暂时表空间
CreateTEMPORARYtablespacetemp1
tempfile'd:
\tablespace\'
size10m
autoextendon;
--创立用户
createuserneweridentifiedbynewer;
--为用户指定表空间与暂时表空间
Alterusernewerdefaulttablespacenewer;
Alterusernewertemporarytablespacetemp1;
--为用户受权
Grantconnect,resource,createsession,
dba,createtable,createview,createtrigger,
selectanytable,createsequence,createprocedure,createrole,grantanyprivilege,dropanyrole,
createpublicsynonym,droppublicsynonym,SELECTANYDICTIONARYtonewer;
--ORACLE数据库中的伪列rowid,rownum
selectrownum,rowid,ename,empno,salfromemp;
--数据定义语言DDL
--create表的拘束
createtabletemp(
empnonumber,
enamevarchar2(200),
deptnonumber,
edatedatedefaultsysdate,--默认值
addressvarchar2(200)notnull,--非空
salNUMBER(8,2)CONSTRAINTemp_salary_minCHECK(sal>0),检--查constraintaaforeignkey(deptno)referencesdept(deptno),--外键constraintbbunique(ename),--独一
constraintccprimarykey(empno));--主键
--ALTER
altertabletempmodify(tidnumber(5));--改正列,当表中有值的时候不一样意altertabletempadd(taddvarchar2(2000));--增添列altertabletempdropcolumntadd;--删除列
--rename表的重命名
altertableemprenametonewname;
renameemptonewename
--重命名列名
altertableemprenamecolumnenametoaaa;
--truncate
truncatetabletemp;--截断表,保存构造。
不可以回滚
--drop
--删除用户(级联)
dropusernewercascade;
--删除表空间(包括的所有内容)
droptablespaceincludingcontents;
--删除表
droptabletemp;--从数据库中删除表及所有数据
--数据操控语言DML
select
insert
update
delete
--利用现有表创立新表
createtabletempasselect*fromemp;
--向表插入现有表的数据
insertintotemp(ename)selectenamefromemp;
--使用又名三种方法,真接写,AS,加""号
--delete与truncate的差别
--事务控制语言TCL(commit,savepoint,rollback)
--提交
commitwork;
commit;
--保存点(标志)
savepointsname;
--回滚
rollback;
rollbacktosavepointsname;
--事务示例
updateempsetename='aaa'whereempno=7369;
savepointsavename;
deleteempwhereemp=7369;
savepointsavename1;
rollbacktosavepointsavename;
commit;
--数据控制语言DCL(grant,revoke)
--将对象的权限授与用户
grantallonemptousername;
grantselect,update,delete,insertonemptousername;
--将角色的权限授与用户
grantconnecttousername;--连结数据库
grantresourcetousername;--使用数据表空间
grantunlimitedtablespacetousername;--表空间无穷增添grantgrantanyprivilegetousername;--授与能够受权的权限--删除用户权限
revokeconnectforusername;--删除角色权限
revokeselectonempforusername;--删除对象权限
--使用会合操作符
union--结合(去重复)
unionall--结合所有(不去重复)
intersect--交集
minus--减集
--示例
selectdeptnofromempunionselectdeptnofromdept;--
取并集去重复
selectdeptnofromempunionallselectdeptnofromdept;--
取并集
selectdeptnofromempintersectselectdeptnofromdept;--
取交集
--注意下边两个表的地点不一样,结果的差别,从第一个结果里找出不存在于第二个会合里的记录
selectdeptnofromempminusselectdeptnofromdept;
selectdeptnofromdeptminusselectdeptnofromemp;--取差集
--函数
--单行函数
--日期函数
selectadd_months(sysdate,2)fromdual;--
月加
selectmonths_between(sysdate,sysdate)fromdual;--求两日期月差
selectlast_day(sysdate)fromdual;--当月最后一天
selectround(sysdate,'YEAR')fromdual;--YEAR舍入到近来的年,
MONTH舍入近来的月
DAY天
selectnext_day(sysdate,'礼拜二')fromdual;--返回下个礼拜几的日期
selecttrunc(sysdate,'YEAR')fromdual;--YEAR截断日期到年代日,与
round的差别是只舍不入
默认返回天
selectextract(yearfromsysdate)fromdual;--返回日期的特定部分
year,month,day
--字符函数
selectinitcap('adsfad')fromdual;--首写母大写
selectlower('AAAA')fromdual;--变换小写
selectupper('bbb')fromdaul;--
变换大写
selectchar(67)fromdual;--返回ASCII码字符
selecttrim(leading'9'from'89')fromdual;--
去前面
selecttrim(trailing'9'from'89')fromdual;--
去后边
selecttrim('9'from'89')fromdual;--去所有
selecttrim('89
')fromdual;--去空格
selectltrim('89','9')fromdual;--
去左侧9
selectrtrim('89','9')fromdual;--
去右侧9
selectlength('string
')fromdual;--返回字符串长度注意空格也算长度
selectdecode('abcd','abcd','1234')fromdual;--
逐值替代,可替代多个,完整相同才替代
selecttranslate('jack','abcd','1234')fromdual;--
在jack顶用1234
翻译abcd来替代此中的字符
selectreplace('jack','ck','hh')fromdual;--把'jack'中的ck替代为hh
selectinstr('jack','c')fromdual;--找出JACK中的C所处的地点,索引是从
1开始的
selectsubstr('jack',2,1)fromdual;--截断字符串
selectconcat('asdf','dddd')fromdual;--归并字符串
--数字函数
ceil--向上取整
abs--取绝对值
sqrt--求平方
power(m,n)--取M的N次幂
cos--取余弦函数
sin--取正弦
sign--取符号
mod(m,n)--取模
round(m,n)--四舍五入
trunc(m,n)--截断
floor--向下取整
--变换函数
selectto_char(sysdate,'YYYY-MM-DD')fromdual;--日期变换
selectto_char('456','c9999')fromdual;--增添人民币符号CNY
selectto_date('2005-2-3','YYYY-MM-DD')fromdual;--将字符转为日期
selectsqrt(to_number('100'))fromdual;--
数字变换函数,取平方根
--其余函数
selectnvl('','空')fromdual;
selectnvl2('','不空','空')fromdual;
selectnullif('123','123')fromdual;--相等返回空,否返回前一个
--合函数
selectavg(sal)fromemp;--求均匀
selectsum(sal)fromemp;--乞降
selectmin(sal)fromemp;--最小
selectmax(sal)fromemp;--最大
selectcount(*)fromemp;--求数
selectcount(comm)fromemp;--不空的数
selectcount(distinctdeptno)fromemp;--不重复数
selectdeptno,max(sal)fromempgroupbydeptno;--分最大selectdeptno,max(sal)fromempgroupbydeptnohavingmax(sal)>2000;--剖析函数
--row_number函数重复数据排序也不一样
selectename,sal,row_number()over(orderbysaldesc)asrankfromemp;--排序,数据重复排序不一样
--rank()over(partitionby'',orderby'')--重复序号跳
selectdeptno,ename,sal,rank()over(partitionbydeptnoorderbysaldesc,comm)rankfromemp;
--dense_rank()over(partitionby'',orderby'')--重复
selectdeptno,ename,sal,dense_rank()over(partitionbydeptnoorderbysaldesc,comm)rankfromemp;
--行
在操SQL句后FORUPDATEOF列名1,列名2WAIT5或NOWAIT
--表及定的法及的种
LOCKTABLETABLENAMEIN[MODE]MODE[NOWAIT];
--[MODE]型
--行共亨ROWSHARE允其余用表做新增、除、改正操作、并且能够表行定,除排它外。
--行排他ROWEXCLUSIVE与行共亨相像,允其余用改正表中的,限制其余用不
能再建SHARE共亨,sharerowexclusive共亨行排他,exclusive排他,其余的都能够建。
--共亨SHARE其余用能够不可以改正不可以除,不可以新增,能够建共亨,行共亨,
其余都不可以建。
允用表使用seelct⋯⋯forupdate表行定
--共亨行排他SHARErowEXCLUSIVE比共亨更多的限制,不可以改正表里的,其余用
不可以在此表上用共亨、共享行排他、行排他及排他,只好够使用行共亨,允用
使用select⋯⋯forupdate表行定。
--排他EXCLUSIVE最大限制的锁,其余用户只好对表做查问,不可以新增,改正,删除,不可以再对表建任何种类的锁。
--解锁
履行ROLLBACK或COMMIT
--创立范围分区
createtabletemp1
(
empnonumber,
enamevarchar2(1000),
salnumber
)
partitionbyrange(sal)
(
partitionp1valueslessthan(1000),
partitionp2valueslessthan(2000),
partitionp3valueslessthan(3000)
--假如是日期to_date('2004-01-01','YYYY-MM-DD')或date'2004-01-01'
);
--创立散列分区
createtabletemp3
(
empnonumber,
enamevarchar2(1000),
salnumber
)
partitionbyhash(sal)
(
partitionp1,
partitionp2,
partitionp3,
partitionp4
);
或
createtabletemp3
(
empnonumber,
enamevarchar2(1000),
salnumber
)
partitionbyhash(sal)
partitions4;
--分区记录操作
--插入
insertintotemp1values(100,'张三',3000);
--查问分区记录
select*fromtemp1partition(p1);
--查问子分区记录
select*fromtemp1subpartition(p1);
--删除
deletetemp1partition(p1);
--改正
updatetemp1partition(p2)setename='李四'whereempno=100;
--增添分区
altertabletemp1addpartitionp4valueslessthan(4000);
--归并分区
altertabletemp1mergepartitionsp1,p2intopartitionp2;
--拆分分区
altertabletemp1splitpartitionp2at(1000)into(partitionp21,partitionp22);--分区更名
altertabletemp1renamepartitionp21top1;
altertabletemp1renamepartitionp22top2;
--截断分区
altertabletemp1truncatepartitionp1;
--删除分区
altertabletemp1droppartitionp1;
--创立(范围-散列)复合分区
createtabletemp1
(
empnonumber,
enamevarchar2(1000),
salnumber
)
partitionbyrange(sal)
subpartitionbyhash(empno)
subpartitions5
(
partitionp1valueslessthan(1000),
partitionp2valueslessthan(2000),
partitionp3valueslessthan(3000)
)
--创立(范围-列表)复合分区
createtabletemp1
(
empnonumber,
enamevarchar2(1000),
salnumber
)
PARTITIONBYRANGE(sal)
SUBPARTITIONBYLIST(ename)
SUBPARTITIONTEMPLATE
(SUBPARTITIONmanVALUES刘('德华','张学友'),
SUBPARTITIONwomanVALUES王('菲','赵薇'),
SUBPARTITIONotherVALUES(DEFAULT))
(PARTITIONp1VALUESLESSTHAN(1000),
PARTITIONp2VALUESLESSTHAN(2500),
PARTITIONp3VALUESLESSTHAN(3000));
--创立列表分区
createtabletemp2
(
empnonumber(10),
enamevarchar2(1000),
salnumber(10)
)
partitionbylist(ename)
(
partitionldhvalues('刘德华'),
partitionzrfvalues('周润发'),
partitionqtvalues('王菲','赵薇')
);
--查问表分区数据(分区名必定要带括号)
select*fromtemp2partition(ldh);
--参照内容,索引分区:
--注意GLOBAL,是全局索引,LOCAL是当地索引
CREATEINDEXsal_ixONtemp2(sal)
GLOBALPARTITIONBYRANGE(sal)
(PARTITIONpm1_ixVALUESLESSTHAN(1000),
PARTITIONpm2_ixVALUESLESSTHAN(2000),
PARTITIONpm3_ixVALUESLESSTHAN(3000),
PARTITIONpm4_ixVALUESLESSTHAN(MAXVALUE));
--查问分区信息
select*fromuser_tab_partitions--查问分区
select*fromuser_tab_subpartitions--查问子分区
select*fromuser_part_tables--查问分区种类
select*fromuser_subpart_key_columns;
oracle表级锁增补知识
ROWSHARE:
能够多个用户更新不一样行,可是不一样意其余用户加EXCLUSIVE锁
ROWSHARE行共享,同意其余用户同时更新其余行,同意其余用户同时加共享锁,不一样意有独占(排他性质)的锁
ROWEXCLUSIVE行排他,同意其余用户同时更新其余行,只同意其余用户同时加行共享锁或许行排他锁
SHARE共享,不一样意其余用户同时更新任何行,只同意其余用户同时加共享锁或许行共享锁
SHAREROWEXCLUSIVE共享行排他,同意其余用户同时更新其余行,只同意其余用户同时加行共享锁
EXCLUSIVE排他,其余用户严禁更新任何行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 必备 学习 资料