在Oracle中,通常通过两种方法来创建,一种方法是使用OEM图形化管理工具来创建,另一种方法是在SQL*Plus中执行SQL语句来实现。
这里主要说用SQL语句创建。
使用SQL*Plus语句创建表的一般格式如下:
CREATE TABLE [方案名 .]<表名>
(<列名> <数据类型> [列级完整性约束条件]
[,<列名> <数据类型> [列级完整性约束条件]]
[,<表级完整性约束条件>])
下面介绍oracle数据库参数的含义,
CREATE TABLE: SQL命令关键字表示创建一个表。
[方案名.]<表名>:方案名是创建的表所属的方案名称,省略时在当前方案中创建表,<表名>是要创建的表的名称。
<列名><数据类型>[列级完整性约束条件]:一个表由一个或多个列组成,<列名>定义列的名称,<数据类型>则指该列数据采用的数据类型,列级完整性约束条件则定义了该列上的完整性约束条件。
下面介绍ocp认证课程常见的列级完整性约束:
NOT NULL:限制列取值非空。
DEFAULT:给定列的默认值。
UNIQUE:限制列取值不重复。
下面的约束可以用在列级和表。
CHECK:限制列的取值范围。
PRIMARY KEY:指定主码。
<表级完整性约束条件>:定义该表的表一级完整性约束条件。
在创建表的同时可以定义表的完整性约束条件,如果完整性约束条件仅涉及数据恢复单个列,则约束条件既可以定义在列级,也可以定义在表级,如果该约束条件涉及ogg多个列,则约束条件必须定义在表级,以后当用户对表中数据进行操作时,DBMS将自动检查该操作是否违反这些完整性约束条件。
在当前的方案中创建一个学生表,其表结构如图所示,
按照上图的设计,创建学生表Student,goldengate代码如下:
SQL>CREATE TABLE Student /*列级完整性约束条件 */
(Sno CHAR(9) PRIMARY KEY,/*Sname取唯一值*/
Sname CHAR(20) UNIQUE,/*'男',/*默认性别为男*/
*Ssex CHAR(2) DEFAULT
Sage SMALLINT,
Sdept CHAR(20) )
基于已有的表创建新表
在CREATE TABLE 语句中使用子查询(select)就可以基于已有的表创建新表,其基本语法格式如下:
CREATE TABLE [方案名.]<表名>
[<列名>,<列名>...]
[,<表级完整性约束条件>])
AS<子查询>
下面介绍参数的意义。
[方案名.]<表名>:方案名是创建的表所属的方案名称,省略时在当前方案中创建表。<表名>是要创建的表的名称。
<列名>:新表的字段名,可以省略,如果省略,则新表的字段名与查询结果集中包含字段同名。用户可修改在新表中的字段名,但不能修改字段的数据类型和宽度。
<子查询>指子查询的select语句。
创建新的newtest
基于scott方案中的emp表和ename字段创建一新的newtest,包括MySQL编号tno,姓名tname两个字段。雇员表中的序列编号和姓名字段分别来自于scott方案中emp表的empno和ename字段。
SQL>CREATE TABLE newtest(eno,ename)
AS
SELECT empno,ename
from scott.emp;
为了使用方便,可以修改oracle的会话为简体中文,触发器具体代码如下:
ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE。
¥199.00
¥180.00
¥798.00
¥199.00
¥29.90