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培训专家