一、创建表

主键约束primary key

约束条件,唯一且非空,一个表中只能有一个主键;有多个字段联合作为主键时,合在一起唯一标识记录,叫做联合主键。

外键约束 foreign key

受另外一张表中的主键或唯一键的约束,只能够引用主键或唯一键的值,被引用的表,叫做 parent table(父表),引用方的表叫做child table(子表),要想创建子表,就要先创建父表,记录的插入先父表后子表,删除记录,要先删除子表记录,后删除父表记录,要修改记录,如果要修改父表的记录要保证没有被子表引用。

非空约束 not null

列级约束,在建表时,在数据类型的后面加上 not null ,也就是在插入时不允许插入空值。

唯一约束 unique

允许为空,要求插入的记录中的值是唯一的。

默认值  default

添加表记录时,列没有指定值,则取设置的默认值

条件约束   check

检查约束,可以按照指定条件,检查记录的插入。check中不能使用伪列,不能使用函数,不能引用其他字段。

常用写法

create table Student (

stuid number(6) primary key,--主键

sname varchar2(20) not null,--非空

sex number(1),

age number(3)  check(age>10),--指定条件

birthday date,

city varchar2(50) default '福建',--默认值

email varchar2(25) unique,--唯一

phone number(11),

school number(2) references school(schoolid)--外键

);

带约束名

create table Student (

stuid number(6) constraint stu_pk primary key, --主键

sname varchar2(20) constraint stu_name_not not null,--非空

sex number(1),

age number(3) constraint check_stu_age check (age>10),--指定条件

birthday date,

city varchar2(50) default '福建',--默认值

email varchar2(25) constraint uqe_stu_email unique,--唯一

phone number(11),

school number(2) constraint stu_ref references school(schoolid)--外键

);

列模式

create table Student (

stuid number(6),

sname varchar2(20)  constraint stu_name_not not null,

sex number(1),

age number(3),

birthday date,

city varchar2(50) default '福建',--默认值

email varchar2(25),

phone number(11),

school number(2),

constraint stu_pk primary key (stuid),--主键

constraint stu_ref foreign  key (school) references school(schoolid),--外键

constraint uqe_stu_email unique (email),--唯一

constraint check_stu_age check (age>10)--指定条件

);

联合主键

constraint stu_pk primary key(stuid,sname);

联合外键,限字段是关联表的联合主键

Constraint stu_ref foreign key(stuid,sname) references school(schoolid,sname)

联合唯一值

constraint  uqe_sname_phone unique (sname, phone)

二、快速建表

创建新表并复制旧表结构、数据

create table student1 as select sname,city from student

创建新表只复制旧表结构

create table student1 as select * from student where 1=2;

注.不继承表约束

Oracle 创建表 Create Table...的更多相关文章

  1. 用复制方式创建表 Create Table tbname as select * from user.tab where ...

    用复制方式创建表 Create Table tbname as select * from user.tab where ...

  2. mysql 创建表 create table详解

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  3. Oracle创建表语句(Create table)语法详解及示例

    创建表(Create table)语法详解1. ORACLE常用的字段类型ORACLE常用的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字 ...

  4. Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例

    Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13|  分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...

  5. oracle创建表相关

    --创建表 create table person( id number primary key, name ), birth date ); --创建序列 create sequence perso ...

  6. oracle创建表空间,表及用户

    oracle要创建表要首先创建表空间,当然默认是有表空间的.而mysql创建表时,会自动创建表空间,myisam会自动建三个文 件.MYD,.MYI,.frm.innodb呢,如果没有配置独立表空间的 ...

  7. navicat for oracle 创建表ID字段的自动递增

    Oracle数据库创建表ID字段的自动递增   将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id numbe ...

  8. Oracle创建表、索引、主键、字段描述

    -- 创建表 create table SX04_LBALANCE ( YEAR VARCHAR2(10) not null, PROGRAMNO VARCHAR2(40) not null, FDA ...

  9. Oracle创建表、修改字段类型

    1.创建表 1.创建表 create table SCM_PER( --SCM_PER表名 ID ) primary key,--主键ID USERID ),--用户ID --Permission v ...

随机推荐

  1. springboot RestTemplate httpclient

    RestTemplate是spring支持的一个请求http rest服务的模板对象,性质上有点像jdbcTemplate RestTemplate底层还是使用的httpclient(org.apac ...

  2. DevSecOps 运维模式中的安全性

    本文想从技术的角度谈谈我对云计算数据中心 DevSecOps 运维模式中的安全性的理解,和过去几年我在云服务业务连续性管理方面的探索. 现在公有云服务商都不约而同地转向 DevSecOps 模式.De ...

  3. 深度卷积网络(DCNN)和人类识别物体方法的不同

    加州大学洛杉矶分校在PLOS Computing Biology上发表了一篇文章,分析了深度卷积网络(DCNN)和人类识别物体方法的不同:深度卷积网络(DCNN)是依靠物体的纹理进行识别,而人类是依靠 ...

  4. PyCharm使用Anaconda新建的环境

    首先,创建一个环境用来安装Tensorflow: conda create -n tensorflow python=3.5.6 安装以后,在Anaconda Navigator可以看到已经增加了一个 ...

  5. ORACLE 从一个实例迁移到另外一个实例实战记录

    .schema1到schema2的迁移 Oracle 从一个用户expdp导出再impdp导入到还有一个用户,能够使用REMAP_SCHEMA=user1:user2来实现: 假设想导入的用户已经存在 ...

  6. 人人网框架导入uidGenerator的ID生成方式

    人人网框架导入uidGenerator的ID生成方式 2019-03-11 LIUREN    SpringBoot2.0  uidGenerator  SpringBoot2.0  uidGener ...

  7. lsof详解

    from:https://www.cnblogs.com/the-study-of-linux/p/5501593.html lsof (list open files)是一个列出当前系统打开文件的工 ...

  8. 17.翻译系列:将Fluent API的配置迁移到单独的类中【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/move-configurations-to-seperate-class-in-cod ...

  9. SSM 整合 quartz JDBC方式实现job动态增删改查记录

    虽然网上有很多资料,但是都不够系统,本文记录下自己的整合过程. 1. 搭建一个SSM项目,此处略. 2. 按照quartz官方要求,建立quartz相关的数据库和表,相关sql语句如下: /* Nav ...

  10. 关于asyncio知识(一)

    一.介绍 asyncio 是python3.4 引入的一个新的并发模块,主要通过使用coroutines 和 futures 来让我们更容易的去实现异步的功能,并且几乎和写同步代码一样的写代码,还没有 ...