300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 《Oracle 11g SQL 和PL SQL从入门到精通》 学习笔记

《Oracle 11g SQL 和PL SQL从入门到精通》 学习笔记

时间:2021-03-08 04:18:39

相关推荐

《Oracle 11g SQL 和PL SQL从入门到精通》 学习笔记

查询日期列:

例:以特定格式显示日期结果(修改nls_date_format属性)

ALTER SESSION SET nls_date_format='YYYY''年''MM''月''DD''日''';--------->03月08日

NVL 函数处理NUll :NVL(a_s,0) --如果a_s 存在数值,则返回其原有数值,如果a_s列为null ,则函数返回0;

NVL2(a_s,b_s+a_s,sa) --如果a_s 不为空则返回b_s与a_s计算的值 否则返回sa

连接字符串

方法一: 使用|| 操作符

方法二: 使用concat 函数 concat('a','bd')---------->'abd'

常规比较符: =(等于)、<>(不等于)、!=(不等于)、>=(大于等于)、<=(小于等于)、>(大于)、<(小于)

其他比较符: between...and...(介于..与..之间)、in(在..之中)、is null(为空)

模糊查询 like 使用通配符% 列名 like 'S%'----------->列名以S开始的列

使用通配符_和% 列名 like '_S%'------------> 第三个字符为S的列

处理字符值包含_或者%的模糊查询 列名 like '%a_%' escape 'a' ---------->a为制定转义字符的名称

逻辑操作符:and、or、not (not优先级最高,and 其次,or优先级最低)

排序: order by 列名\列别名\列位置 ASC ---->指定列升序排列 (ASC指定升序<默认> DESC 指定降序 )

注:当select 语句中包含多个字句(where/group by/having/order by等)时,order by必须是最后一个子句

多列排序:order by a ASC,b DESC ----------->首先按照第一列进行排序,当第一列存在相同数据时,以第二列进行排序,

以此类推。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

左连接 left join :返回满足连接条件的数据,以及不满足连接条件的左边表的其他数据

右连接 right join :返回满足连接条件的数据,以及不满足连接条件的右边表的其他数据

完全连接 full join:返回满足连接条件的数据,以及不满足连接条件的左边表和右边表的其他数据

数据分组是通过分组函数、GROUP BY 以及HAVING等子句共同实现的

常用分组函数:

1.max(取得列最大值)和min(取得列最小值)

2.avg(平均值)和sum(和)------->只适用于数字

3.count(统计总行数)

4.variance(方差<如果只有一行数据 返回0 当存在多行数据时 按照

(sum(expr^2)-sum(expr^2))/count(expr)/(count(expr)-1) 计算>)

stddev (标准偏差<方差的平方>)

集合操作符 :union、union all、intersect、minus

union :取两个结果集的并集,会自动去掉结果集中的重复行,并且以第一列的结果进行升序排序

union all:取并集不取消重复值也不进行排序

intersect:取交集只显示同时存在于两个结果集中的数据,以第一列的结果进行升序排序

minus:取差集 以第一列结果升序排序

条件表达式

decode('a','对比值1','返回值1','对比值2','返回值2','返回值3');-->如果a=对比值1 返回返回值1 如果a=对比值2 返回返回值2 否则返回返回值3

case when a<100 then '1' when a>100 then '0' else '-1' end;-->如果a<100返回 1 如果a>100返回0 否则返回-1

----------------------------------------------------------------------------------------------------------

统计一张表中有多少个字段

select count(*) from user_tab_columns where table_name=upper('表名')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。