首页 > 编程知识 正文

oracle数据库建表建在哪里,oracle建表时设置主键

时间:2023-05-05 22:55:58 阅读:47330 作者:2137

OracleCreatetable语法详细信息和示例createtable语法详细信息

有关“创建表”语法的详细信息

1.ORACLE中常用的字段类型

ORACLE中常用的字段类型如下

varchar2(size )可变长度的字符串必须规定长度

char(size )固定长度的字符串,不规定长度的默认值为1

number(p,s )数字类型p是位数的全长,s是小数的长度,可以存储负数

最长38位。 不够的话进行四舍五入。

日期日期和时间类型

LOB超长字符,ldqd达到4G

CLOB长文本字符串

BLOB超长二进制字符串

BFILE的长二进制字符串存储在数据库外的文件中是只读的

数字字段类型的位数及其四舍五入的结果

原始数值1234567.89

数值字段类型的位数存储的值

Number1234567.89

number(8) 12345678

编号(6)错误

number (9,1 ) 1234567.9

编号(9,3 )错误

编号(7,2 )错误

number(5,-2) 1234600

number(5,-4) 1230000

number(*,1 ) 1234567.9

2 .创建表时向字段添加默认值和约束条件

可以在创建表时为字段指定默认值

例如:日期字段默认系统

这样可以在每次插入和修改时节省操作时间,而无需以编程方式处理此字段

可以在创建表时对字段施加约束

例如:null以外NOTNULL

不允许UNIQUE重复

关键字主密钥

按条件检查(条件) )

外键REFERENCES表名(字段名) ) ) )。

3 .表格创建示例

创建表深度(

Eptnonumber(2) CONSTRAINTPK_DEPTPRIMARYKEY,

dnamevarchar2(14 )、

LOCvarchar2(13 );

创建表区域(

idnumber(2) not null主密钥,

postcodenumber(6)默认'0' not null,

areanamevarchar2(30 ) default''NOTNULL );

4 .表格编制时的命名规则和注意事项

1 )表名和字段名命名约定:必须以字母开头,可以包含符号A-Z、A-Z、0-9、_、$、#

2 )不区分大小写

3 )不使用SQL保留字,必须将字符串用双引号括起来。

4 )与实体或属性相关的英语符号长度有一定的限制

注意事项:

1 )做表时可以用中文字段名,但最好用英文字段名

2 )创建表时,将非空的小字段放在前面,可能为空的字段放在后面

3 )如果在创建表时存在唯一的关键字或约束,则在创建表时会自动创建索引

4 )一个表的最大场数也有限制,为254个。

5 .约束名称命名约定和语法

约束名称命名约定如果在创建约束名称表时未指定,则系统命名约定为sys_cn(n为数字)

约束名称字符串的命名规则与表名和字段名的命名规则相同

6 .使用约束时的注意事项

约束条件不能与系统函数(如SYSDATE )和其他表中的字段进行比较

可以比较此表中的字段

我想在事务处理之后进行制约

检查

sqlaltersessionsetconstraintsdeferred。

7 .根据实体关系图创建表的示例s_dept

前提条件:region表已存在且包含唯一关键字的字段id

SQLCREATETABLEs_dept

(id编号(7) )

constraints _ dept _ id _ PK主密钥,

名称varchar2(25 )。

constraints _ dept _ name _ nn not null,

region _ id编号(7) )。

constraints _ dept _ region _ id _ fkreferencesregion (id ),

constraints _ dept _ name _ region_id _ uk unique (name,region _ id );

8 .创建更复杂表格的示例

SQLCREATETABLEs_emp

(id编号(7) )

constraints _ EMP _ id _ PK主密钥,

last_namevarchar2(25 )。

constraints _ EMP _ last _ name _ nn not null,

first_nameVarchar2(25、

用户验证器2 (8)。

constraints _ EMP _ userid _ nn not null

constraints _ EMP _ userid _ uk unique,

start_dateDATEDEFAULTSYSDATE,

commentsVarchar2(25 )、

管理器_ id number (7)、

标题转换器2 (25 )、

dept _ id编号(7) )。

constraints _ EMP _ dept _ id _ fkreferencess _ dept (id ),

销售编号(11,2 )、

commission _ pct number (4,2 ) ) ) ) ) ) ) )。

constraints _ EMP _ commission _ pct _ CK check

(commission _ pct in (10、12.5、15、17.5、20 ) )

8 .通过子查询创建表

通过子查询创建表的示例

SQLCREATETABLEemp_41ASSELECTid,last_name,userid,start_date

FROMs_empWHEREdept_id=41;

sqlcreatetableaaasselect * from b where1=2;

只要钟表的结构。

10 .使用子查询创建表的注意事项

1 )可以关联多个表,也可以使用集合函数生成新表。 请注意,所选字段必须具有有效的字段名,并且不能重复。

2 )以子查询方式创建的表只继承非null约束,不继承其他约束和默认值。

3 )根据需要,可以在altertableaddconstraint……中建立其他约束,如主密钥等。

11.ForeignKey可选参数ONDELETECASCADE

可以在创建ForeignKey时添加可选参数:

删除ONDELETECASCADE外键主表的内容意味着与子表相关的内容将一起删除。

如果没有ONDELETECASCADE参数,则子表包含内容,并且不能删除父表的主要关键字记录。

12 .如果数据库表中存在不满意的记录,则约束的建立不会成功

13 .在表中创建和删除同义词的示例

SQLCREATESYNONYMd_sum

2FORdept_sum_vu;

SQLCREATEPUBLICSYNONYMs_dept

2FORalice.s_dept;

SQLDROPSYNONYMs_dept;

Oracle视频教程寻找Oracle课程写手教育、IT培训专家

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。