首页 > 代码库 > oracle数据库从入门到精通之二
oracle数据库从入门到精通之二
重点关注表的创建与操作语法(如何创建与设计表是后话)
常用数据类型
表本质上是数据的集合操作
数据类型:
不管扩展多少种数据类型,常用的就以下几种
字符串 varchar2(其它数据库是varchar)来描述,200个字以类的都用此类型。
数值 number来描述,小数用number(m,n),其中n为小数位,m-n为整数位。
数据库也考虑了程序人员的习惯:
整数用INT来表示
小数用FLOAT来表示
日期 date
大文本数据 clob来描述,最多可以保存4G的文本。
大对象数据 blob来描述,图片,音乐,视频,文本,最多可以保存4G,
虽然能存,但效率低下,数据库更多的是用来存地址,费了
半天劲,保存进去了,还得费半天劲读出来,把数据库就累死了。
从实际的开发来讲,掌握这四个就够了,varchar2,number,date,clob.
#########################
表创建:
create table 表名(
列名 数据类型 [default 默认值],
列名 数据类型 [default 默认值],
列名 数据类型 [default 默认值],
列名 数据类型 [default 默认值],
...
列名 数据类型 [default 默认值]
);
create table member(
mid number,
name varchar2(20) default ‘noname‘,
birthday date default sysdate,
note clob
insert into member(mid,name,birthday,note) values(1,‘aa‘,to_date(‘1980-09-08‘,‘yyyy-mm-dd‘),‘aaaaaaaaaaaaaa‘);
insert into member(mid,name,birthday,note) values(2,‘bb‘,to_date(‘1980-10-08‘,‘yyyy-mm-dd‘),‘bbbbbbbbbbbbbb‘);
insert into member(mid) values(3);
insert into member(mid,name) values(4,null);
如果指定了null,就会覆盖默认值。
############################
表复制
将子查询的结果保存为数据表。
create table 表名 as 子查询;
简单查询
create table emp30 as select * from emp where deptno=30;
复杂查询
create table deptstat
as
select d.deptno,d.dname,temp.count,temp.avg
from dept d, (
select deptno dno,count(*) count,avg(sal) avg
from emp
group by deptno) temp
where d.deptno=temp.dno(+);
除了复制表数据之外,还可以只复制表结构。
只需要设置一个绝对不可能满足的条件即可。
create table empnull
as
select * from emp where 1=2;
oracle数据库从入门到精通之二