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 ;

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值