美丽Oracle之-Oracle第三天 系统函数、查询
一、字符串函数:
1、 upper(表达式) :将表达式变成大写
2、 lower(表达式) :将表达式变成小写
3、 replace('表达式 1’ ,’表达式 2’ ,’表达式 3’ ) :2是1中的字符被3替换
4、 concat(表达式1,表达式2) :字符串连接,相当于 ||
5、 initcap(表达式) :将表达式的手写字母变成大写
6、 length(表达式) :求表达式长度
7、 substr(表达式,m,n) :取子串,从第m取到第n
8、 instr(表达式1,表达式2) :求表达式2在表达式1中出现的位置,找到>0,否则<0
9、 trim(表达式) :去左右空格
10、 ltrim(表达式) :去左括号
11、 rtrim(表达式) :去右括号
12、 lpad(表达式1,m,表达式2) :左填充
13、 lpad(表达式1,m,表达式2) :右填充
14、 ascii(表达式) :取字母的ascii码
二、数学函数:
1、 abs(表达式) :取绝对值
2、 mad(表达式1,表达式2) :取余
3、 round(表达式,m) :四舍五入,m表示保留小数点位数
4、 trunc(表达式,m) :截取,m表示保留小数位数
三、日期函数:
1、 sysdate :取得系统时间和日期
2、 add_months(表达式,m) :给表达式加上m个月,返回日期型
3、 month_between(表达式1,表达式2) :两个表达式做差,返回相差的月份,数值型
注:Oracle中,两日期直接做差,返回相差天数,数值型
四、转换函数:
1、 to_char(表达式,’格式’) :将日期型按照某种格式转换成字符型
yyyy-年4位
yy-年2位
mm-月
dd-天
day-周
hh12-12小时制,小时
hh24-24小时制。小时
mi-分
ss-秒
2、 to_date(表达式,’格式’) :将字符格式的日期转换为日期型
3、 to_number(表达式) :将字符型的数字转为数值型
五、多表查询:
1、 笛卡尔乘积:
没有连接条件的查询,结构是多表记录数的乘积
如:
select emp.*,dept.* from emp,dept
正确:
select emp.*,dept.* from emp,dept where emp.deptno=dept.deptno
2、 连接条件:
用于连接2个表的查询条件
3、 连接字段:
条件连接的字段,连接字段存在可比性
4、 等值连接:
用等号连接
5、 自连接:
自己与本身的连接,当表中存在上下级关系或层次关系时,使用自连接,自连接必须起别名。
6、 内连接:
只返回满足条件的记录
如:
select a.*,b.* from 表1 as a inner join 表2 as b on a.字段=b.字段
7、 外连接:
不仅返回满足条件的记录,也返回不满足条件的记录
1) 左连接:返回左表不满足条件的记录,右表没有对应则填空
2) 右连接:返回右表不满足条件的记录,左表没有对应则填空
3) 全连接:左右表全显示并去掉重复
注:左右表对于left/right join 而言
六、联合操作(并操作):
将多个结果集合并成一个结果集
格式:
1)
select 语句
union =>去掉重复
select 语句
2)
select 语句
union all =>不去重复
select 语句
1、 交集:
结果集中共有的记录
格式:
select 语句
intersect
select 语句
2、 差集:
结果集做差
格式:
select 语句
minus
select 语句
七、高级查询:
1、 子查询:
在一个select语句中使用另一个select语句作条件或数据来源
2、 查询块:
一个select语句
3、 嵌套查询:
在一个查询块中使用另一个查询块
1) 不相关子查询:
子查询不依赖于主查询,子查询可以独立运行
2) 相关子查询:
子查询依赖于主查询
注:子查询必须使用括号括起来