数据库讲义 __ 【函数的操作】

使用函数的目的是为了操作数据,将输入的变量处理,返回一个结果。变量可以有好多。

传入的变量可以是列的值,也可以是表达式。函数可以嵌套。内层函数的结果是外层函数的变量。 函数分为:

1、单行函数:每一行都有一个返回值,但可以有多个变量。

2、多行函数:多行有一个返回值。

【【 单行函数的分类 】】:

  1. 字符操作函数
  2. 数字操作函数
  3. 日期操作函数
  4. 数据类型转换函数、

5、综合数据类型函数

实验13:字符串的大小写函数

SQL >  Select  lower(ename),upper(ename),initcap(ename)  from  emp;

【点评】:字符串的大小写操作

大小写操作函数 Lower(大写)、upper(小写)、initcap(首字母大写)

实验14:字符串操作函数

1、【Concot 拼接】

SQL >  select ename, job, concat(ename,job)  from emp;

2、【length  长度】

SQL >  select length('张三') from dual;   --按照字

SQL >  select lengthb('张三') from dual;  --按字节

SQL >  select lengthc('张三') from dual;  --unicode 的长度

3、【substr  截取】

SQL >  select  ename, substr(ename, 1, 1)  "first", substr(ename, -1)  "last" f rom  emp;

4、【instr  求位置】

SQL >  select  ename, instr(ename, 'A')  "A 在第几位"  from  emp;

6、【replace  替换】

SQL >  Select  replace (‘JACK and JUE',  'J',  'BL' )  from dual;

7、【lpad  左铺垫】

SQL >  select  lpad (ename, 20, '-' )  ename  from  emp;

8、【rpad  右铺垫】

select  rpad (ename, 20, '-' )  ename  from  emp;

实验15:分组统计函数

1、【sum  求和】

SQL >  select  sum(sal)  from  emp;

2、【min  求最小值】

SQL >  select  min(sal)  from  emp;

3、【max  求最大值】

SQL >  select  max(sal)  from  emp;

4、【avg   求平均值】

SQL >  select  avg(sal)  from  emp;

5、【count  求总数】

SQL >  select  count(sal)  from  emp;

6、【null值?】

SQL >  select  count(*),  count(comm)  from  emp;

  【点评】:所有组函数,除了 count(*) 以外,都忽略 null 值,count 是计数,查看有多       少行,count(列)是查看该列有多少非空的行。

  1. 【Group by 子句】

 SQL >  select  deptno,  sum(sal)  from  emp  group  by  deptno;

【点评】:按照部门号码分组,同组的进行统计。9i 需要排序,10g以后不需要排序

 8、【having的使用】

问题:要求只显示平均工资大于2000的工作?

错解:select  job, avg(sal)  from  emp  where  avg(sal)>2000  group  by  job;

【解析】:这句话不会运行,where 是条件,avg(sal)是结果。 条件中就使用了结果,违反了因果关系。不但 ORACLE 完成不了您的需求,我们人类的认知阶段就实现不了。

正解:select  job, avg(sal)  from  emp  group  by  job  having  avg(sal)>2000;

【解析】:Having 是在结果中再次筛选。having 一定得出现在 group by 子句得后面。不能独立存在

 

9、【decode函数】:巧用 decode 函数,改变排版方式

SQL >  select  sum(decode (to_char (hiredate, 'yyyy'), '1980', 1, 0))  "1980",

sum(decode(to_char(hiredate,'yyyy'),'1981',1,0)) "1981",

sum(decode(to_char(hiredate,'yyyy'),'1982',1,0)) "1982",

sum(decode(to_char(hiredate,'yyyy'),'1987',1,0)) "1987",

count(ename) "总人数"    from emp;

【执行结果】:            1980  1981  1982  1987  总人数   

                                         1      10       1        0        12

【【  总结  】】

1、组函数

2、分组统计

3、NULL 值在组函数中的作用

2、HAVING 的过滤作用

5、组函数的嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值