2022年数据库知识点 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年数据库知识点 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库知识点 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、伪表: dual;概念:一个里面没有任何数据,并且不允许你进行插入和删除操作的Oracle自带的表,这个表里只有一个较多 dummy的字符字段并且里面没有任何数据,这个表的最大的作用是用来进行一些相关函数以及运算的测试表;单行函数:1、nvl.2、字符串大写转小写,小写转大写:Upper/Lower;例:把 abcdef转为大写,然后再转为小写:例:查询出 emp表中收入大于 3000的员工信息,其中,信息包括雇员编号、雇员姓名、雇员工作岗位和收入信息,并且要求雇员姓名和雇员工作岗位为小写的英文字母,然后再按照他们的姓名进行升序排序; select empno,lower(ename) ena
2、me,lower(job) job,sal+nvl(comm,0) salfrom emp where sal3000 order by ename3、initcap:名字初始化(首字母大写,其他小写);例:将 emp表中的 ename都是用名字初始化的形式打印出来;例:将一个完整的英文姓名是用名字初始化来进行打印;4、concat(p1,p2):字符串连接例:将两个字符串进行拼接: concat与|的区别:5、长度的计算: length例:求出 emp表中姓名的长度;例:求出一个带有汉字的字符的长度;6、截取一段长度: substr名师资料总结 - - -精品资料欢迎下载 - - - - -
3、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 语法: substr(String,start,length):表示对 String进行截取,从 start位开始,如果没有 length的话,那么截取直到String结束,如果有 length,那么截取的长度为 length长度;注意,如果 start为正数,则是从 String的左边开始数,如果是负数,则是从 String的右边开始数位数,记住,在 Oracle中,下标是从 1开始;例:对字符串 abcdef进行截取,分别从截取的开始
4、位置从左边开始、从右边开始,没有 length,有length这几种情况来示范;select substr(abcdef,2) from dual;select substr(abcdef,2,3) from dual;select substr(abcdef,-2) from dual;select substr(abcdef,-4,3) from dual;7、替代: replace语法: replace(String,if,then);表示在 String中寻找 if,如果 if存在,则使用then来进行替代,如果没有 if,则不做任何操作,直接输出String;例:将一个 abcdef
5、gfff的字符串中的 f替换为 *;8、填充: Lpad/Rpad语法: Lpad(String,number,str):表示使用 number减String长度的空白区域使用 str来进行填充,如果使用 Lpad则填充的区域在左边,如果使用Rpad则填充的区域在右边;我们常用于为了统一长度的场合,比如:银行的存折上的*号键;例:将 emp表中的 job设置为 12个长度,多余的部分使用*来填充;9、去掉首位的空白:trim,ltrim,rtrim语法: trim(需要去空白的字符或字段)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
6、- - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 例: 去掉一个字符串中前后的空白注意:此方法不会去除中间的空白10、查找: instr语法: instr(String,char,number):查找char这个字符串在 String中第一次出现的位置,如果有 number的话, number可以指定它从哪个地方开始查找,若number为正数,则从左往右数 number个位置再进行搜索,如果为负,则从右往左数;例:select instr(abcdefccc,c) from dual; select instr(abcdefccc,
7、c,4) from dual; select instr(abcdefccc,c,3) from dual; select instr(abcdefccc,cde) from dual; select instr(abcdefccc,c,-3) from dual;练习数字函数:1、数值四舍五入运算:round;语法: round(number1,number2);如果只有 number1的话,那么进行舍去小数点位,进行四舍五入运算,如果有 number2的话,那么就分两种情况,如果为正,则保留小数点右边number2个长度的小数,多余的舍去并做四舍五入运算;如果为负,则把小数点左边的numb
8、er2个长度的数字以 0替代并且舍去小数点后的数字;例:select round(123.556) from dual;-; select round(123.456,2) from dual;-; select round(123.456,-2) from dual;-;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 2、取余运算: mod;语法: mod(number1,number2);使用 number1来对 numb
9、er2进行取余运算;注意,如果 number2是负数的话,结果不会为负,相当于是对number2的绝对值进行取余运算例: select mod(10,2) from dual;-0;3、数字截取: trunc;注意:此函数跟 round方法一模一样,只不过进行的是截取,不是四舍五入;4、绝对值: abs 就是求绝对值呗;日期函数:1、last_day:求出某个日期所在月份的最后一天;语法: last_day(date);例: select sysdate,last_day(sysdate) result from dual; select hiredate,last_day(hiredate)
10、 result from emp;2、next_day:基于一个参数的时间为基准,来求出第二个参数的日期语法: next_day(date,char);其中, char这个地方必须要放一周中某一天的表现形式,比如你可以放星期一 等。也可以放monday等,也可以放 1-7的数字,记住各种写法的表现形式;例: select sysdate,next_day(sysdate,1) from dual;3、months_between:拿到两个日期之间的月数,注意,返回值是浮点数;语法: months_between(date1,date2);注意:这两个日期,是前面一个日期减后面一个日期,所以,如
11、果你把现在时间放在后面的参数里面的话,会出现负数的结果;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 例:select months_between(sysdate,hiredate) from emp;4、add_months:在指定的日期上面做月份的增减操作;语法: add_months(date,number);注意:当 number为正时,表示在 date的基础上进行月份的追加,如果为负,则代表减少;这个月份的增减代
12、表的是在日期上进行月份的调整,并不是指增加或者减少 30*月份;例: select sysdate,add_months(sysdate,3) from dual; select sysdate,add_months(sysdate,-3) from dual;日期转换函数:1、日期转字符串: to_char;语法: to_char(date,mode);注意:参数中的 mode表示一个字符串,里面用来描述你想要转换成哪个日期格式,其中 mode类似于 java中的simpleDateFormat后的参数,但是需要注意的是,MM 和HH不用再分大小写,并且 Oracle中表示分钟的 mode为
13、mi;其他具体的 mode参考API,需要注意一点,里面的月份跟星期是根据你Oracle上的编码形式来进行的;例select to_char(sysdate,yyyy-MM-dd) from dual;select to_char(sysdate,yyyy-mm-dd) from dual;select to_char(sysdate,yyyy-MM-dd hh:mi:ss) from dual;select to_char(sysdate,MONTH) from dual;2、字符串转日期: to_date;具体语法跟上面类似,只需要注意一点,在mode里面,不在乎你书写的格式,反正 Ora
14、cle都会以标准格式进行 date的输出;例:select to_date(120314,hh24/mi/ss) from dual;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 3、字符串转数字: to_number;注意:要进行合理的转换;例:select to_number(1234) from dual;通用函数:1、nvl;2、nullif :nullif (表达式 1,表达式 2):如果两个表达式相等,则返回nu
15、ll,否则返回表达式 1;例:select nullif(2,3) from dual;3、nvl2:nvl2(表达式 1,表达式 2,表达式 3):当表达式 1不为null的时候,返回 2,否则返回 3;例: select nvl2(comm,sal+comm,sal) sal from emp;4、coalesce :coalesce (表达式 1,表达式 2,表达式 3,表达式 4.):依次顺序从前往后进行校验,遇到非 null的时候,就停止校验并且返回那个非null的值;例:select coalesce(sal+comm,sal,0) sal from emp;5、case.when
16、.then*.else.end:用来分段表示的函数,其中case 后面接的是需要分段表示的例:select empno,ename,deptno,case deptno when 10 then 开发部 when 20 then 集成部 when 30 then 销售部 else 其他部门 end as 部门 from emp;6、decode():作用跟上面的类似;语法: decode(列名, 列名有可能出现的值,出现这个值做的处理*,如果出现其他情况所做的处理);例: select empno,ename,deptno,decode(deptno,0,开发部 ,名师资料总结 - - -精品
17、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 20,集成部 ,30,销售部 ,其他部门 ) 部门 from emp;注意:这里开始用到了双引号,在起别名的时候,如果使用中文的别名的话,可以直接写中文也可以写上双引号,但是不能写单引号;分组函数:1、count:数量统计;我们一般使用 count来统计一张表中的数据数量或者是统计一张表中某个字段的数量(如果你需要统计的字段有重复的情况发生的话,要附带着使用distinct来去重复再进行数量统计);例: s
18、elect count(*) from emp; select count(distinct(deptno) from emp;2、max、min、avg、sum;注意:在使用分组函数来进行某些操作的时候,会自动忽略掉空值;例:select avg(nvl(comm,0) from emp;3、group by:分组查询;按照你想要的分组规则来对数据进行相同数据为一组并且进行分组的操作;例:查询出不同部门里面的员工数量: select deptno,count(*) from emp group by deptno;如果某一天,你想对不同工作岗位进行分组的话,那么第一想法是把group by
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库知识点 2022 数据库 知识点
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内