zoukankan      html  css  js  c++  java
  • Oracle之约束条件1:主键约束

    --建立一张用来存储学生信息的表:字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息
    
    --学号是主键
    --姓名不能为空
    --性别默认值是男
    --年龄范围20---80岁
    --Email唯一
    
    --主键一个表中只能允许存在一个
    drop table student purge;
    create table student(
           sno number(6),
           sname varchar2(15),
           age number(2),
           sex   char(2)  default '',
           enterdate date,
           clazz varchar2(10),
           email varchar2(20),
           constraints PK_STUDENT primary key (sno),--表级别设置主键
           constraints PK_STUDENT1 primary key (email)
    );
    insert into student values (1,'SuperDrew',21,null,sysdate,'1001','XXXXXX@XXXX.XXXX');
    insert into student values (1,'Alia',99,null,sysdate,'1001','XXXXXX@XXXX.XXXX');
    insert into student values (1,'Bob',25,null,sysdate,'1001','XXXXXX@XXXX.XXXX');
    insert into student values (1,null,11,null,sysdate,'1001','XXXXXX@XXXX.XXXX');
    
    --第二种方式设定主键  
    drop table student purge;
    create table student(
           sno number(6) primary key ,--列级别设置主键 简化的操作
           sname varchar2(15),
           age number(2),
           sex   char(2)  default '',
           enterdate date,
           clazz varchar2(10),
           email varchar2(20)
    );
    
    
    --组合式主键
    --组合主键 只有指定的主键的列 数据都一样 才不能写入表中
    drop table student purge;
    create table student(
           sno number(6),
           sname varchar2(15),
           age number(2),
           sex   char(2)  default '',
           enterdate date,
           clazz varchar2(10),
           email varchar2(20),
           constraints PK_STUDENT primary key (sno,sname)--表级别设定主键
    );
    insert into student values (1,'KING',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX');
    insert into student values (3,'Geny',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX');
    insert into student values (2,'Tidy',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX');
    
    
    select * from student;
    
    
    --联合主键只能通过表级别设定,列级别是不能设定联合主键
    drop table student purge;
    create table student(
           sno number(6) primary key,
           sname varchar2(15) primary key,
           age number(2),
           sex   char(2)  default '',
           enterdate date,
           clazz varchar2(10),
           email varchar2(20)
    );
  • 相关阅读:
    Think in java 4th读书笔记__last update20151130
    Angular学习笔记--last_update 20151106
    程序员技术练级攻略(转载)
    缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题(转载)
    简单理解 RPC(转载)
    Redis 为什么使用单进程单线程方式也这么快(转载)
    redis详解(三)-- 面试题(转载)
    redis应用-sortedset实现排行榜(转载)
    LRU原理和Redis实现——一个今日头条的面试题(转载)
    全面理解Java内存模型(JMM)及volatile关键字(转载)
  • 原文地址:https://www.cnblogs.com/superdrew/p/8058204.html
Copyright © 2011-2022 走看看