字符型
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'''