首页 > 代码库 > 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数据库从入门到精通之二