您的位置:首页 > 数据库 > Oracle

Oracle基本数据类型

2015-12-29 22:05 453 查看
字符型
char
varchar2
long (4G)

数型型
number(m,n)

number(4);  4位整数
number(4,2); 二个整数,2位小数

日期时间型   默认的格式   '18-9月-15 18:44:40.123455'
date   精确到秒
timestamp  精确到秒后面6位小数

RAW  存放二进制数,如  声音,图片

LOB  (大对象数据类型)  流    效率高
clob (海量文本)
blob (海量二进制,如声音。图片,视频)
bfile (文本存在操作系统里面,放文件的指针)

伪列(rowid  rownum) 查询
rowid 使用一个32位字符串,来唯 一表示每一行,   快速定位

rownum( mssqlserver -- top   限数查询 ) 插入行时,给每一行连续整数编号,从1开始
1)不能带前缀
2)查询时必须从1开始查


分页显示

mysql    limit
oracle   rownum    row_number()over();
mssqlerver   top   row_number()over()--SQL2005以上;


代码块

相关的代码操作,例如:

@requires_luolijun

create table stu
(
sid number(4),
bid number(4),
sname varchar2(20),
sborn date,
saddress varchar2(50)
)
-- oralce 主外键约束,必须写外面,  not null  default 必须写在表内
--表外约束
alter table stu add constraint FK_bid foreign key(bid) references bj(bid);

insert into stu  values(1001,3,'杨','1-1月-10','福建');
insert into stu  values(1002,1,'杨贵妃',sysdate,'长安');    --sysdate取系统时间
insert into stu  values(1003,2,'艳艳',to_date('2005-5-5','yyyy-mm-dd'),'福建');

commit;         --插入,更新,删除都应该用commit提交才真正放到数据库里了。

select rownum,stu.sid,sname from stu where rownum=1;
select rownum,sid,sname from stu where rownum>=3;  --无输出结果  因为rownum只能用<或<=

select rowid from bj;
--number分页
select rownum,sid,sname,sborn from stu where rownum<=3;
--伪列实例化 as n
select sid,sname,sborn from (select rownum n,sid,sname,sborn from stu) where n between 7  and 9
-- 按年纪 降序 分页
select sid,sname,sborn from(select rownum n,sid,sname,sborn  from(select sid,sname,sborn from stu order by sborn)) where n between 4 and 6

-- row_number()over(order by)  天生就有排序;
--产生一个从1开始的连续的整数编号,,,查询输出的时候产生的

select * from (select row_number()over(order by sborn) n , sid,sname,sborn from stu) where n between 4 and 6 ;

-- row_number()over(partition by order by)  天生就有排序;
--输出每个班年级最大的二个人
select * from(select row_number()over(partition by bid order by sborn) n, sid,bid,sname,sborn from stu )where n<=2;
... prompt'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: