前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle数据库(二)常用关键字以及函数

Oracle数据库(二)常用关键字以及函数

作者头像
二十三年蝉
发布2018-02-28 10:52:37
1.1K0
发布2018-02-28 10:52:37
举报
文章被收录于专栏:闻道于事

常用关键字

insert into---插入数据

delete---删除数据

update---更新一条数据

select---实际工作中尽量不要写*

set---设置某些属性

where---给执行的语句加限制条件

代码语言:javascript
复制
--增加信息 1
insert into p_dept(deptno,dname,loc)
values (50,'ceshi','ceshi');
commit;
--增加信息 2
insert into p_dept
values (60,'ceshi','ceshi');
commit;
--增加信息 3
insert into p_dept(deptno)
values (70);
commit;

--查询
select t.*, t.rowid from P_DEPT t
select *, t.rowid from P_DEPT
select t.deptno from P_DEPT t where t.dname='SALES'

--修改deptno为60的数据dname为ceshi2
update P_DEPT t set t.dname='ceshi2' where t.deptno=60

--删除数据
delete from p_dept e where e.deptno=60;
commit;

in---在某个范围内

代码语言:javascript
复制
--查询工资是800和3000的
select * from p_emp t where t.sal in (800,3000)

like(%, _)---模糊查询, %表示任意个字符, _表示单个字符

代码语言:javascript
复制
--查询name是T 开头的
select * from p_emp t where t.ename like 'T%'
--查询name是T 开头,后面三个字符的
select * from p_emp t where t.ename like 'T___'

order by---(列名或者写索引:1, 2) ASC正序(默认)  DESC倒叙

代码语言:javascript
复制
--按照工资排序
select * from p_emp e order by e.sal
--按照职位和工资排序,工资要大到小
select * from p_emp e order by e.job,e.sal desc
--按照第一列排序
select * from p_emp e order by 1

group by---按照某几列分组

having---分组之后的过滤

代码语言:javascript
复制
--按照职位分组
select e.job from p_emp e group by e.job
--按照职位分组,查人数大于2的
select e.job from p_emp e group by e.job having count(*)>2

case...when...---类似于分支

代码语言:javascript
复制
--sex为1=男,0=女
select e.ename 姓名, case e.sex when 0 then '女' when 1 then '男' else '保密' end 性别 from  p_emp e
--另一种写法
select e.ename, case when e.sex=0 then '女' when e.sex=1 then '男' else '保密' end from  p_emp e

distinct---去除重复

代码语言:javascript
复制
--去重复
select distinct e.job from p_emp e

between...and(闭合区间, 即包括前面的数, 也包括后面的数)

代码语言:javascript
复制
--查工资在800-3000的
select * from p_emp e where e.sal between 800 and 3000

all---表示一个集合中所有的元素

any/some---表示一个集合中任意一个元素

代码语言:javascript
复制
--查询工资最高的
select * from p_emp t where t.sal >=all(select t1.sal from p_emp t1)

常用函数 to_char---转换成字符型数据

to_date---转换成日期型数据

代码语言:javascript
复制
--日期与字符转换,dual为虚拟表
select to_char(t.hiredate,'yyyy-mm-dd') from p_emp t
select to_date('1994-10-20','yyyy-mm-dd') from dual
--计算时间差
select to_date('1994-10-20','yyyy-mm-dd')-sysdate from dual
代码语言:javascript
复制
--查询1990之后出生
select * from p_emp t where t.hiredate > to_date('19900101','yyyymmdd')

分组函数:

mod---取余函数

avg---平均数函数

sum---求和函数

count---计数函数

代码语言:javascript
复制
--计算每个工作的总工资,平均工资,人数  分组
select t.job,sum(t.sal),avg(t.sal),count(t.ename) from p_emp t group by t.job

decode---类似于分支语句的函数

代码语言:javascript
复制
--查询性别
select e.ename ,decode(e.sex,1,'男',0,'女','保密') from p_emp e

substr---分割字符串

代码语言:javascript
复制
--分割name
select substr(e.ename,1) from p_emp e

max---取最大值函数

min---取最小值函数

代码语言:javascript
复制
--查询最高,最低工资
select max(e.sal) from p_emp e
select min(e.sal) from p_emp e

trunc---取整函数

ceil---向上取整函数

floor---向下取整

代码语言:javascript
复制
--取整,向上,向下 可用于日期
select trunc(12.345) from dual

select trunc(sysdate) from dual

select ceil(12.345) from dual

select floor(12.345) from dual

nvl---过滤空值函数

nvl2---过滤空值函数2

代码语言:javascript
复制
--过滤空值为0,只能处理数字
select nvl(e.comm,0) from p_emp e
select avg(e.comm) from p_emp e --除以不为空的人数
select avg(nvl(e.comm,0)) from p_emp e  --除以总人数
代码语言:javascript
复制
--可以处理字符串,传三个参数
select nvl2(e.comm,'为空','不为空') from p_emp e

lower---将字母全部改为小写

upper---改为大写

concat---连接两个字符串

? wm_concat---列转行函数(也属于分组函数)

代码语言:javascript
复制
--只能连接两个字符串
select concat('aaa','bbb') from dual
select wm_concat() from --不推荐使用,将一列值链接可分租
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档