SQL系列(二)集合运算和函数的使用

三、集合运算(SET)
1.(UNION)查询两个表中不重复的值 : select 列名1 from 表1 UNION select 列名1 from 表2;  (UNION ALL  显示全部进行合并)
2.(INTERSECT)查询两个表中相同的数据: select * from 表1 INTERSECT select * from 表2;
3.(MINUS)返回存在于表1却不存在表2的记录: select * from 表1 MINUS select * from 表2;




四、函数(COUNT,SUM,AVG,MAX,MIN)


1、count 返回满足where条件中记录的个数 
eg: select COUNT(*) 别名1 from 表名 where 列名<10; (可以加别名也可不加)
2. SUM 某一列所有数值的和
        select SUM(列名1) 别名1 from 表名;
多个列的和  
select SUM(列名1) 别名1,SUM(列名2) 别名2.。。。。。。 from 表名;
所有点数在300以上的数据
select SUM(列名1) 别名1,SUM(列名2) 别名2 from 表名 where 列名1 >=300 (此处填写判断条件) 
3.AVG 返回某一列的平均值
select AVG(列名1) 别名1 from 表名; (可使用where条件语句修饰)
4.MAX  MIN返回某一列的最大/小值(数值,字符皆可)
select MAX(列名) from 表名; (可使用where条件语句修饰)
5.VARIANCE (方差) 
select VARIANCE(列名) from 表名;
6.STDDEV(标准差)  某一列数值的标准差
select STDDEV(列名) from 表名;
7.时间和日期
(1)ADD_MONTHS  将给定的 日期增加一个月(不能用于字符或数字类型)
select 列名1 ,列名2,列名3,ADD_MONTHS(列名1,2) from 表名;  (也可以加where约束)   列名1 时间推出2个月
(2)LAST_DAY  返回指定月份的最后一天,如:想知道列1中给出日期中月份的最后一天是几号时
select 列1,LAST_DAY(列1) from 表名;
---闰年的最后一天
select LAST_DAY('1-FRB-95') NON_LEAP,LAST_DAY('1-FEB-96') LEAP from 表名;
(3)MONTHS_BETWEEW 返回给定的两个日期中有多少个月
select 列1,列2 ,列3,MONTHS_BETWEEN(列1,列2) 列4 from 表名;
(4)NEW_TIME   调整时间到你所在的时区
select 列1 时区类型1 ,NEW_TIME(列1,'时区类型1','时区类型2') from 表名;
(5)NEXT_DAY 返回与指定日期在同一个星期或之后一个星期内的 你所要求的星期天数的确切日期
SELECT 列名, NEXT_DAY(STARTDATE,'FRIDAY')FROM 表名;
(6)SYSDATE 返回系统的日期和时间
select 列名 SYSDATE from 表名;
8.数学函数
(1)ABS 返回给定数字的绝对值   select ABS(A) ABSOLUTE_VALUE from 表名
(2)CEIL和FLOOR  CEIL返回给定参数相等或比给定参数大的最小整数,FLOOR  返回相等或比给定参数小的最大整数
select B CEIL(B) 列名 from 表名;
(3)COS COSH SIN SINH TAN TANH 三角函数
select 值1,三角函数(值1) from 表名;
9.字符函数
(1)CHR 数返回与所给数值参数等当的字符
select 列名,CHR(列名) from 表名;
(2)CONCAT 连接两个字符串
select  CONCAT{列名1,列名2} “别名” from 表名;
(3)INITCAP 将参数的第一个字母变为大写此外其它的字母则转换成小写
select 列名1 别名1,INITCAP(列名1) 别名2 from 表名;
(4)LOWER和UPPER   LOWER 将参数转换为全部小写字母而 UPPER 则把参数全部转换成大写字母
 
后面还有其他函数,此处不做更详细介绍。

猜你喜欢

转载自blog.csdn.net/qq_32579021/article/details/70213232