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

Oracle知识点总结—常用数据类型与表的管理

2012-09-27 21:52 543 查看
1、常用的数据字段

字符串 VARCHAR2(n) n表示所能保存字符串的最大长度,一般200个左右

整数 NUMBER(n) 表示最多为n位的整数,有时可以用int代替

小数 NUMBER(n,m) 其中m为小数的位数,n-m为整数位,有时也用float代替

日期 DATE 存放日期时间

大文本 CLOB 可以存储海量文字(4G)

大对象 BLOB 存放二进制数据

2、创建表

create table 表名称(

字段1 数据类型 [default 默认值],

字段2 数据类型 [default 默认值],

字段3 数据类型 [default 默认值],

........

字段n 数据类型 [default 默认值]

);

创建一张成员表(member)姓名、年龄、出生日期、个人简介

create table member(

name varchar2(50) default '无名氏',

age number(3) ,

birthday date default sysdate,

content clob

);

insert into member(name,age,birthday,content) values('张三',20,to_date('1990-02-12','yyyy-mm-dd'),'活动时间盒饭');

3、复制表

create table 复制表的名称 as 子查询;

create table myemp as select * from emp;

仅仅复制表结构,写一个不会满足的查询

create tabel myemp1 as select * from emp where 1=2;

为表重命名

在oracle数据库之中,所有的数据实际上都是通过数据字典保存的,例如,在之前曾经使用过的如下一种查询:

select * from tab;

以上就是一个数据字典,而在oracle之中,提供了三种类型的数据字典,最常用:dba、user_,所以下面查询一个user_tables数据字典

select * from user_tables;

也就是oracle中的所有数据都是按照文件保存的,那么所有的内容都会在数据字典中注册,既然这样,所谓的修改表名称实际上对于oracle而言就相当于修改一条数据而已,修改如下:

rename 就得表名称 to 新的表名称;

rename member to person;

这种操作是oracle数据库独有的一种特性,所以了解即可,不用做深入的掌握

4、截断表

删除表数据delete会进行事务的回滚

彻底释放一张表所占有的全部资源:

truncate table 表名称;

truncate table myemp;

这种语法只是oracle特有的,了解即可

5、表删除

使用drop语句

drop table 表名称;

drop table myemp;

删完之后,还有残留。这是oracle 10g中的闪回技术

在oracle 10g之后,为了预防用户的误删除表的操作,专门提供了回收站的功能,用户所删除的表默认情况下会在一个回收站之中保存,而用户也可以通过回收站,进行表的恢复,所以此技术称为闪回(flashback)

查看回收站

show recyclebin;



6、恢复表

flashback table 表名称 to before drop;

flashback table myemp to before drop;

删除回收站的表

purge table 表名称;

清空回收站(常用)

purge recyclebin;

如果删除一张表,而又不希望其进入到回收站之中,则可以在删除的时候加上purge

drop tabel 表名称 purge;

这种技术是在oracle 10g后添加的

修改表结构

增加字段

alter table 表名称 add (列名称 数据类型 [default 默认值],....);

alter table member add(mid number);

修改字段

alter table 表名称 modify(列名称 数据类型 [default 默认值],....);

alter table member modify(name varchar2(100),'哈哈');

在开发中,能不修改就不修改,删除重新建

--创建sql文件

--删除表

drop table nation purge;

--创建表

create table nation(

name vachar2(50)

);

--插入表数据

insert into nation(name) values('中国');

insert into nation(name) values('美国');

insert into nation(name) values('巴西');

insert into nation(name) values('荷兰');

--提交

commit;

-- 查询

select n1.name,n2.name from nation n1,nation n2 where n1.name!=n2.name;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: