oracle建表的方法,oracle建表语句
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建表语句相关推荐
- mysql创建关联表的方法_MySQL多表创建关联及操作
外键 现在有两张表"分类表"和"商品表",为了表明商品属于哪个 类别,通常情况下,我们将在商品上添加一列,用来存放分类的cid信息,此列成为外键. 此时,分类表 ...
- oracle 字段加密解密方法,oracle 字段加密解密方法
要用到DECRYPT方法对数据解密和ENCRYPT方法加密 1.首先通过sys用户登录到oracle数据库,因为我们要通过这个用户来设置一些高级权限 grant execute on DBMS_cry ...
- oracle使用impdp导入方法,oracle expdp导出和impdp导入使用方法
本篇介绍一下oracle expdp导出.impdp导入的使用方法 准备工做 oracle中的expdp导出.impdp导入的使用以前,都得先完成如下三个步骤linux 第一步 以管理员身份,建立逻辑 ...
- oracle 安装及使用方法,Oracle安装及使用小结
1.如果安装错误,重装那么需要这么几步 1)regedit进入注册表删除ctrl+f搜索oracle,F3继续搜索,把每一次搜到的关于orcale的都删掉,注意关于microsoft的oracle不用 ...
- oracle中删除级联方法,Oracle 外键级联删除
Oracle 外键级联删除 日期:2010年5月22日 作者: 近来软件系统中要删除一条记载,就要关联到同时删除好多张表,它们之间还存在着约束联络.所以思索到在树立表时加上约束联络,细致内容如下: S ...
- 原生php多表查询方法,ThinkPHP多表联合查询的常用方法
ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 1.原生查询示例: 代码如下: firstRow.','.$p->listRow ...
- 关闭oracle的几种方法,Oracle数据库的几种启动和关闭方式 | 旺旺知识库
有以下几种启动方式: 1.startup nomount 非安装启动,这种方式启动下可执行:重建控制文件.重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只 ...
- oracle+快速客户端安装方法,ORACLE简易客户端安装与使用方法
(1)对windows机器: #将Oracle installclient压缩包拷贝到D:/oracle,并选择解压至当前目录(或其他目录,记得更改相应的环境变量即可) #设置环境 ...
- oracle字符串转in方法,Oracle 逗号分割的字符串转换为可放入in的语句
一.简介 最近在工作中,同事遇到一个问题,就是前台搜索条件传递过来 "2018级3年制,2018级4年制,..."这种用逗号分隔的字符串,然后后台他想使用not in来过滤数据.于 ...
- oracle 自定义类型使用方法,oracle pl/sql中使用自定义数据类型
模式: CREATE OR REPLACE TYPE 类型名 as OBJECT (属性名 属性类型,...); 举例: CREATE OR REPLACE TYPE BITS_IDX_BASE AS ...
最新文章
- seaborn箱图(box plot)可视化、并且使用matplotlib的meanprops函数在箱图中自定义均值标签、标签形状、标签大小、标签填充色彩、标签边缘颜色
- 关于IC工程师的VIM实际工作技巧
- QML的import目录爬坑记录
- codeforces1440 E. Greedy Shopping
- Apache Maven 3.0.3 (yum) 安裝 (CentOS 6.4 x64)
- 手写一个promise用法_手写一个Promise
- oracle 10g 扩表空间,Oracle 10g 表空间管理(一)
- 卸载网易邮箱大师邮件从服务器删除,如何卸载网易邮箱大师 网易邮箱大师卸载教程...
- 软件结构体系与设计模式--1.软件设计模式概述
- 京东,想说爱你,并不容易!
- win10右键一直卡死解决记录
- 【微机原理与接口技术】之一微型计算机系统概述
- CRM如何进行客户关系管理
- 递归、分治算法刷题笔记
- 64位字长的高性能微型计算机,计算机中的字长
- 盘点那些有逼格的网站
- 人工解决问题和用计算机解决问题的相同点,2计算机解决问题的过程.docx
- pythoncharm怎么保存_pycharm软件实现设置自动保存操作
- 直播技术——Rtmp协议
- python打造记账本,记账本-简单的python脚本
热门文章
- 本地编译AndroidX源码
- 计算机网络原理(谢希仁第八版)第一章课后习题答案
- 偷窥Selenium4 0带有网芯的相对定位器3 1
- 破解软件试用版到期问题通用办法
- 在scrapy爬虫框架xpath中extract()方法的使用
- web漏洞扫描器原理_「网络安全」安全设备篇(11)——漏洞扫描器
- php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
- 初学java socket编程实例代码讲解
- 【封包技巧】利用wpe来(判断是否是某个特征码封包字节,然后进程修改)
- 计算机交流会活动流程,新老生交流会活动方案