Oracle数据库复习易忘点总结(一)

SQL基础与高级查询技巧
本文深入讲解SQL的基础语句,包括列别名命名、NULL处理、字符串操作、消除重复行等。同时,探讨了WHERE与ORDER BY子句的用法,以及各种单行函数的应用,如字符、数值、日期函数和转换函数,帮助读者掌握SQL核心技能。

一 select 基本语句

1.列别名的命名  全写是 as "别名"  as可以省略 ,引号可以省略 .当列别民区分大小写,有空格,有特殊符号时必须加引号

2.对null的处理  再算数运算中null运算,结果都为null,所以有使用单行函数nvl(列名,n),如果列名为null,则返回n

3.连接操作符,||  所要连接的字符串使用单引号'  字符串'||列名

4.消除重复行 distinct

二. where子句 与order by子句

1.比较字符   where job= 'clerk'   单引号

2.比较日期 方法一 where hiredate>to_date('1995-01-01','yyyy-mm-dd')

                  方法二 hiredate>'01-1月-85'    这里是采用数据库默认的字符串存储方式来进行日期的识别

3.特殊比较运算符

                   (1)between and

                   (2)xx  in(a,b,c)      相当于 xx=a  or  xx=b

                   (3)模糊查询 like   '_'一个字符   '%'任意字符

                    (4)逻辑运算 and or not

4.order by 子句   默认为升序  使用desc降序

三.单行函数

 (一)字符函数

  1.大小写转换函数

    lower()转小写    upper()转大写   initcap()首字母大写

  2 concat('a','b')字符拼接函数   且只能两个两个的操作

  3  substr(1,3) 代表从第一个开始截取三个  字符截取   数据库中的字符串下标从1开始,区别于java中的字符串\数组\集合\js标签数组

4.length() 获取字符串长度

5.instr('abcdef','','','')  获取目标字符串下标   可以有四个参数  第二个参数为目标字符串  第三个为从第几个开始正数或倒数(默认为正数)  第四个为第几次出现(默认为第一次)

6.lpad('500',4,'*') 左填充  第三个参数不写则为使用空格填充

rpad()右填充

7.replace('replace','a','v')  替换函数   若第三个参数没有,则会变成去掉某个字符串

8.trim('    trim   ')多用来去除首尾空格   等价于  trim(' 'from '  trim  ')      trim(leading '0' from '0yi')左去除    trim(trailing '' from '') 右去除   trim(both '' from '')  左右都去除

(二)数值函数

1.round(45.926,2)   45.93    round(45.926) 46     round(45.926,-1) 50 按照四舍五入取值

 与之对应的trunc() 不遵循四舍五入,只舍位

2.ceil 和floor

ceil(1.001) 2    floor(1.9999) 1

3.mod(5.2,3)  2.3  取余

(三)日期函数

1.sysdate 系统当前时间  在做运算时,加的是小时  sysdate+10   加10小时

2.months_bwteen(时间1,时间2)   计算相差几个月

3.add_months(时间1,3) 再时间1的基础上加3个月

4.next_day(时间1,'星期二')  时间1之后的下一个星期二是什么日期

5.last_day(时间) 返回所在月份的最后一天

6.round(时间,'YEAR'/'MONTH'/'DAY')按年/月/日之后进行四舍五入获得年份/月份/日期

 与之对应的trunc()   不遵信四舍五入规则,只舍不进

7.extract(year from sysdate)  获取当前时间的年份  还有 month from  时间  day from 时间

(四)转换函数

1.日期转字符串to_char(sysdate,'yyyy年mm月dd日')

数值型转字符串 to_Char(sal,'$999,999')

2.转数值型:to_number('0012')  结果为12

 to_number('$1273,281','$9999,999') 

3.to_Date()

(五)通用函数

1.nvl(comm,0)  comm为null返回0

2.nvl2(comm,1,0) comm为null返回0,不为null返回第二个参数

3.nullif('abc','ab') 如果相等返回null,否则返回第一个参数

4.coalesce(表达式1,表达式2....表达式n)直到遇到一个不为null的进行返回

5.case表达式  (注意没有标点符号)

  case comm

               when 1400 then '高'

                      when  1000 then  '中'

                               else   '无'

                 end

 case

          when  sal<1000  then '较低'

                when sal<1800 then '还行'

                  else  '富裕'

           end

6.decode表达式(一般用来做等值判断)    注意最后不加逗号,之前的都要加逗号

    decode(deptno,

                       10,'销售部',

                       20,'技术部',

                              '无'     )

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值