oracle怎么给表建同义词_Oracle创建表语句(Createtable)
语法详解及⽰例
创建表(Create table)语法详解
1. ORACLE常⽤的字段类型
ORACLE常⽤的字段类型有
VARCHAR2 (size) 可变长度的字符串, 必须规定长度
CHAR(size) 固定长度的字符串, 不规定长度默认值为1
NUMBER(p,s) 数字型p是位数总长度, s是⼩数的长度, 可存负数
最长38位. 不够位时会四舍五⼊.
DATE ⽇期和时间类型
LOB 超长字符, 最⼤可达4G
CLOB 超长⽂本字符串
BLOB 超长⼆进制字符串
BFILE 超长⼆进制字符串, 保存在数据库外的⽂件⾥是只读的.
数字字段类型位数及其四舍五⼊的结果
原始数值1234567.89
数字字段类型位数 存储的值
Number 1234567.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. 创建表时给字段加默认值 和约束条件
创建表时可以给字段加上默认值
例如 : ⽇期字段 DEFAULT SYSDATE
这样每次插⼊和修改时, 不⽤程序操作这个字段都能得到动作的时间
创建表时可以给字段加上约束条件
例如: ⾮空 NOT NULL
不允许重复 UNIQUE
关键字 PRIMARY KEY
按条件检查 CHECK (条件)
外键 REFERENCES 表名(字段名)
3. 创建表的例⼦
CREATE TABLE DEPT(
EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)) ;
CREATE TABLE region(
ID number(2) NOT NULL PRIMARY KEY,
postcode number(6) default '0' NOT NULL,
areaname varchar2(30) default ' ' NOT NULL);
4. 创建表时的命名规则和注意事项
1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#
2)⼤⼩写不区分
3)不⽤SQL⾥的保留字, ⼀定要⽤时可⽤双引号把字符串括起来.
4)⽤和实体或属性相关的英⽂符号长度有⼀定的限制
注意事项:
1)建表时可以⽤中⽂的字段名, 但最好还是⽤英⽂的字段名
2)创建表时要把较⼩的不为空的字段放在前⾯, 可能为空的字段放在后⾯
3)建表时如果有唯⼀关键字或者唯⼀的约束条件,建表时⾃动建了索引
4)⼀个表的最多字段个数也是有限制的,254个.
5. 约束名的命名规则和语法
约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字)约束名字符串的命名规则同于表和字段名的命名规则6. 使⽤约束时的注意事项
约束⾥不能⽤系统函数,如SYSDATE和别的表的字段⽐较
可以⽤本表内字段的⽐较
想在事务处理后, 做约束的
检查
SQL> alter session set constraints deferred.
7. 由实体关系图到创建表的例⼦ s_dept
前提条件:已有region表且含唯⼀关键字的字段id
SQL> CREATE TABLE s_dept
(id NUMBER(7)
CONSTRAINT s_dept_id_pk PRIMARY KEY,
name VARCHAR2(25)
CONSTRAINT s_dept_name_nn NOT NULL,
region_id NUMBER(7)
CONSTRAINT s_dept_region_id_fk REFERENCES region (id),
CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id));
8. 较复杂的创建表例⼦
SQL> CREATE TABLE s_emp
(id NUMBER(7)
CONSTRAINT s_emp_id_pk PRIMARY KEY,
last_name VARCHAR2(25)
CONSTRAINT s_emp_last_name_nn NOT NULL,
first_name VARCHAR2(25),
userid VARCHAR2(8)
CONSTRAINT s_emp_userid_nn NOT NULL
CONSTRAINT s_emp_userid_uk UNIQUE,
start_date DATE DEFAULT SYSDATE,
comments VARCHAR2(25),
manager_id NUMBER(7),
title VARCHAR2(25),
dept_id NUMBER(7)
CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),
salary NUMBER(11,2),
commission_pct NUMBER(4,2)
CONSTRAINT s_emp_commission_pct_ck CHECK
(commission_pct IN(10,12.5,15,17.5,20)));
8. 通过⼦查询建表
通过⼦查询建表的例⼦
SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date
FROM s_emp WHERE dept_id = 41;
SQL> CREATE TABLE A as select * from B where 1=2;
只要表的结构.
10. ⽤⼦查询建表的注意事项
1)可以关连多个表及⽤集合函数⽣成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。
2)⽤⼦查询⽅式建⽴的表,只有⾮空NOT NULL的约束条件能继承过来, 其它的约束条件和默认值都没有继承过来.
3)根据需要,可以⽤alter table add constraint ……再建⽴其它的约束条件,如primary key等.
11. Foreign Key的可选参数ON DELETE CASCADE
在创建Foreign Key时可以加可选参数:
ON DELETE CASCADE它的含义是如果删除外键主表⾥的内容,⼦表⾥相关的内容将⼀起被删除.
如果没有ON DELETE CASCADE参数,⼦表⾥有内容,⽗表⾥的主关键字记录不能被删除掉.
12. 如果数据库表⾥有不满⾜的记录存在,建⽴约束条件将不会成功.
13. 给表创建和删除同义词的例⼦
SQL> CREATE SYNONYM d_sum
2 FOR dept_sum_vu;
SQL> CREATE PUBLIC SYNONYM s_dept
2 FOR alice.s_dept;
SQL> DROP SYNONYM s_dept;
Oracle创建表语句(Create table)语法详解及⽰例、、 C# 调⽤Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及⽰例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
MySQL create table语法详解
mysql create table 语法详解
create table 可以分成三类 ⼀.⼀般create table 语句: 1 语法 create [temporary] table [if not exists] tbl_name (cre ...
mysql create dabase 语法详解
由于SQL标准的存在,各个关系型数据库管理系统中创建库的语句都差不多 ⼀.mysql 中创建数据库的语法如下: 1.创建数据库的语法: create {database | schema } [if ...
[转载]oracle建表语句⼤全
oracle partition table 分区表详解
Oracle partition table 分区表详解 分区表就是通过使⽤分区技术,将⼀张⼤表,拆分成多个表分区(独⽴的segment),从⽽提升数据访问的性能,以及⽇常的可维护性.分区表中,每个分 ...
抓取oracle建表语句及获取建表ddl语句
抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产⽣表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):=
'&2'; -- ...
mysql和oracle建表语句以及数据类型的区别
Hive笔记--sql语法详解及JavaAPI
随机推荐
CSS布局设计
CSS布局设计: (1)固定布局:各个部分采⽤固定宽度的页⾯布局. (2)流式布局:通过定义模块和模块间距的百分⽐的⽅式来实现.缺点是会⾃动缩放,影响图⽚的美观. (3)响应式布局:页⾯可以⽤户的设备 ...
MySql数据库乱码解决⽅法
MySql数据库乱码解决⽅法 解决乱码问题⼀个原则:存取系统使⽤⼀致的编码规则. 多使⽤mysql的原⽣命令⾏,这样才能做更多的事情. 第⼀步: 确认应⽤系统需要使⽤的编码 java的默认编码是跟 ...
《OD⼤数据实战》Hadoop伪分布式环境搭建
⼀.安装并配置Linux 8. 使⽤当前root⽤户创建⽂件夹,并给/opt/下的所有⽂件夹及⽂件赋予775权限,修改⽤户组为当前⽤户 mkdir -p
/opt/modules mkdir -p / ...
LRESULT与wParam和lParam的问题
在微软vc提供的头⽂件中有定义在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT; 所以LRESULT就是long,也就是长整形之所以取 ...
⼀些常⽤sqlite语句
1,如果表不存在就新建⼀个 CComBSTR bstrCreatBat(L”CREATE TABLE IF NOT EXISTS tb_Name (\ rowIdIndex INTEGER PRIM ...
c#利⽤VM_COPYDATA实现进程间通信
c#进程间的通信⽅式很多种,只会这种,感觉⽐较简单.不懂原理,能⽤就⾏. 假设有两个程序:server(主进程),client(⼦进程) 1.server端: /*定义⼀个结构体,⽤来接收从⼦进程传过 ...
Ruby学习: 全局变量 和常量
⼀.全局变量 ruby中⽀持全局变量,ruby中的全局变量有如下⼏个特点: 1)标识符以$开头标记 2)全局变量可以在程序的任何地⽅加以引⽤3)全局变量⽆需提前进⾏变量声明.引⽤尚未初始化的全局变量 ...
SharePoint 2010 BCS - 概要
CSS控制之IE常见BUG及解决⽅案
常见bug 解决⽅案 盒模型bug 使⽤严格doctype声明 双倍margin bug _display:inline; 不认识a:link 不加:link 3像素margin bug 规范浮动与清 ...
Python爬⾍——request实例:爬取⽹易云⾳乐华语男歌⼿top10歌曲
>mysql创建表数据类型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论