设为首页 加入收藏

TOP

Oracle学习笔记8--创建和管理表
2014-11-23 21:50:08 来源: 作者: 【 】 浏览:16
Tags:Oracle 学习 笔记 8-- 建和 管理

前6次笔记,都是表的查询操作,查询作为数据库的一个基本操作,我们花了不少的时间。那么本次笔记我们学习,对表的创建和管理,创建表、删除表、修改表、重命名表和清空表。

常见的数据库对象: 表,视图,序列,索引,同义词

之前查询所使用的表emp 、dept 都是Oracle自带的数据库。本次就使用SQL语句来创建我们自己的表。

创建表之前,先了解一下数据库的几种数据类型和表的命名规则。

数据类型:

varchar2 表示的是一个字符串。

number number(n) :表示的是一个整数,数字的长度是n 。

number(n,2)表示的是一个小数,小数点后可以保留两位小数。

date 表示日期的类型,按照标准的日期格式进行存放。

clob 字符数据,最大可达到4G。

blob 表示二进制数据,最大可以存放4G,例如,存放电影,图片。

表名和列名的命名规则:

必须以字母开头;

必须在1-30个字符之间;

必须只能包括含有A-Z ,a-z, 0-9,_,$和#;

不能和用户定义的其他对象重名;

必须不能是Oracle的保留字;

建表的语法:

CREATE TABLE table_name(

列名称1 数据类型 [DEFAULT 默认值] ,

列名称2 数据类型[DEFAULT 默认值] ,

列名称3 数据类型[DEFAULT 默认值] ,

...

)

例:创建emp1表

SQL> create table emp1(
2 id number(10),
3 name varchar2(20),
4 salary number(12 ,2 ),
5 hiredate date
6 );

Table created

表emp1创建成功。

除了上面的这这种建表的方式,还有第二种方法,该方法依托于已经存在的表。

基本语法:

CREATE TABLE table_nameAS(子查询) ;

在子查询中,如果写的是select * from emp ,或者是 select enamel , sal , hiredate , (具体的列名) from emp ;除了将emp表中列的结构复制过来,连表中的数据也一起复制过来。如果我们只是想复制一个表的结构,而不复制表的内容,则要添加where 条件,即:select * from emp where 1 = 2 ; 此时,只复制表的结构,不会复制表的内容。

修改表 (ALTER TABLE)

使用alter table 语句可以完成:追加新的列,修改现有的列,为新追加的列定义默认值,删除列,重命名表的

列名等操作。

追加新的列

基本语法:

ALTER TABLE table_name

add ( 列名 数据类型 默认值) ;

例:为表emp1 ,添加email ,20个字符 ,并设置默认值--无地址

SQL> alter table emp1
2 add(email varchar2(20)) ;

Table altered

SQL> desc emp1 ;

Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
ENAME VARCHAR2(10) Y
SAL NUMBER(7,2) Y
HIREDATE DATE Y
EMAIL VARCHAR2(20) Y

修改现有的列

基本语法:

ALTER TABLE emp1

MODIFY (列名 ,数据类型 ) ;

例:将表emp1 中列salary 的数据类型长度改为50

ALTER TABLE emp1

MODIFY (salary number(50) ) ;

删除列

基本语法

ALTER TABLE emp1

DROP cloumn 列名 ;

例:删除上次添加的email列

ALTER TABLE emp1

DROP cloumn email ;

重命名列

基本语法:

ALTER TABLE table_name

RENAME column old_column_name TO new_column_name ;

例:将emp1表中的列salary重命名为sal

ALTER TABLE emp1

RENAME cloumn salary TO sal ;

在一般的开发中,很少会对表的结构进行修改操作,因为在开发的初期,已经对数据库中表的结构进行了充分的设计。

表的删除

基本语法:

DROP TABLE table_name ;

例:删除emp1 表 --- DROP TABLE emp1 ;

表的重命名:

基本语法:

RENAME old_table_name TO new_table_name ;

清除表

基本语法:

TRUNCATE TABLE table_name ;

如果想保留表的结构,但是清除表中的记录,可以使用上面的语句,该操作不可恢复。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle数据库案例整理-导入导出Or.. 下一篇[Oracle]谈谈主外键设计

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: