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

版权声明:本文为米刀文原创文章,转载请标记出处,谢谢! https://blog.csdn.net/henulwj/article/details/8026606
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;

展开阅读全文

没有更多推荐了,返回首页