21天学通oracle(第二版)笔记

来源:互联网 发布:手机淘宝试用中心在哪 编辑:程序博客网 时间:2024/05/21 16:38

 

关注下解释计划

1.oracle数据类型四类:字符,数值,日期,大对象!

 

字符

a: char(n),如果是位数不足n,他会用空格在右边补齐!

b:varchar(n),是符合工业标准的,可以存储空字符串

c:varchar2(n),不会存储空字符串,这是oracle推荐使用的类型!

 

数值型

number就包括了,整数,浮点,Oracle 没有定义整形(integer or int),但是Oracle 容许定义模个字段为整形,这是因为整形是工业标准的强制要求。但是Oracle会自动将integer转换为number存储,Oracle推荐所有的数值都是使用number,因为使用包括integer,float在内的多种数据类型实际上增加了用户在设计数据库时的复杂性!

日期时间型

日期格式不区分大小写

yyyy_mm_dd 和YYYY_MM_DD,yyyy_MM_dd是一样的,注意date里面是包含了时间的!

insert into Test_DATE VALUES('323',SYSDATE),其中的SYSDATE我以为是个没有参数的函数,实验表明他是个关键字,你加入个(),不行!它得到的结果是有时间的!

 

lob型

clob:文本,如备注

blob:二进制,如图片

bfile:文件

 

2,oracle中的特殊数据

a:rowid不能做为记录插入的数据表的先后标准,因为orcle总是查找空闲的空间插入!这个空间可能是以前删除的数据留下的!

b:Oracle 中将空字符串视为null,在Oracle中判空不能将该列的值与空字符串进行比较,应该使用 is  null(空字符串不是空格)

3 双引号是对单引号的转译

4:

a:between判断可是是数值,字符串,日期,exists判断的必须有一条记录

b:Oracle高级函数——分析函数与窗口函数(以后慢慢研究)

 

分割------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

case

 when a>1 then

         when a>2 then

else

''''''''''''''''''''''''''''''

end case;

它还有另外的形式

case a

when 0 then

ween 1 then

else

end case;

 

case语句的另外一用法是作为表达式出现在select 中

csse when ? then score else 0 end

--------------------------------------------------------------------------------------------------分割

 

1:Union操作的各结果集,只要保证列数相同,各列的数据类型一致即可,并不要求有统一的列名,合并后的结果是是第一个结果集的名字

2:自然连接,全连接不考虑,内连接 select * rom a,b where a.id =b.id 和select *from a inner join b on a,id =b.id 是一样的!都是内连接!

左右连接这是连接的时候有一个主从的关系!,主表一定会显示出来的,如果主表的一条记录和从表的多条对应,那么主表的数据就会出现多次,如果,有个主表没有对象从表数据,那么这个行,从表数据是空,另外这个表示法时(+),(+)在哪个表上,谁就是从表!

3,层次化查询就是对迭代数据的查询 ,有个connect by (以后了解),就就是树

----------------------------------------------------------------------------------------------------------------------------------------------------分隔

 

1:delete 是针对删除表的整列数据,因此不需要加列名,和* ,delete 的from 可以省去(删除的是数据,不会回滚,速度快)

2:truncate属于DDL,所以需要用 table

truncate table test_table;(我们可以联想DDL都有了类型:如create table ,create view ,,,,但是DML 不需要了

delete ,select ,insert,他们不要说明类型了)