注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

程序员小站

J2EE丨Spring | JVM | Scala

 
 
 

日志

 
 

Oracle表的创建和管理  

2012-02-14 17:45:07|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

对数据库而言每一张表都是一个对象 ,而数据库对象的操作就是DDL定义的所有操作,例如:表,视图,索引,序列,约束等。

创建对象: CREATE 对象名称

删除对象: DROP 对象名称

修改对象: ALTER 对象名称。

常用数据字段

NO

数据类型

关键字

描述

1

字符串

VARCHAR2n

n为字符串能保存的最大长度,基本上保存200

2

整形

NUMBERn

表示最多为n为的整形,有时候可以用INT代替

3

小数

NUMBERn,m

m为小数位,n为整数位,有时候用FLOUT代替

4

日期

DATE

日期

5

大文本

CLOB

最大4G文本

6

大对象

BLOB

二进制数据

一般情况下之中使用最多的:VARCHAR2() NUMBER DATE CLOB,而相对于BLOB字段一般使用较少,首先BLOB可以存放4G的二进制数据,但是存放进去之后,一是数据库多余庞大,而是读取不方便。

表的创建:

CREATE TABLE 表名称 (

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

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

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

;

CREATE TABLE mumber (

name  VARCHAR2(50) DEFAULT '无名氏',

age  NUMBER(3),

birthday DATE  DEFAULT SYSDATE,

content CLOB

);

INSERT INTO mumber(name,age,birthday,content) VALUES('张三',20,TO_DATE('1990-01-01','yyyy-mm-dd'),'一个好人');

表的复制:

CREATE TABLE 复制表名称 AS 子查询

复制表

CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20;

只复制表结构:写一个无法满足的条件

CREATE TABLE empnull AS SELECT * FROM emp WHERE 1=2;

查询表结构:desc 表名称;

以上语法只是Oracle数据库支持的。

为表重命名:(了解)

Oracle中,所有的数据实际上都是通过数据字典保存的,例如:

SELECT * FROM tab;

以上就是一个数据字典,而在Oracle中,提供了三种类型的数据字典:最常用的是dba_

user_ 所以下面是查询一个user_tables数据字典。

SELECT * FROM user_tables;

所谓修改表名称其实就是修改一条数据而已。

RENAME 旧的表名称 TO 新的表名称

Oracle 独有。

截断表(了解)

完全释放表空间,不能回滚(DELETE 可以回滚),表结构不会删除。

TRUNCATE TABLE 表名称。

表的删除:

数据库对象的删除。使用DROP语句,表空间表结构都会删除。

DROP TABLE 表名称。

Oracle 10g 的新特性闪回技术(理解) FLASHBACK

为了防止用户误删,oracle专门提供了一个类似回收站的功能,用于恢复表。

查看回收站

SHOW RECYCLEBIN ; 

发现已经删除的表都在回收站保存,使用如下恢复:

FLASHBACK TABLE 表名称 TO BEFORE DROP ;

删除回收站中的指定的表:

PURGE TABEL 表名称;

清空回收站:

PURGE RECYCLEBIN;

删除表,不让其放到回收站。

DROP TABLE 表名称 PURGE

修改表结构

在表后面添加字段:

ALTER TABLE 表名称 ADD (列名称  数据类型  [DEFAULT 默认值····)

修改列结构

ALTER TABLE 表名称 MODIFY (列名称  数据类型  [DEFAULT 默认值····)

修改列名

语法:ALTER TABLE table_name RENAME COLUMN oldname TO newname;
举例:ALTER TABLE employee RENAME COLUMN ename TO employee_name;

删除列:可以使用ALTER TABLE DROP COLUMN 列名称 直接删除列


思考题:

nation表 有一个name字段 有四个值:中国、美国、巴西、荷兰

要求输出格式如下: 中国   美国

中国 巴西

中国 荷兰

美国 中国

美国 巴西  

以此类推。

首先创建数据库创建脚本 必须是*.sql 格式。

-- 1.删除数据库

DROP TABLE nation PURGE;

-- 2.创建数据库

CREATE TABLE nation(

name VARCHAR2(50)

);

-- 3.添加数据

INSERT INTO nation(name) VALUES('中国');

INSERT INTO nation(name) VALUES('美国');

INSERT INTO nation(name) VALUES('巴西');

INSERT INTO nation(name) VALUES('荷兰');

-- 4.提交数据

COMMIT;

查询语句:

SELECT n.name,a.name

FROM nation n,nation a

WHERE n.name<>a.name;

  评论这张
 
阅读(370)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018