oracle建表语句

    作者:课课家教育更新于: 2019-04-04 20:17:43

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

      创建表(Createtable)语法详解

      1.ORACLE常用的字段类型

      ORACLE常用的字段类型有

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

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

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

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

      DATE日期和时间类型

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

      CLOB超长文本字符串

      BLOB超长二进制字符串

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

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

      原始数值1234567.89

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

      Number1234567.89

      Number(8)12345678

      Number(6)错

      Number(9,1)1234567.9

      Number(9,3)错

      Number(7,2)错

      Number(5,-2)1234600

      Number(5,-4)1230000

      Number(*,1)1234567.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培训专家

课课家教育

未登录