• Oracle 创建表 Create Table...


    一、创建表

    主键约束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;

    注.不继承表约束

  • 相关阅读:
    [Swift]LeetCode374. 猜数字大小 | Guess Number Higher or Lower
    [Swift]LeetCode371. 两整数之和 | Sum of Two Integers
    [Swift]LeetCode367. 有效的完全平方数 | Valid Perfect Square
    [Swift]LeetCode350. 两个数组的交集 II | Intersection of Two Arrays II
    [Swift]LeetCode349. 两个数组的交集 | Intersection of Two Arrays
    [Swift实际操作]七、常见概念-(9)使用定时组件Timer执行定时任务
    [Swift实际操作]七、常见概念-(8)日历Calendar和时区TimerZone
    浅谈广告交易系统
    浅谈广告交易系统
    6种排序算法的简洁实现:冒泡、选择、插入、归并、快速、堆
  • 原文地址:https://www.cnblogs.com/walkwithmonth/p/6306003.html
Copyright © 2020-2023  润新知