资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Day011. _emp、_de表的字段含义irst_name名st_nam姓tite职位dpt_i部门号commso_pct提成(有空值)2. 列出所有人的年薪sec first_ame,salay*1rom s_emp;3. 给列起别名sele first_nae,salar1 AnS from s_emp;seect fis_a,lar12 Anl from s_emp;select irm,salar*1 asAal fro s_em;4. 解决空值的函数(p1,p)nllOracle当做无穷大来解决空值不等于0空值不等于空格算数体现式中为空值,返回空值select firstame , ary*12(1nvl(commission_pct,0)/100) frosemp;5. SQLUS命令:a) L列出上一次敲入的命令b) clar sr或者!clar清屏6. 字段(列名)拼接|字符串拼接Orace中字符和字符串用单引号表达双引号用于表达别名select frsnme| |lat_nme empoyefro s_emp;elctirtnae|is int deartent|dpt_id| frm s_em;7. 清除反复值disinct#该公司有哪些职位?elect distint tite om_mp;#各个部门有哪些不同的职位?#ditnct的功能:部门号单独反复,职位单独反复,部门号和职位联合不反复let dstinctept_id,tile rom semp;会报错,由于dstict只能出目前elect背面,否则会导致逻辑不通elct dept_id,distincttitle roms_p; ()8. 列出表中所有字段#注意:写*会减少效率,公司中一般会严禁写*;elect * from s_em;9. race中写QL大小写区别在功能上无影响,性能上有影响#注意:写SQL,一般公司均有规范10. hre控制子句#年薪不小于12w的员工的年薪?#如果salary字段上建了索引,第一种写法,索引用不上,因此慢slec irt_nae,salry*12 a_al from s_wereslay12 1;#如果salar字段上建了索引,第二种写法,效率高些slt fir_nam,alary*12 asal froms_mpwhere sl000;#会报错,wee子句背面不可以跟“列别名”,whre子句执行在eet语句之前sct fit_name,salary*12a_slfrom s_empwhr a_sa 1;#X不会报错,orer y子句可以使用“别名”seectfrst_nme,salary*12 a_al frm semprd by a_sa;11. 注意:单引号中大小写敏感#列出Car的年薪是多少?Select fist_me,alar*asalFo s_empWhererst_nae = armn;12. 大小写转换函数owr()pper()#列出Carmn的年薪是多少?eect fst_name,sal*2 aslfr_emwhere ler(irst_me) = carmn;13. whre slary bwe000 and 10;AND和bten an连接符#找出员工工资在100与0之间let rst_nm,slayfsempwhere aay10 ndsalary=50;#bteen and就表达了如上含义slct fistname ,alaryfos_mp14. OR连接符 IN()表述形式 =ANY()#找出1、41、4部门员工的姓名和部门号?seet firt_name , dept_idfom smpwee dp_d31 detd=1 ort_d=43;#简朴的表述形式in()selefirst_ne ,ept_idfro s_empwhere det_idin (1 , 41 , 43);#另一种表述形式in()相称于ay()selct rt_nam ,dptidfrom s_emphere depid= y(1, 1, 4);#从持续区间中取值使用Bewen-nd,从离散数值中取值用IN()15. LIK运算符SBTR()函数egh()函数(通配符:%表达0或多种字符;_表达任意单个字符)#效率高些where last_ame likeM%#成果等同如上wesubs(las_name, 1 , 1) = M;#列出名字的最后两个字母elect fist_nme , sbr(firs_nae, ,2) from semp;#列出名字的最后两个字母 enth()函数select subt(firstnae ,length(firsame)-1 ,2)roms_em; 16. escape核心字(表达后边的符号不是通配符)selet albl_name frouer_tablwereteme like escape ;17. SUL判断字段与否为空I NT NULLsele fist_me,commiion_t fro s_emp where commionpcis ul;18. NOT BETWEENANNTI()NOT IKIS T NUL#除了31、41、43部门的部门员工的状况sect irst_nae, det_id om s_emp hredept_id nt i(31, 4 , 43); #等价写法select frst_ae, dptd rom _ep whee detid ! 31 and d_i!=41 ndept_id!=4;#等价写法all(31,41,43)sele fist_name, eptid fromsemp herep_id =1000 andptid=4 or depd=42;找出部门号为4或者42的,并且工资不小于1000的员工elc lasam , a ,dept_idfrom s_emhereaar 100 an (dept_id=4 or dept_id=42);20. 隐式数据类型转换#如下式相似的成果,系统做了隐式数据类型转换,均为:字符转数值selct r_name , salry from s_ephrslary =14;elect irs_nme , alary m se wheresalary = 145;#相称于selet first_nam , salry from s_mwe onumber(alry)= 140;#做严格的数据类型匹配相称重要select irst_nae , sary from s_mp re sal 145;21. 显式数据类型转换_ar()函数#输出所有员工的nar_i,如果没有manar_i,则用S填充selctfist_name , nv(to_chr(anaer_id) , Boss) frm sm;Day021. 表和表之间的关系s_emp员工表s_dep部门表s_egion部门所在地区表salgae工资级别表m员工表t部门表2. 等值连接查询Crme所在部门的地区?(anmen在哪个地区上班?)#中间表“部门表”#用几张表就JON几次#等值连接(内连接的一种):父表的主键=子表的外键seete.first_ae , r.namefome jin sepdoe.dept_i = d.iane.firnam = are -为什么hre 不行?3. And在外连接之前做过滤,where在外连接之后做过滤jon rein rond.regionid =r.i;#亚洲地区有哪些员工?secte.fr_ae ,r.amefrm s_epe join _e do.det = .ijoin sregir nd.regiond = idn rme = Asia; -为什么er能替代 an4. 非等值连接#列出员工的工资以及相应的工资级别?lect
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号