专栏首页闻道于事Oracle数据库(二)常用关键字以及函数

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

常用关键字

insert into---插入数据

delete---删除数据

update---更新一条数据

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

set---设置某些属性

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

--增加信息 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---在某个范围内

--查询工资是800和3000的
select * from p_emp t where t.sal in (800,3000)

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

--查询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倒叙

--按照工资排序
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---分组之后的过滤

--按照职位分组
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...---类似于分支

--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---去除重复

--去重复
select distinct e.job from p_emp e

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

--查工资在800-3000的
select * from p_emp e where e.sal between 800 and 3000

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

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

--查询工资最高的
select * from p_emp t where t.sal >=all(select t1.sal from p_emp t1)

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

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

--日期与字符转换,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
--查询1990之后出生
select * from p_emp t where t.hiredate > to_date('19900101','yyyymmdd')

分组函数:

mod---取余函数

avg---平均数函数

sum---求和函数

count---计数函数

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

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

--查询性别
select e.ename ,decode(e.sex,1,'男',0,'女','保密') from p_emp e

substr---分割字符串

--分割name
select substr(e.ename,1) from p_emp e

max---取最大值函数

min---取最小值函数

--查询最高,最低工资
select max(e.sal) from p_emp e
select min(e.sal) from p_emp e

trunc---取整函数

ceil---向上取整函数

floor---向下取整

--取整,向上,向下 可用于日期
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

--过滤空值为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  --除以总人数
--可以处理字符串,传三个参数
select nvl2(e.comm,'为空','不为空') from p_emp e

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

upper---改为大写

concat---连接两个字符串

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

--只能连接两个字符串
select concat('aaa','bbb') from dual
select wm_concat() from --不推荐使用,将一列值链接可分租

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle数据库 拾漏补缺

    select语句的基本使用 可以查询需要的列,行,可以进行多表链接,连接查询。 ? select e.*,e.sal/30 from p_emp e selec...

    二十三年蝉
  • Oracle数据库(三)表操作,连接查询,分页

    复制表 --复制表 create table new_table as select * from Product --复制表结构不要数据 create tab...

    二十三年蝉
  • Oracle数据库常用命令

    --查询当前系统中的所有用户 select * from all_users --查当前用户下所有的表: select * from tab wher...

    二十三年蝉
  • day3 sql语句

    sqlplus / as sysdba startup sqlplus scott/tiger vi .bash_profile 容宽不够 set lines ...

    98k
  • Mysql数据库学习(三):表的crud操作、完整性约束、select各种查询

    一、表的crud操作 指增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete) // select 查询后面...

    s1mba
  • Oracle - 函数及多表关联

    函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。函数根据处理的数据分为单行函数和聚合函数(组函数),组...

    Carlos Ouyang
  • oracle--序列&视图&索引&视图&可视化操作&分页&数据库备份

    --oracle学习内容 --oracle的管理系统学习 --oracle的数据管理学习 --oracle的用户管理 --oracle二维表管理 --oracl...

    eadela
  • 数据库笔记

    在java程序中,一个字符串类型日期往数据库保存时使用to_date()函数,从数据库中取使用to_char()函数来获取字符串类型的日期。

    万能青年
  • oracle--单表查询

    ---单表的查询学习 --查询表的所有数据 select * from 表名;*代表所有 select * from emp; --查询表中指...

    eadela
  • MySQL数据库(良心资料)

    我们所说的数据库泛指“关系型数据库管理系统(RDBMS-Relational database management system)”,即“数据库服务器”。

    阮键

扫码关注云+社区

领取腾讯云代金券