oracle建表的方法,oracle建表语句

oracle建表的方法,oracle建表语句Oracle 创建表语句 Createtable 语法详解及示例创建表 Createtable 语法详解创建表 Createtable 语法详解 1 ORACLE 常用的字段类型 ORACLE 常用的字段类型有 VARCHAR2 size 可变长度的字符串 必须规定长度 CHAR size 固定长度的字符串 不规定长度默认值为 NUMBER p s 数字型 p 是位数总长度 s 是小数的长度 可存负数最长 38 位 不够

Oracle创建表语句(Createtable)语法详解及示例创建表(Createtable)语法详解

创建表(Createtable)语法详解

1.ORACLE常用的字段类型

ORACLE常用的字段类型有

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

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

NUMBER(p,s)数字型p是位数总长度,s是小数的长度,可存负数

最长38位.不够位时会四舍五入.

DATE日期和时间类型

LOB超长字符,最大可达4G

CLOB超长文本字符串

BLOB超长二进制字符串

BFILE超长二进制字符串,保存在数据库外的文件里是只读的.

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

原始数值.89

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

Number.89

Number(8)

Number(6)错

Number(9,1).9

Number(9,3)错

Number(7,2)错

Number(5,-2)

Number(5,-4)

Number(*,1).9

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

创建表时可以给字段加上默认值

例如:日期字段DEFAULTSYSDATE

这样每次插入和修改时,不用程序操作这个字段都能得到动作的时间

创建表时可以给字段加上约束条件

例如:非空NOTNULL

不允许重复UNIQUE

关键字PRIMARYKEY

按条件检查CHECK(条件)

外键REFERENCES表名(字段名)

3.创建表的例子

CREATETABLEDEPT(

EPTNONUMBER(2)CONSTRAINTPK_DEPTPRIMARYKEY,

DNAMEVARCHAR2(14),

LOCVARCHAR2(13));

CREATETABLEregion(

IDnumber(2)NOTNULLPRIMARYKEY,

postcodenumber(6)default’0’NOTNULL,

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和别的表的字段比较

可以用本表内字段的比较

想在事务处理后,做约束的

检查

SQL>altersessionsetconstraintsdeferred.

7.由实体关系图到创建表的例子s_dept

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

SQL>CREATETABLEs_dept

(idNUMBER(7)

CONSTRAINTs_dept_id_pkPRIMARYKEY,

nameVARCHAR2(25)

CONSTRAINTs_dept_name_nnNOTNULL,

region_idNUMBER(7)

CONSTRAINTs_dept_region_id_fkREFERENCESregion(id),

CONSTRAINTs_dept_name_region_id_ukUNIQUE(name,region_id));

8.较复杂的创建表例子

SQL>CREATETABLEs_emp

(idNUMBER(7)

CONSTRAINTs_emp_id_pkPRIMARYKEY,

last_nameVARCHAR2(25)

CONSTRAINTs_emp_last_name_nnNOTNULL,

first_nameVARCHAR2(25),

useridVARCHAR2(8)

CONSTRAINTs_emp_userid_nnNOTNULL

CONSTRAINTs_emp_userid_ukUNIQUE,

start_dateDATEDEFAULTSYSDATE,

commentsVARCHAR2(25),

manager_idNUMBER(7),

titleVARCHAR2(25),

dept_idNUMBER(7)

CONSTRAINTs_emp_dept_id_fkREFERENCESs_dept(id),

salaryNUMBER(11,2),

commission_pctNUMBER(4,2)

CONSTRAINTs_emp_commission_pct_ckCHECK

(commission_pctIN(10,12.5,15,17.5,20)));

8.通过子查询建表

通过子查询建表的例子

SQL>CREATETABLEemp_41ASSELECTid,last_name,userid,start_date

FROMs_empWHEREdept_id=41;

SQL>CREATETABLEAasselect*fromBwhere1=2;

只要表的结构.

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

1)可以关连多个表及用集合函数生成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。

2)用子查询方式建立的表,只有非空NOTNULL的约束条件能继承过来,其它的约束条件和默认值都没有继承过来.

3)根据需要,可以用altertableaddconstraint……再建立其它的约束条件,如primarykey等.

11.ForeignKey的可选参数ONDELETECASCADE

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

ONDELETECASCADE它的含义是如果删除外键主表里的内容,子表里相关的内容将一起被删除.

如果没有ONDELETECASCADE参数,子表里有内容,父表里的主关键字记录不能被删除掉.

12.如果数据库表里有不满足的记录存在,建立约束条件将不会成功.

13.给表创建和删除同义词的例子

SQL>CREATESYNONYMd_sum

2FORdept_sum_vu;

SQL>CREATEPUBLICSYNONYMs_dept

2FORalice.s_dept;

SQL>DROPSYNONYMs_dept;

找Oracle视频教程学oracle上课课家教育,IT培训专家

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202100.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:53
下一篇 2026年3月20日 上午7:54


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号