oracle学习笔记一

1.编辑命令(文本文件)

edit  路径/文件名
编辑缓冲区中的命令. edit
执行缓冲区中的命令:/(run)
执行脚本:@ 文件名 start 文件名


缓冲区中的命令只有一条。
2。数据类型:(plsql编程中增加:boolean)

字符型:
char(len)---len就是此变量的长度,默认支持2000个字节。
varchar2(len) --变量的长度,默认支持4000个字节。
数字型:
number---默认支持38位数  (binary_integer)
number(len,sec)---len 指数字的长度,sec是小数的最大位数。number(8,2) 长度为8个数字,其中最多只能是2个小数位。

日期时间类型:
date  --"dd-mm-yyyy"存储格式,显示格式:‘dd-mm-yy'        sysdate.    (mysql---currdate)
timestamp --时间戳   显示完整的日期时间类型。精确到毫秒。  systimestamp(mysql---current_timestamp)

大对象:
clob  --字符类型的大对象    文本内容
blob  --二进制类型的大对象。图片,声音,视频
bfile --存放大对象的指针。存放的指针对应的文件内容放到磁盘上,数据库中只存放其文件的指针。

内置函数(单行函数):操作每个对象都产生相应的一个结果。

字符型函数: lower,upper,length,substr,nvl,
数字型:     round,floor,ceil,
日期型: round,trunc,add_months,months_between,+,-天数,last_day
转换函数:     to_char,to_date,to_number


聚合函数(分组函数):count,max,min,avg,sum
查询语句中出现分组函数,并且有查询字段时,这些字段要出现在group by 。

分析函数: row_number,rank,dense_rank。

select row_number() over(order by sal desc) rownumber,rank() over(order by sal desc) rank,dense_rank() over(order by sal desc) denserank,e.sal,e.empno,e.ename
from emp e
3.伪列:
rowid ---磁盘上的存储地址,真实存在。不属于表的一部分。
rownum --指查询结果集中的序号。


4.查询语句:

基本查询:
select [distinct] *
from 表名
where 条件限制
group by 分组字段 having 分组条件限制
order by 排序字段[asc|desc];
子查询:
查询的条件为求知,要先做查询。

连接查询:
内连接:查询连接表和主表之间所有符合连接条件的记录
外连接:
左外:left join  以主表记录为主,显示所有主表中的记录
右外:right join 以从表记录为主,显示所有从表中的记录。
全外:full join  以主表,从表记录为主,全部显示。
自连接:  主表,从表都是一张表,只是以别名来区分。
交叉连接:cross join ,无连接条件。
结果集的操作 :

union:   结果相加,相同的记录只取一份
union all:结果集相加,不管记录是否相同
intersect:取交集
minus:    相减。


聚合函数的嵌套:
查询的子句只能且只能有一个嵌套。

sql92查询语法:

select *
from 主表 别名,从表 别名
where 连接条件 and 限制条件;

  连接条件设置:
内连接:连接条件就是 on...;
左外:   连接条件就是:主表.主表字段=从表.从表字段(+)
右外:连接条件就是:主表.主表字段(+)=从表.从表字段

交叉:没有where.














猜你喜欢

转载自cwmdream.iteye.com/blog/1857715