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

oracle建表的方法,oracle建表语句相关推荐

  1. mysql创建关联表的方法_MySQL多表创建关联及操作

    外键 现在有两张表"分类表"和"商品表",为了表明商品属于哪个 类别,通常情况下,我们将在商品上添加一列,用来存放分类的cid信息,此列成为外键. 此时,分类表 ...

  2. oracle 字段加密解密方法,oracle 字段加密解密方法

    要用到DECRYPT方法对数据解密和ENCRYPT方法加密 1.首先通过sys用户登录到oracle数据库,因为我们要通过这个用户来设置一些高级权限 grant execute on DBMS_cry ...

  3. oracle使用impdp导入方法,oracle expdp导出和impdp导入使用方法

    本篇介绍一下oracle expdp导出.impdp导入的使用方法 准备工做 oracle中的expdp导出.impdp导入的使用以前,都得先完成如下三个步骤linux 第一步 以管理员身份,建立逻辑 ...

  4. oracle 安装及使用方法,Oracle安装及使用小结

    1.如果安装错误,重装那么需要这么几步 1)regedit进入注册表删除ctrl+f搜索oracle,F3继续搜索,把每一次搜到的关于orcale的都删掉,注意关于microsoft的oracle不用 ...

  5. oracle中删除级联方法,Oracle 外键级联删除

    Oracle 外键级联删除 日期:2010年5月22日 作者: 近来软件系统中要删除一条记载,就要关联到同时删除好多张表,它们之间还存在着约束联络.所以思索到在树立表时加上约束联络,细致内容如下: S ...

  6. 原生php多表查询方法,ThinkPHP多表联合查询的常用方法

    ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 1.原生查询示例: 代码如下: firstRow.','.$p->listRow ...

  7. 关闭oracle的几种方法,Oracle数据库的几种启动和关闭方式 | 旺旺知识库

    有以下几种启动方式: 1.startup nomount 非安装启动,这种方式启动下可执行:重建控制文件.重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只 ...

  8. oracle+快速客户端安装方法,ORACLE简易客户端安装与使用方法

    (1)对windows机器:      #将Oracle installclient压缩包拷贝到D:/oracle,并选择解压至当前目录(或其他目录,记得更改相应的环境变量即可)      #设置环境 ...

  9. oracle字符串转in方法,Oracle 逗号分割的字符串转换为可放入in的语句

    一.简介 最近在工作中,同事遇到一个问题,就是前台搜索条件传递过来 "2018级3年制,2018级4年制,..."这种用逗号分隔的字符串,然后后台他想使用not in来过滤数据.于 ...

  10. oracle 自定义类型使用方法,oracle pl/sql中使用自定义数据类型

    模式: CREATE OR REPLACE TYPE 类型名 as OBJECT (属性名 属性类型,...); 举例: CREATE OR REPLACE TYPE BITS_IDX_BASE AS ...

最新文章

  1. seaborn箱图(box plot)可视化、并且使用matplotlib的meanprops函数在箱图中自定义均值标签、标签形状、标签大小、标签填充色彩、标签边缘颜色
  2. 关于IC工程师的VIM实际工作技巧
  3. QML的import目录爬坑记录
  4. codeforces1440 E. Greedy Shopping
  5. Apache Maven 3.0.3 (yum) 安裝 (CentOS 6.4 x64)
  6. 手写一个promise用法_手写一个Promise
  7. oracle 10g 扩表空间,Oracle 10g 表空间管理(一)
  8. 卸载网易邮箱大师邮件从服务器删除,如何卸载网易邮箱大师 网易邮箱大师卸载教程...
  9. 软件结构体系与设计模式--1.软件设计模式概述
  10. 京东,想说爱你,并不容易!
  11. win10右键一直卡死解决记录
  12. 【微机原理与接口技术】之一微型计算机系统概述
  13. CRM如何进行客户关系管理
  14. 递归、分治算法刷题笔记
  15. 64位字长的高性能微型计算机,计算机中的字长
  16. 盘点那些有逼格的网站
  17. 人工解决问题和用计算机解决问题的相同点,2计算机解决问题的过程.docx
  18. pythoncharm怎么保存_pycharm软件实现设置自动保存操作
  19. 直播技术——Rtmp协议
  20. python打造记账本,记账本-简单的python脚本

热门文章

  1. 本地编译AndroidX源码
  2. 计算机网络原理(谢希仁第八版)第一章课后习题答案
  3. 偷窥Selenium4 0带有网芯的相对定位器3 1
  4. 破解软件试用版到期问题通用办法
  5. 在scrapy爬虫框架xpath中extract()方法的使用
  6. web漏洞扫描器原理_「网络安全」安全设备篇(11)——漏洞扫描器
  7. php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
  8. 初学java socket编程实例代码讲解
  9. 【封包技巧】利用wpe来(判断是否是某个特征码封包字节,然后进程修改)
  10. 计算机交流会活动流程,新老生交流会活动方案