oracle常用关键字和函数
时间:2021-07-01 10:21:17
帮助过:13人阅读
增:insert into ... values();
例:insert into p_emp values(sq_emp.nextval,
‘小白‘,
‘保洁‘,
7902,sysdate,
600,null,
30,
0);
commit;
注意,表里边有多少列,values()里边的内容就有多少,一一对应关系。后边加分号结束语句,然后commit;提交。
自增长序列:右击Sequences,new一个新的自增序列,起一个name,然后有一个nextval属性,实现自增长。
查:select ... from ...
例:select t.*
,t.rowid from p_emp t(用t代表p_emp),加上t.rowid,可以直接在表里进行修改。单行语句可以不加分号!
删除:delete ... where ...
例:delete p_emp e where e.empon =
1;
commit;
从一个表里边删除某-行,地址是当empon =
1的那一行。
改:update 表 set 表.属性 = ... where 表.属性 = ...;
update p_emp e set e.ename =
‘李华‘ where e.empon =
1;
commit;
数据库的常用关键字:
1.in---:在某个范围内
例子:select * from p_emp e where e.sal in(
400,
300,
5000);
查表p_emp的工资分别为400,300,
5000,的那一行。
2.like---:模糊查询 %表示任意字符,_表示单个字符。
例子:select * from p_emp e where e.ename like
‘T%‘;
查询名字以t开头的,注意like后面必须加 ‘ ’,查询的为字符串的话,开头要大写。
select * from p_emp e where e.ename like
‘K___‘;
查询以字母k开头的,然后后边有几个字母,就加几个下划线。
3.order by--- 排序,默认为正序排序,esc省略了,如果需要倒序排序,则在后面加desc
例子:select *
from e_emp order by e.sal desc
查询工资表倒序排列。
select *
from p_emp e order by e.ename,e.sal desc;
这种情况,是先把ename进行正序,然后在每个ename这个独立的区间内,通过工资进行倒序,desc只管着后边的。
如果ename也想倒序,就在其后边加dese: select *
from p_emp e order by e.ename desc,e.sal desc;
select * from e_emp order by
1,
2 ;
按照第一列和第二列排序;
4.group by--- 按照某几列分组
select e.job from p_emp e group by e.job;
与前边不同的是,按照哪一列分组,就去查那一列,而不是 *
。
5.having 过滤分组,是和group by 关键字一块用的
select e.job from p_emp e group by e.job having count(*)>
3;
6.alter table p_emp add sex number 给表加上一列
7.case when 类似于分支
例子:select e.ename as 姓名,
case e.sex
when 1 then
‘男‘
when 0 then
‘女‘
else
‘kk‘
end 性别
from p_emp as e;
主要要有end结尾,可以把别名写在后边,默认吧as省略了
8.set------设置某些属性
9.distinct---
去除重复
例子:select distinct t.job from p_emp t;查询去除重复之后的工作
10.between...and---(闭合区间, 即包括前面的数, 也包括后面的数)
例子:select t.* from p_emp t where t.sal between
2000 and 3000; 工资在2000到3000的区间
11.all---表示一个集合中所有的元素
例子:select t.* from p_emp t where t.sal >=
all(select t2.sal from p_emp t2);
查工资最高的,all(里边装的是一个集合)
12.any/some---表示一个集合中任意一个元素
例子:select t.* from p_emp t where t.sal >=
any(select t2.sal from p_emp t2);
大于任何一个都满足条件,any(里边装的是一个集合)
常用函数:
1.to_char---日期转换成字符型数据
例子:select to_char(t.hiredate,‘yyyy-mm-dd‘) 日期 from p_emp t;
to_date---字符转换成日期型数据
例子:select to_date(‘1997-12-12‘,
‘yyyy-mm-dd‘) 日期 from dual;
传入一个字符串,转换为日期格式,因为没有from ,所以提供了一个虚拟表 dual
select to_date(‘1997-12-12‘,
‘yyyy-mm-dd‘) -
sysdate 日期 from dual;
传入的的时间和系统时间求差,返回的是相差的天数。
select * from p_emp t where t.hiredate > to_date(
‘1982-01-12‘,
‘yyyy-mm-dd‘);
时间之间做比较
2.分组函数:
mod---
取余函数
avg---
平均数函数
sum---
求和函数
count---
计数函数
例子:select t.job,sum(t.sal),avg(t.sal),count(t.sal) from p_emp t group by t.job;
主要是和group by 分组一块用的;
3.decode---类似于分支语句的函数
例子:select t.ename,decode(t.sex,1,
‘男‘,
0,
‘女‘,
‘qqq‘) 性别 from p_emp t;
4.substr---分割字符串
例子:select substr(t.ename,1,
5) from p_emp t;分割名字,从第一位到第5位,
select substr(t.ename,1) from p_emp t;从第一位后面的所有
5.max---取最大值函数
例子:select max(t.sal) from p_emp t;
6.min---取最小值函数
例子:select min(t.sal) from p_emp t;
7.trunc---取整函数
例子:select trunc(12.555) from dual;
8.ceil---向上取整函数
floor---
向下取整
例子:select floor(12.555) from dual;
注意,上述3个函数可以用在日期上的
9.nvl---过滤空值函数,传入2个参数,并且只能写入数字
nvl2---过滤空值函数2,是nvl的加强版,传入三个参数,为空返回第二个,不为空返回第三个
例子:select nvl(t.comm,0) from p_emp t;如果有的项为空,那么就用赋值为0;
select nvl2(t.comm,‘为空‘,
‘不为空‘) from p_emp t;
10.lower---将字母全部改为小写
upper---
改为大写
例子:select upper(t.ename) from p_emp t;
11.concat ---链接两字符串
例子;select concat(‘tename‘,
‘rrrr‘) from dual;
12.wm_concat---列转行函数(也属于分组函数)
例子:select wm_concat(t.ename) from p_emp t;返回一行,把所有名字整合成一块,一个长的字符串。不常用
oracle常用关键字和函数
标签:字符型 内容 平均数 提交 最大值 decode ... next 数字