实例016 使用CREATE TABLE命令创建基本表
【实例描述】
基本表是数据库的重要组成部分,是许多诸如视图、索引等数据对象的数据来源。一个数据库中可以有多张基本表,在使用基本表前需要先创建该表。创建基本表主要是指对一个基本表的结构定义,也即对创建一个基本表所需要的元素作定义,本实例介绍了基本表的创建及其数据类型、长度等的设置。
在本实例中,创建了一个学生表STU,它包含SNO、SNAME、SGENTLE、SAGE、SBIRTH和SDEPT 6个字段(列),其中SNO为学生学号,其数据类型为字符型,长度为10;SNAME为学生姓名,其数据类型为字符型,长度为10;SGENTLE为学生性别,其数据类型为字符型,长度为2;SAGE为学生年龄,其数据类型为数值型;SBIRTH为学生出生年月,其数据类型为日期时间型;SDEPT为学生所属系部,其数据类型为字符型,长度为20。创建完成后,STU的表结构如图2-1所示。
图2-1 基本表的结构
【实现代码】
以system/oracle普通连接到Oracle SQL*Plus后,在“SQL>”字符串后输入如下所示的PL/SQL代码。
SQL> CREATE TABLE STU ( 2 SNO VARCHAR2 (10) NOT NULL, 3 SNAME VARCHAR2 (10), 4 SGENTLE VARCHAR2 (2), 5 SAGE NUMBER(2), 6 SBIRTH DATE , 7 SDEPT VARCHAR2 (20) ) 8 /
【范例解析】
本实例使用命令形式创建一个基本表,该表的名称为STU,包含6 个字段(列)。Oracle PL/SQL中要创建一个基本表,需使用CREATE TABLE命令实现,CREATE TABLE命令包含一系列的参数,其常用形式为:
CREATE TABLE〈表名〉 (〈字段名1〉〈类型〉[(〈字段宽度〉[,〈小数位数〉])][NOT NULL], (〈字段名2〉〈类型〉[(〈字段宽度〉[,〈小数位数〉])] [NOT NULL], …… (〈字段名n〉〈类型〉[(〈字段宽度〉[,〈小数位数〉])] [NOT NULL]
其中,表名和字段名由用户自己确定,类型是指列(字段)的数据类型,Oracle支持的列数据类型较多,其主要类型见表2-1所示。
表2-1 Oracle支持的主要数据类型
字段宽度是指字符数据类型的长度,或数值型数据类型的精度,而对于DATE、CLOB等数据类型来说无须指明其长度,Oracle系统将自动设定。在SQL*Plus中用上述CREATE TABLE命令格式执行创建基本表,即能完成表的创建操作,如图2-2所示。
图2-2 创建基本表
创建基本表完成后,读者可在SQL*Plus工具下通过“DESC+表名”命令查看基本表的结构,即可得到图2-1所示的表结构图。
注意:同一个创建基本表的命令在查询分析器中只能成功执行一次。一旦成功执行了,就不能再执行了,否则会出现图2-3所示的错误提示。这是因为在一个关系数据库中,不允许存在重名的基本表。
图2-3 重复创建基本表错误