oracle学习总结(二)

一.sql中的单行函数
函数的功能
1 进行数据的计算。
2 修改单个数据项。
3 操作若干行组的输出。
4 控制显示的日期格式。
5 列的数据类型转换
i 字符处理操作
LOWER 转换内容为小写
UPPER 转换内容为大写
INITCAP 首字母大写
CONCAT 连接字符串 与|| 等价
SUBSTR 取子串,截取字符串
LENGTH 返回一个字符串的长度
函数可以嵌套使用
思考:找出所有员工名字的最后两个字符
select SUBSTR(last_name,LENGTH(last_name)-1,2)
from s_emp;
oracle学习总结(二)
ii 数值处理操作
做数字单行函数测试,可以使用dual表
round(被四舍五入数,指定位置) 对指定位置进行四舍五入操作
oracle学习总结(二)
trunc(被截取数,指定位置)对指定位置进行截取操作
mod(被除数,除数) 得到余数
iii 日期处理操作
system ,systimestamp 返回当前时间和日期
a. 直接进行数字 + 或 - 数字代表整天天数
select sysdate+1 from dual;
b. 对小时进行操作 (分 1/24/60 秒 1/24/60/60)
select sysdate+1/24 from dual;
c. months_between(大日期,小日期) 两个日期相差的月数
d. add_months 增加一个月
e . last_day 指定日期所在月份的最后一天
f .to_date(要转化日期字符串,日期的格式)
g .to_char 转换数字或者时间成字符串
二.多表查询
1.等值连接
使用了 = 作为连接条件
select e.last_name,e.salary,d.name
from s_emp e,s_dept d
where e.dept_id=d.id;
oracle学习总结(二)
2.不等值连接
不使用 = 作为连接条件
select e.last_name,e.salary,r.name
from s_emp e,s_rank r
where e.salary between r.minsa and r.maxsa;
oracle学习总结(二)
3.外连接 outer join
如果一张表中某一行的外键为空,若这张表和外键所指的表进行链接查询,会出现外键为空的这行查不出来
为了避免这种情况,使用外连接查询
4.自连接
查询的数据在同一张表中
查询每个员工的名字以及员工对应的经理的名字
select s1.last_name,s2.last_name manager_name
from s_emp s1,s_emp s2
where s1.manager_id = s2.id;
5.对俩个结果集的操作:union, minus , union all, intersect
注意:前提条件 俩个结果集中查询的列要完全一致