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

Oracle学习笔记8 -- 创建和管理表

2014-04-16 21:07 281 查看
前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 ;
如果想保留表的结构,但是清除表中的记录,可以使用上面的语句,该操作不可恢复。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐