MLDN-魔乐科技李兴华Oracle教程学习笔记_第1页
MLDN-魔乐科技李兴华Oracle教程学习笔记_第2页
MLDN-魔乐科技李兴华Oracle教程学习笔记_第3页
MLDN-魔乐科技李兴华Oracle教程学习笔记_第4页
MLDN-魔乐科技李兴华Oracle教程学习笔记_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NO.数据类型关键字描述1字符串Varcharr2(n)N表示该字符串串所能储存的的最大长度;2整数Number(nn)表示最多为n位位的整数,有有时候也可以以用int代代替;3小数Number(nn,m)N为小数,n-m为整数位位,有时也可可以使用flloat代替替;4日期Date存放日期和时间间5大文本Clob可以存储海量文文字,最大44G;6大对象Blob存放二进制数据据,例如电影影图片等;Oracle的数据类型:加粗字体(ctrl+B)使用ctrl+/可以快速的弹出一个虚拟符号键盘:(alt + 99999)如果只想复制表表的结构到另另一张表,而而不复制任何何的数据,则则可以使用一一个

2、永远查询询不到结果的的查询来执行行;Create tablee empnnull aas sellect * fromm emp wheree 1=2;为表重命名:在oraclee数据库中,所所有的数据实实际上都是通通过数据字典典保存的,例例如:sellect * fromm tab;以上就是一个数数据字典,而而在oraccle数据库库中,提供了了三种类型的的数据字典,最最常用的是ddbo、usser、所以以下面查询一一个userr_tablles数据字典;Select * froom useer_tabbles;也就是说oraacle中的的所有数据都都是按照文件件保存的,那那么所有的内内容都

3、会在数数据字典中注注册,既然这这样,修改表表名称就相当当于修改一条条数据而已:Rename 旧的表名称称 to 新新的表名称;如果希望彻底释释放掉一张表表所占用的全全部资源(表表空间、索引引等等)就可可以使用截断断表的语法,语语法如下:Truncatte tabble 表名名称;在oraclee10G中,为为了防止用户户的误删除表表的操作,专专门提供了回回收站的功能能,用户所删删除的表默认认情况下回在在一个回收站站之中保存,而而用户也可以以通过回收站站进行表的恢恢复,所以此此技术成为闪闪回(flaashbacck);可以通过如下名名称查看回收收站中的表:Show REECYCLEEBIN;OR

4、IGINAAL NAMME REECYCLEEBIN NNAME OBBJECT TYPE DROOP TIMME- - - -MEMBER BINN$r34NNm9OVRRxqjy88Jwh1KKWJw=$0 TAABLE 20122-01-225:10:28:511可以通过如下的的命令恢复别别删除的表:FLASHBAACK TAABLE 表表名称 TOO BEFOORE DRROP;例如恢复上面的的membeer表:Flashbaack taable mmemberr TO beefore drop;当然呢,也可以以直接删除掉掉回收站中的的而一些数据据表,语法如如下:Purage tabl

5、ee 表名称;比如删除回收站站中的memmber表:Purge ttable membeer;SQL puurge ttable membeer;表已清除。也可以清空回收收站;PURGE RRECYCLLEBIN;如果希望删除的的时候不进入入回收站,则则可以加一个个purgee关键字;Drop taable mmyemp purgee;表结构的修改:添加列:Altter taable aadd(列11 类型)等等和创建类似似;如果希望修改已已经存在的列列:Alter ttable modiffy ();和创建表类类似;但是表结构能不不修改就不修修改,因为世世界上性能最最好的DB22是不允许修修

6、改表结构的的;如果遇到到要修改表结结构的时候,把把表删除,然然后重新建立立;唯一约束: UUNIQUEEUnique对对于插入多行行为nulll的值的处理理理解为不重重复,因为这这里不知道它它的具体值;主键约束:PRRIMARYY KEY;主键约束=非空空约束+唯一一约束;设置为主键之后后,不允许为为空,而且不不允许重复;作为数据的的唯一标记出出现;从正常的开发而而言,一张表表一般只设置置一个主键,但但是从SQLL语法来看,一一张表可以设设置多个主键键,称为复合合主键:Create tablee membber(Mid nuumber,Name vvarchaar2(500) nott nul

7、ll,Constrraint pk_miid_namme priimary key(mmid,naame);检查约束:CheckCreate tablee membber(Mid nuumber,Name vvarchaar2(500) nott nulll,Sex varrchar22(10) not nnull,Age nummber(33) ,Constraaint ppk_midd_namee primmary kkey(miid),Constraaint cck_sexx checck (seex in(男,女,中),Constraaint cck_agee checck (agge

8、 bettween 0 andd 200);Drop taable mmemberr;Drop taable bbook;Create tablee membber(mid nnumberr,name vvarchaar2(500) nott nulll,Constraaint ppl_midd primmary kkey(miid);Create tablee bookk(bid nuumber,title varchhar2(550) noot nulll,mid nuumber,Constraaint ppk_bidd primmary kkey(biid),Constraaint ff

9、k_midd foreeign kkey(miid) reeferennces mmemberr(mid);笔记1部分:1、使用hosst 可以引引用winddows系统统的copyy命令等:Host coopy d:demoo.sql d:heello.ttxt2、scottt用户的表结结构:可以使用以下命命令查看所有有表:Select * frrom taab;可以使用以下命命令查看表结结构:Desc 表名名称;雇员表(以下)No.名称类型描述1EMPNONUMBER(4)雇员的编号,由由四位数字组组成2ENAMEVARCHARR2(10)雇员的姓名,由由十位字符组组成3JOBVARCHA

10、RR2(9)雇员的职位4MGRNUMBER(4)雇员对应的领导导编号,领导导也是雇员5HIREDATTEDATE雇员的雇佣日期期6SALNUMBER(7,2)基本工资,其中中两位小数,五五位整数7COMMNUMBER(7,2)奖金,佣金(销销售人员独有有的)8DEPTNONUMBER(2)雇员所在的部门门编号以下表存放工资资数据,基本本上用不到;工资登记表:NO.名称类型描述1GRADENUMBER工资的等级2LOSALNUMBER此登记的最低工工资3HISALNUMBER此等级的最高工工资SQL seelect 雇员编号号是:|empnoo|的雇雇员姓名是:|enname|,基本工工资是:|

11、sal|,职位位是|jjob|!雇员信信息 froom empp;雇员信息-雇员编号是:77369的雇雇员姓名是:SMITHH,基本工资资是:8000,职位是CCLERK!雇员编号是:77499的雇雇员姓名是:ALLENN,基本工资资是:16000,职位是是SALESSMAN!雇员编号是:77521的雇雇员姓名是:WARD,基本工资是是:12500,职位是SSALESMMAN!雇员编号是:77566的雇雇员姓名是:JONESS,基本工资资是:29775,职位是是MANAGGER!雇员编号是:77654的雇雇员姓名是:MARTIIN,基本工工资是:12250,职位位是SALEESMAN!雇员编号

12、是:77698的雇雇员姓名是:BLAKEE,基本工资资是:28550,职位是是MANAGGER!雇员编号是:77782的雇雇员姓名是:CLARKK,基本工资资是:24550,职位是是MANAGGER!雇员编号是:77788的雇雇员姓名是:SCOTTT,基本工资资是:30000,职位是是ANALYYST!雇员编号是:77839的雇雇员姓名是:KING,基本工资是是:50000,职位是PPRESIDDENT!雇员编号是:77844的雇雇员姓名是:TURNEER,基本工工资是:15500,职位位是SALEESMAN!雇员编号是:77876的雇雇员姓名是:ADAMSS,基本工资资是:11000,职位是

13、是CLERKK!在oraclee中所有的数数据都是区分分大小写的;大小写错误误可能查询不不出相应的数数据;以下三个查询语语句的结构是是相同的:Select * froom empp wherre jobb!=CLERKK;Select * froom empp wherre jobbCLERKK;Select * froom empp wherre nott job=CLERKK -这这三种语法都都可以在SQQL Serrver中使使用;对betweeen andd 求反:Select * froom empp wherre nott sal betweeen 15500 annd 30000

14、Betweenn and 不只是对数数据,对日期期也一样进行行操作;Select * froom empp wherre hirredatee betwween 01-1月月-19811 and 31-122月-81Set linnesizee 300;Set paggesizee 200;对于like操操作符,不止止可以用于字字符串型的数数据,而且可可以用于其他他类型的数据据;Order bby子句是写写在所有语句句最后的子句句;INITCAPP函数,将字字符串首字母母变为大写;而所有剩余余的字母会变变成小写;Oracle数数据库中为了了查询的方便便,专门提供供了一个duual的虚拟拟表,这

15、样ffrom后边边便可以跟这这个表名进行行查询;Select * froom empp wherre enaame=UPPPER(&hh);中的单单引号中间的的字符表示一一个变量,下下一步系统会会让用户输入入该变量的值值,然后系统统进行查询:结果图如下下:SQL seelect * froom empp wherre enaame=uppper(&hh);输入 hh 的的值: ssmith原值 11: sellect * fromm emp wheree enamme=uppper(&hh)新值 11: sellect * fromm emp wheree enamme=uppper(ssmi

16、th)EMPNO EENAME JOB MGR HHIREDAATE SALL COMMM DEPTTNO- - - - - - - -7369 SSMITH CLERKK 79002 17-12月-880 800 20字符串操作有两两种方式:语法一:subbstr(字字符串,开始始点)表示截截取该字符串串从开始点一一直到结尾的的部分;语法二:subbstr(字字符串,开始始点,结束点点)截取字符串倒数数三个字符:除了可以用leength(字字符串)-22以外,还可可以使用负数数表示:SQL seelect substtr(enaame,-33) froom empp;SUBSTR-ITHLE

17、NARDNESTINAKEARKOTTINGNERAMS面试题:请问ssubstrr截取的时候候下标是从00还是从1开开始?答:从0和1都都一样;数字函数:Round(数数字|列,保保留小数的位位数),表示示四舍五入的的操作;保留留小数位数如如果不写,则则表示不保留留小数;Trunc(数数字|列,保保留小数的位位数),舍弃弃指定位置的的内容;Mod(数字11,数字2)取取模,取余数数;SQL seelect roundd(903.535677),rouund(-9903.533567),roundd(903.535677,-1) from dual;ROUND(9903.533567) ROU

18、NDD(-9033.535667) ROOUND(9903.533567,-1)- - - 904 -9904 9900SQL seelect truncc(903.5325),trunnc(-9003.53667),trrunc(9903.533567,22),truunc(9003.535567,-11) froom duaal;TRUNC(9903.53325) TTRUNC(-903.5367) TRUNNC(9033.535667,2) TRUNCC(903.535677,-1)- - - - 903 -9033 9003.53 900可以使用syssdate来来取得当前日日期的值;

19、Oracle 函数大全(字符串函数数,数学函数数,日期函数数,逻辑运算算函数,其他他函数)关键词: HYPERLINK /tag/Oracle%BA%AF%CA%FD Orracle函函数 HYPERLINK /tag/%D7%D6%B7%FB%B4%AE%BA%AF%CA%FD 字符串函数数 HYPERLINK /tag/%CA%FD%D1%A7%BA%AF%CA%FD 数学学函数 HYPERLINK /tag/%C8%D5%C6%DA%BA%AF%CA%FD 日期函数数 HYPERLINK /tag/%C2%DF%BC%AD%D4%CB%CB%E3%BA%AF%CA%FD 逻辑辑运算函数

20、SQL中的单记记录函数 11.ASCIII 返回与与指定的字符符对应的十进进制数; SSQL sselectt asciii(A) A,aascii(a) a,asccii(00) zeero,asscii( ) sspace from dual; A A ZERO SPACEE - - - - 65 997 48 32 2.CHR 给给出整数,返返回对应的字字符; SQQL seelect chr(554740) zhaoo,chr(65) cchr65 from dual; ZH CC - - 赵 A 3.CONNCAT 连连接两个字符符串; SQQL seelect concaat(01

21、10-,888888888)|转223 高乾乾竞电话 ffrom ddual; 高乾竞电话话 - 0110-8888888888转23 44.INITTCAP 返返回字符串并并将字符串的的第一个字母母变为大写; SQL seleect innitcapp(smiith) upp ffrom ddual; UPP - SSmith 5.INSTRR(C1,CC2,I,JJ) 在一个个字符串中搜搜索指定的字字符,返回发发现指定的字字符的位置; C1 被被搜索的字符符串 C2 希望搜索的的字符串 II 搜索的开开始位置,默默认为1 JJ 出现的位位置,默认为为1 SQLL sellect iinst

22、r(oraccle trraningg,raa,1,22) insstringg fromm duall; INSSTRINGG - 9 6.LENGTTH 返回字字符串的长度度; SQLL sellect nname,llengthh(namee),adddr,lenngth(aaddr),sal,llengthh(to_cchar(ssal) from gao.nnchar_tst; NAME LENGTTH(NAMME) ADDDR LEENGTH(ADDR) SAL LENGTTH(TO_CHAR(SAL) - - - - - - 高乾竞竞 3 北京京市海锭区 6 99999.99 7

23、 7.LOWERR 返回字符符串,并将所所有的字符小小写 SQLL sellect llower(AaBbbCcDd)AaBbbCcDd from dual; AABBBCCDD - aaabbcccdd 8.UPPERR 返回字符符串,并将所所有的字符大大写 SQLL sellect uupper(AaBbbCcDd) uppper frrom duual; UUPPER - AAABBCCCDD 9.RPAD和和LPAD(粘贴字符) RPADD 在列的右右边粘贴字符符 LPADD 在列的左左边粘贴字符符 SQL seleect lppad(rppad(ggao,110,*),17,*)ff

24、rom ddual; LPAD(RPAD(GAO,1 - *gaao* 不不够字符则用用*来填满 10.LTRIIM和RTRRIM LTTRIM 删删除左边出现现的字符串 RTRIMM 删除右边边出现的字符符串 SQLL sellect lltrim(rtrimm( gaao qiaan jinng , ), ) ffrom ddual; LTRIM(RTRIMM( - gaoo qiann jingg 11.SUBSSTR(sttring,startt,counnt) 取子子字符串,从从startt开始,取ccount个个 SQL seleect suubstr(1308888888888,

25、33,8) ffrom ddual; SUBSTTR( - 0888888888 12.REPLLACE(strinng,ss1,s2) striing 希望望被替换的字字符或变量 s1 被替替换的字符串串 s2 要要替换的字符符串 SQLL sellect rreplacce(hee lovee you,he,i) fromm duall; REPPLACE(H - ii lovee you 13.SOUNNDEX 返返回一个与给给定的字符串串读音相同的的字符串 SSQL ccreatee tablle tabble1(xxm varrchar(8); SQL inserrt intto t

26、abble1 vvaluess(weaather); SQQL innsert into tablee1 vallues(wetheer); SQL inserrt intto tabble1 vvaluess(gaoo); SSQL sselectt xm ffrom ttable11 wherre souundex(xm)=ssoundeex(weeatherr); XXM - weatther wwetherr 14.TRIMM(s from striing) LEADIING 剪掉掉前面的字符符 TRAIILING 剪掉后面的的字符 如果果不指定,默默认为空格符符 15.AABS 返回

27、回指定值的绝绝对值 SQQL seelect abs(1100),aabs(-1100) ffrom ddual; ABS(1100) AABS(-1100) - - 1100 1000 16.ACOSS 给出反余余弦的值 SSQL sselectt acoss(-1) from dual; ACOSS(-1) - 3.14115927 17.ASINN 给出反正正弦的值 SSQL sselectt asinn(0.5) fromm duall; ASIIN(0.55) - .5223598778 18.ATANN 返回一个个数字的反正正切值 SQL sselectt atann(1) ffr

28、om ddual; ATAN(1) - .7785398816 19.CEILL 返回大于于或等于给出出数字的最小小整数 SQQL seelect ceil(3.14115927) fromm duall; CEIIL(3.114159227) - 44 20.COS 返回一个给给定数字的余余弦 SQLL sellect ccos(-33.14155927) from dual; COS(-3.144159277) - -1121.COOSH 返回回一个数字反反余弦值 SSQL sselectt coshh(20) from dual; COSHH(20) - 2425882598 22.EX

29、P 返回一个数数字e的n次次方根 SQQL seelect exp(22),expp(1) ffrom ddual; EXP(22) EXPP(1) - - 77.38900561 22.71822818 23.FLOOOR 对给定定的数字取整整数 SQLL sellect ffloor(2345.67) ffrom ddual; FLOORR(23455.67) - 2345 24.LN 返返回一个数字字的对数值 SQL selecct ln(1),lnn(2),lln(2.771828118) frrom duual; LLN(1) LN(2) LN(22.71822818) - - -

30、00 .6933147188 .9999999999 25.LOG(n1,n22) 返回一一个以n1为为底n2的对对数 SQLL sellect llog(2,1),loog(2,44) froom duaal; LOOG(2,11) LOGG(2,4) - - 0 2 26.MOD(n1,n22) 返回一一个n1除以以n2的余数数 SQL seleect mood(10,3),mood(3,33),modd(2,3) fromm duall; MODD(10,33) MODD(3,3) MOD(2,3) - - - 1 0 22 27.POWEER 返回nn1的n2次次方根 SQQL see

31、lect powerr(2,100),powwer(3,3) frrom duual; PPOWER(2,10) POWEER(3,33) - - 1024 27 28.ROUNND和TRUUNC 按照照指定的精度度进行舍入 SQL selecct rouund(555.5),rround(-55.44),truunc(555.5),ttrunc(-55.55) froom duaal; ROOUND(555.5) ROUNDD(-55.4) TRRUNC(555.5) TRUNCC(-55.5) - - - - 566 -55 55 -555 29.SIGNN 取数字nn的符号,大大于0返回

32、11,小于0返返回-1,等等于0返回00 SQL seleect siign(1223),siign(-1100),ssign(00) froom duaal; SIIGN(1223) SIIGN(-1100) SSIGN(00) - - - 1 -1 0 30.SIN 返回一个数数字的正弦值值 SQL seleect siin(1.557079) fromm duall; SINN(1.577079) - 1 31.SIGHH 返回双曲曲正弦的值 SQL selecct sinn(20),sinh(20) ffrom ddual; SIN(220) SIINH(200) - - .91129

33、45225 24225825998 32.SQRTT 返回数字字n的根 SSQL sselectt sqrtt(64),sqrt(10) ffrom ddual; SQRT(64) SSQRT(110) - - 8 3.16222777 33.TAN 返回数字的的正切值 SSQL sselectt tan(20),ttan(100) froom duaal; TAAN(20) TAN(10) - - 22.23711609 .648366083 34.TANHH 返回数字字n的双曲正正切值 SQQL seelect tanh(20),ttan(200) froom duaal; TAANH(2

34、00) TANN(20) - - 1 2.223716009 35.TRUNNC 按照指指定的精度截截取一个数 SQL selecct truunc(1224.16666,-2) trunnc1,trrunc(1124.166666,22) froom duaal; TRRUNC1 TRUNCC(124.166666,2) - - 1000 1244.16 36.ADD_MONTHHS 增加或或减去月份 SQL selecct to_char(add_mmonthss(to_ddate(1999112,yyyyymmm),2),yyyyymm) fromm duall; TO_CHA - 20

35、00002 SQQL seelect to_chhar(addd_monnths(tto_datte(1999912,yyyyymm),-2),yyyyymm) from dual; TO_CCHA - 1999110 37.LASTT_DAY 返回日期的的最后一天 SQL selecct to_char(sysdaate,yyyyy.mmm.dd),to_char(sysddate)+1,yyyyy.mmm.dd) fromm duall; TO_CHAR(SY TOO_CHARR(S - - 20044.05.009 20004.05.10 SQQL seelect last_day(ss

36、ysdatte) frrom duual; LLAST_DDAY(S - 31-55月 -044 38.MONTTHS_BEETWEENN(datee2,datte1) 给给出datee2-datte1的月份份 SQL seleect moonths_betweeen(119-12月月-19999,199-3月-11999) mon_betweeen frrom duual; MMON_BEETWEENN - 9 SQLsselecttmonthhs_bettween(to_daate(22000.005.20,yyyyy.mm.dd),to_daate(22005.005.20,yyyyy.

37、mm.dd) mon_betw from dual; MON_BETW - -60 39.NEW_TIME(date,thiss,thhat) 给出在thhis时区=otherr时区的日期期和时间 SSQL sselectt to_cchar(ssysdatte,yyyyy.mmm.dd hhh24:mmi:ss) bj_time,to_chhar(neew_timme 2 (sysdaate,PPDT,GMT),yyyyy.mm.dd hhh24:mii:ss) los_anglees froom duaal; BJJ_TIMEE LOS_ANGLEES - - 20004.05.09 11

38、1:05:332 20004.05.09 188:05:332 40.NEXTT_DAY(date,day) 给出日日期datee和星期x之之后计算下一一个星期的日日期 SQLL sellect nnext_dday(118-5月-2001,星期五五) neext_daay froom duaal; NEEXT_DAAY - 255-5月 -0141.SYSDAATE 用来来得到系统的的当前日期 SQL selecct to_char(sysdaate,ddd-mm-yyyy day) fromm duall; TO_CHAR(SYSDAATE, - 099-05-22004 星星期日 trr

39、unc(ddate,ffmt)按照照给出的要求求将日期截断断,如果fmmt=mii表示保留留分,截断秒秒 SQL seleect too_charr(trunnc(syssdate,hh),yyyyy.mm.dd hhh24:mii:ss) hh, 2 to_char(truncc(sysddate,mi),yyyyy.mm.ddd hh224:mi:ss) hhmm from dual; HH HHHMM - - 22004.005.09 11:000:00 22004.005.09 11:177:00 42.CHARRTOROWWID 将字字符数据类型型转换为ROOWID类型型 SQL s

40、eleect roowid,rrowidttocharr(rowiid),enname ffrom sscott.emp; ROWIDD ROWIIDTOCHHAR(ROOWID) ENAMEE - - - AAAAffKAACAAAAAEqqAAA AAAAAfKKAACAAAAAEqAAAA SMMITH AAAAAfKKAACAAAAAEqAAAB AAAAAfKAAACAAAAAEqAAAB ALLLEN AAAAAfKAAACAAAAAEqAAAC AAAAAfKAAACAAAAAEqAACC WARDD AAAAAfKAACCAAAAEEqAAD AAAAffKAACAAAAAEq

41、qAAD JJONES 43.CONVVERT(cc,dsett,ssett) 将源字字符串 ssset从一个个语言字符集集转换到另一一个目的dsset字符集集 SQL seleect coonvertt(strrutz,we8hhp,ff7dec) coonverssion from dual; convver - struttz 44.HEXTTORAW 将一个十六六进制构成的的字符串转换换为二进制 45.RAWTTOHEXTT 将一个二二进制构成的的字符串转换换为十六进制制 46.ROWIIDTOCHHAR 将RROWID数数据类型转换换为字符类型型 47.TO_CCHAR(ddate,

42、formaat) SSQL sselectt to_cchar(ssysdatte,yyyyy/mmm/dd hhh24:mmi:ss) froom duaal; TOO_CHARR(SYSDDATE,YY - 20004/055/09 221:14:41 48.TO_DDATE(sstringg,forrmat) 将字符串串转化为ORRACLE中中的一个日期期 49.TO_MMULTI_BYTE 将字符串中中的单字节字字符转化为多多字节字符 SQL selecct to_multii_bytee(高) fromm duall; TO - 高 50.TO_NNUMBERR 将给出的的字符转换为

43、为数字 SQQL seelect to_nuumber(19999) yeear frrom duual; YYEAR - 11999 51.BFILLENAMEE(dir,file) 指定一个个外部二进制制文件 SQQLinssert iinto ffile_ttb1 vaalues(bfileename(lob_dir1,imaage1.ggif); 52.CONVVERT(x,ddesc,sourrce) 将x字段或或变量的源ssourcee转换为deesc SQQL seelect sid,sseriall#,useernamee,decoode(coommandd, 2 00,non

44、ne, 33 2,iinsertt, 4 3, 5 seleect, 6 6,updatte, 77 7,ddeletee, 8 8,drrop, 9 othher) cmd ffrom vv$sesssion wwhere type!=bacckgrouund; SID SSERIALL# USEERNAMEE CMD - - - - 1 1 nonne 2 11 nonee 3 1 none 4 1 nnone 55 1 noone 6 1 nonne 7 11275 nnone 88 12755 nonee 9 200 GAO selecct 10 40 GAAO nonne 53.DU

45、MPP(s,fmmt,staart,leength) DUMPP函数以fmmt指定的内内部数字格式式返回一个VVARCHAAR2类型的的值 SQLL coll globbal_naame foor a300 SQL col dump_strinng forr a50 SQL set llin 2000 SQLL sellect ggloball_namee,dumpp(globbal_naame,10017,8,5) duump_sttring from globaal_namme; GLLOBAL_NAME DUMP_STRINNG - - OORACLEE.WORLLD Typp=1 Le

46、en=12 CharaacterSSet=ZHHS16GBBK: W,O,R,LL,D 54.EMPTTY_BLOOB()和EEMPTY_CLOB() 这两个个函数都是用用来对大数据据类型字段进进行初始化操操作的函数 55.GREAATEST 返回一组表表达式中的最最大值,即比比较字符的编编码大小. SQL selecct greeatestt(AA,AB,AC) froom duaal; GRR - AC SQL selecct greeatestt(啊,安,天) ffrom ddual; GR - 天 56.LEASST 返回一一组表达式中中的最小值 SQL selecct leaast(

47、啊啊,安,天) fromm duall; LE - 啊 57.UID 返回标识当当前用户的唯唯一整数 SSQL sshow uuser UUSER 为为GAO SQL seleect ussernamme,useer_id from dba_uusers wheree userr_id=uuid; UUSERNAAME USSER_IDD - - GAOO 25 58.USERR 返回当前前用户的名字字 SQL seleect usser frrom duual; UUSER - GAO 59.USERREVN 返返回当前用户户环境的信息息,opt可可以是: EENTRYIID,SESSSIO

48、NIID,TERRMINALL,ISDBBA,LABBLE,LAANGUAGGE,CLIIENT_IINFO,LLANG,VVSIZE ISDBAA 查看当前前用户是否是是DBA如果果是则返回ttrue SSQL sselectt userrenv(isdbaa) frrom duual; UUSERENN - FAALSE SSQL sselectt userrenv(isdbaa) frrom duual; UUSERENN - TRRUE SEESSIONN 返回会话话标志 SQQL seelect usereenv(ssessioonid) fromm duall; USEERENV(

49、SESSSIONIDD) - 1152 ENNTRYIDD 返回会话话人口标志 SQL selecct useerenv(entrryid) fromm duall; USEERENV(ENTRRYID) - 0 INSTTANCE 返回当前IINSTANNCE的标志志 SQL seleect usserenvv(insstancee) frrom duual; UUSERENNV(INNSTANCCE) - 11 LANGGUAGE 返回当前环环境变量 SSQL sselectt userrenv(languuage) fromm duall; USEERENV(LANGGUAGE) - S

50、IMPLLIFIEDD CHINNESE_CCHINA.ZHS166GBK LLANG 返返回当前环境境的语言的缩缩写 SQLL sellect uuserennv(laang) from dual; USERRENV(LANG) - ZHS TEERMINAAL 返回用用户的终端或或机器的标志志 SQL seleect usserenvv(terrminall) frrom duual; UUSERENNV(TEERMINAA - GAAO VSIIZE(X) 返回X的的大小(字节节)数 SQQL seelect vsizee(userr),useer froom duaal; VSSIZE

51、(UUSER) USER - - 6 SYSTEEM60.AVG(DISTIINCT|AALL) aall表示对对所有的值求求平均值,ddistinnct只对不不同的值求平平均值 SQQLWKS creaate taable ttable33(xm vvarchaar(8),sal nnumberr(7,2); 语句句已处理。 SQLWKKS innsert into tablee3 vallues(gao,1111.11); SQLWKKS innsert into tablee3 vallues(gao,1111.11); SQLWKKS innsert into tablee3 vall

52、ues(zhu,5555.55); SQLWKKS coommit; SQL seleect avvg(disstinctt sal) fromm gao.tablee3; AVVG(DISSTINCTTSAL) - 33333.33 SQL selecct avgg(all sal) from gao.ttable33; AVGG(ALLSSAL) - 25922.59 61.MAX(DISTIINCT|AALL) 求求最大值,AALL表示对对所有的值求求最大值,DDISTINNCT表示对对不同的值求求最大值,相相同的只取一一次 SQLL sellect mmax(diistincct sa

53、ll) froom scoott.emmp; MAAX(DISSTINCTTSAL) - 50000 62.MIN(DISTIINCT|AALL) 求求最小值,AALL表示对对所有的值求求最小值,DDISTINNCT表示对对不同的值求求最小值,相相同的只取一一次 SQLL sellect mmin(alll sall) froom gaoo.tablle3; MMIN(ALLLSAL) - 11111.111 63.STDDDEV(diistincct|alll) 求标准准差,ALLL表示对所有有的值求标准准差,DISSTINCTT表示只对不不同的值求标标准差 SQQL seelect std

54、deev(sall) froom scoott.emmp; STTDDEV(SAL) - 11882.50332 SQLL sellect sstddevv(disttinct sal) from scottt.emp; STDDDEV(DIISTINCCTSAL) - 12299.951 64.VARIIANCE(DISTIINCT|AALL) 求求协方差 SSQL sselectt variiance(sal) from scottt.emp; VARIIANCE(SAL) - 113983113.9 65.GROUUP BY 主要用来对对一组数进行行统计 SQQL seelect dep

55、tnno,couunt(*),sum(sal) from scottt.emp groupp by ddeptnoo; DEPPTNO CCOUNT(*) SUUM(SALL) - - - 10 3 87550 20 5 108875 300 6 94400 66.HAVIING 对分分组统计再加加限制条件 SQL selecct depptno,ccount(*),suum(sall) froom scoott.emmp grooup byy depttno haaving countt(*)=5; DEEPTNO COUNTT(*) SSUM(SAAL) - - - 200 5 10087

56、5 330 6 99400 SSQL sselectt depttno,coount(*),summ(sal) fromm scottt.empp haviing coount(*)=5 groupp by ddeptnoo ; DEEPTNO COUNTT(*) SSUM(SAAL) - - - 200 5 100875 330 6 99400 67.ORDEER BY 用于对查询询到的结果进进行排序输出出 SQL seleect deeptno,enamee,sal from scottt.emp orderr by ddeptnoo,sal desc; DEPTTNO ENNAME SS

57、AL - - - 110 KINNG 50000 10 CLARKK 24500 10 MMILLERR 13000 20 SSCOTT 3000 20 FOORD 30000 200 JONEES 29775 20 ADAMSS 11000 20 SSMITH 800 330 BLAAKE 28850 300 ALLEEN 16000 30 TURNEER 15000 30 WARD 1250 30 MAARTIN 1250 30 JAAMES 9950 Oracle的的左右连接使使用起来更加加方便:select * froom empp e,deept d wheree e.deeptno

58、(+)=d.deptnno;(+)放在=的的左边表示右右连接,放在在右边表示左左连接;SQL 19999连接查询询:crosss joiin 专门用用于产生笛卡卡尔积;Naturall joinn 自动找找到匹配的关关联字段,消消除笛卡尔积积;Join uusing 字段名,使使用指定的字字段来自动消消除笛卡尔积积;Join oon 用户户自己指定一一个可以消除除笛卡尔积的的条件;连接方向的改变变Left (oouter) joinRight (oouter) joinFull (oout) joinSQL 19999主要用于于其他的数据据库,如果一一直使用orracle数数据库,可以以略过此

59、部分分;Group bby 要放在在orderr by之前前;Group bby 子句中中的内容必须须出现在seelect子子句中;分组函数允许嵌嵌套,但是嵌嵌套之后的分分组函数的查查询之中不能能再出现任何何的其他字段段;按照职位分组,统统计平均工资资最高的工资资:第一步:Sellect jjob,avvg(sall) froom empp grouup by job;第二步: sselectt max(avg(ssal) from emp ggroup by jjob;多表查询的性能能可能会比较较低,而它最最可能的替代代者是子查询询,所以子查查询再数据量量较大时使用用的较多;完整的查询语句句可能如下:Select 字段1,字字段2,(子子句 别名11) From 表名名称1,表名名称2,子句句3Where 条条件,子句Group bby 分组字字段1,分组组字段2Having 分组后的过过滤条件(可可以使用统计计函数)Order bby 排序字字段Where子查查询一般都返返回单行单列列,多行单列列或者单行多多列的结果;From子查询询一般返回多多行多列的数数据,当做临临时表出现;Where子句句为单行多列列的例子:(单行多列的的例子很少出出现)Select * froom e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论