操作符及SQL函数
SQL函数:
单行函数:日期、字符、数字、转换、其他
分组函数
分析函数
Oracle支持SQL操作符有5种:1、算术 2、比较 3、逻辑 4、集合 5、连接操作符
select empno,ename,job,sal+1000 from emp
-- 比较运算符 between and 包头包尾 select * from emp where sal between 1000 and 2000
-- 查询奖金不为空的员工信息 等于s is nul 不等于是is not null select * from emp where comm is not null
SELECT * FROM t_student WHERE sbirthday >= '01-1月-90' AND not sclass = 2; SELECT * FROM t_student WHERE sbirthday >= '01-1月-90' AND sclass <> 2; SELECT * FROM t_student WHERE sbirthday >= '01-1月-90' AND sclass != 2;
MySQL里面也有 UNION 但意思是不一样的
1、union 操作符返回两个查询的不重复的所有行
2、intersect 操作符只返回两个查询的公共行
3、MINUS 操作符返回从第一个查询结果中排除第二个查询中出现的行
注意:Oracle里叫连接 || 与MySQL的 短路或 || 是不同的
MySQL的短路或 || 特点:如果是或者,只看左边是否为true,无需看右边。若左边是false,右边也要判定
-- 连接操作符 || select ('员工号为'||empno||'姓名为'||ename||'的工资为'||sal) from emp
如果感觉太难看 可以起个别名 as info
-- 字符串函数 lower:大写转小写(lower在哪个字段前加 哪列字段就是小写) select empno,lower(ename),job from emp
ASC 码表需要记住的三个开头 0:48 a:97 A:65
Abs:绝对值
Ceil:天花板 向上取整
Floor:地板 向下取整
Mod:取余(取模)
Round:四舍五入 后面的2 代表位数
Truncate:截取
Sqrt:平方根
-- 日期函数 add_months 偏移 select * from java0322 select add_months(sbirth,3) from java0322
Months_between:相差月份数
-- 日期函数 extract 计算年份差 select extract(year from sysdate) from dual
-- 计算java0322的人多少几年 extract select sname,extract(year from sysdate)-extract(year from sbirth) as age from java0322
-- 转换函数 select to_char(0.123,'$0.9999') from dual -- 转日期 select to_date('2015-02-22','yyyy-mm-dd') from dual -- 转数值 select to_number('20') from dual
pm
select empno,sal +nvl(comm,0)as sal from emp;
select ename,sal+nvl2(comm,10000,0) from emp
select nullif(200,200) from dual;
select empno,ename,job,sal,rank() over(order by sal desc) as numm from emp
数据库对象
同义词:私有和公有
私有:当前用户内访问
公有:只能管理员创建,所有用户都可以访问
要注意 创建用户 要切换 system登录
-- 同义词 创建用户 这里要切换 管理员登录 CREATE USER test IDENTIFIED BY 123456; GRANT CONNECT , CREATE SYNONYM TO test; GRANT SELECT ON SCOTT.EMP TO test; GRANT DELETE ON SCOTT.EMP TO test; GRANT UPDATE ON SCOTT.EMP TO test; -- 以test身份登录 select * from scott.emp; -- 创建同义词 synonym 谁建的谁用 create synonym staff for scott.emp; select * from staff
公有同义词:就是谁都可以查
-- 以sys或system身份登录 创建公有同义词
create public synonym emps for scott.emp
谁创建的谁删除、修改
-- 创建序列 先切换用户 scott create sequence seq_student start with 1 increment by 1;
-- 实现自增的功能 :利用里面的值 insert into stu values(seq_student.nextval,'袁一鸣'); select * from stu
s