自学的Oracle数据库文档 1

5.创建数据表

语法:create table 表名(列1 数据类型,列2 数据类型,·····)tablespace 表空间

Create table 命令用于创建一个Oracle数据表;括号内列出了数据表应当包含的列及列的数据类型;tablespace则指定该表的表空间。

describe命令来查看已有数据表的表结构。

修改数据表结构应当使用alter table命令。

利用drop table 命令删除数据表。

(1)创建数据表student。

自学的Oracle数据库文档 1

(2)修改表--------添加列和删除列-----重命名

利用alter table命令为数据表增加列class_id。

自学的Oracle数据库文档 1

alter table student用于修改表student的结构;add用于增加列,注意此处没有column关键字;小括号内时列及列的数据类型;用户可以一次性为表增加多个列,各列之间使用逗号进行分隔。同样,可以利用alter命令修改和删除已有列。

自学的Oracle数据库文档 1

modify(class_id varchar2(20))用于修改表student中已有列class_id,实际相当于重新定义。该列新的数据类型为varchar2(20).

通过modify选项可以列的类型重新定义,而通过drop选项则删除已有列。

自学的Oracle数据库文档 1

drop column class_id 用于删除已有列class_id;需要注意的是,此处必须添加column选项,才能表示删除的目标是一个列。

对于数据表的列,出了增、删、改操作之外,还可以进行重命名操作。重命名一个列,应该使用rename选项。

rename column student_id to id用于将列student_id 重命名为id。

自学的Oracle数据库文档 1

对于调整数据表结构来说,要特别注意严谨。列的数据类型的修改,有可能会影响应用程序对数据库进行存取;而列的删除和重命名更需要检查应用程序是否会出现关联性错误。

(3)删除数据表

自学的Oracle数据库文档 1

有时,由于某些约束的存在,例如,当前表的主键被其他表用作外键,会导致无法成功删除。利用cascade constraints选线可以将约束同时删除,从而保证drop table 命令一定能够成功执行。语法:drop table tablename cascade constraints;

(4)特殊的数据表dual

dual表实际属于系统用户sys,具有了数据库基本权限的用户,均可以查询该表的内容。

查询语句为:select * from dual; 或 select * from sys.dual;

分析查询结果可知,dual表仅含有一行一列。该表并非为了存储数据而创建的,其存在的意义在于提供强制的数据源。

在Oracle中,所有查询语句必须满足select column_name from table_name的格式。但是,某些场景下,数据源table_name并不明确。例如,实验室date()用于返回当前日期,那么在SQL命令行下调用该函数时,很难有明确的数据源,此时即可使用dual表。

Dual表提供了一行一列的数据格式,从而使各种表达式、函数运算在以其为数据源时,能够输出单行单列的形式。

由于dual表的所有者为系统用户sys,因此,只有用户利用该身份登录数据库才可以修改该表。但是,修改该表的内容或表的结构都应该被禁止。

自学的Oracle数据库文档 1