逐值替换
decode,组成字符串
extract 年龄相减
TO_char转换函数
日期对象 to_date(不能用中文)
控制转换 nvl()将空值转为0
也可以(comm,10,0)满足是10,不满足是0
分析函数
row_number它是将相同的排名直接列出来
rank()将相同的排名并列,但是下一个就没有了
dense_rank()将相同的排名并列,下面的编号也有
赋权限
grant create synonym to lvmin 给账号赋同义词的权限
grant select,update,delete on scott.emp to lvmin
第一种:私有同义词
谁创建的账号就是谁的,
第二种:共有同义词,
create public synonym a for scott.emp
这个同义词是给表赋予的。
--逐值替换
select ename,decode(deptno,10,‘开发部‘,20,‘测试部‘,30,‘维护部‘) from emp;
-- 年份差
select ename,extract(year from sysdate) - extract(year from hiredate)as 工龄 from emp
-- 转换函数
Select TO_CHAR(0.12355,‘$0.9999‘) FROM DUAL;--转为字符串,四舍五入
--日期对象
select to_date(‘2019-11-11‘,‘yyyy-mm-dd‘)from dual
--查询每一个人的工资总和
--控制转换
select ename,(sal+nvl(comm,0)) as 工资总和 from emp
select * from emp
select ename,(sal+nvl2(comm,10,0))as 工资总和 from emp
--
SELECT NULLIF(100,200) FROM DUAL;
SELECT NULLIF(100,200) FROM DUAL
--分析函数
select ename,sal,row_number() over(order by sal asc) as 排名 from emp
select ename,sal,rank() over(order by sal asc) as 排名 from emp --相同值并列
select ename,sal,dense_rank() over(order by sal asc) as 排名 from emp --并列也计算上
--赋权限,创建同义词的权利
grant create synonym to lvmin
--授予可以查询、删除、修改scott.emp的权限
grant select,update,delete on scott.emp to lvmin;
--创建私有同义词
create synonym e for scott.emp
select * from e
--创建公有同义词
create public synonym a for scott.emp
--
select * from a 直接给表设别名,查询方便。
--第四天
--创建序列
create sequence seq0611
start with 1
increment by 1;--序列是一个独立的对象,有点类似于迭代器
select * from java0611 --无回滚,这个序列就是一个虚拟数。
insert into java0611 values(seq0611.nextval,‘莫风‘,‘男‘,to_date(‘1991-01-08‘,‘yyyy-mm-dd‘),222);
select seq0611.currval from dual
--
select * from emp
select * from emp join dept on emp.deptno=dept.deptno
where dname=‘SALES‘
--创建视图
create view dept_emp
as
select empno,ename,job,sal,comm,emp.deptno,dname from emp join dept on emp.deptno=dept.deptno
--利用视图查询其中的某些条件
select * from dept_emp where dname=‘SALES‘
--修改视图
create or replace view dept_emp2
as
select * from emp order by sal asc
--删除视图
drop view dept_emp
--查询视图
--给scott授予创建视图的权限
grant create view to scott
--创建测试索引
create table t_testseq
(
id number,
name varchar2(10)
);
--创建序列,用于自增
create sequence seq_value
start with 1
increment by 1;
--视图
--插入数据
select * from t_testseq where id=69999
--创建索引,提高检索速率
create index in0611 on t_testseq(id)
原文:https://www.cnblogs.com/a199706/p/11686424.html