zoukankan      html  css  js  c++  java
  • 【oracle笔记2】约束

     约束

      *约束是添加在列上的,用来约束列的。

    1. 主键约束(唯一标识)

       ***非空***

       ***唯一***

       ***被引用***(外键时引用主键)

       

      *当表的某一列被指定为主键后,该列就不能为空,不能有重复的出现。

      *创建表时指定主键的两种方式:

      >

      create table stu(

        sid      char(6) primary key,

        sname     varchar(20),

        age          int,

        gender          varchar(10)

    );

      指定sid列为主键列,即为sid列添加主键约束。

      >

      create table stu(

        sid      char(6),

        sname    varchar(20),

        age         int,

        gender    varchar(10),

        primary key (sid)

    );

      指定sid列为主键列,即为sid列添加主键约束。

      *修改表时指定主键:alter table stu add constraint 主键名 primary key(sid);

      *这里回忆一下学过的修改操作。前缀都是alter table 表名 :

        add --->添加列

        modify 列名 新列类型-->修改列类型

        rename column 旧列名 to 新列名-->修改列名

        drop column 列名--->删除列

        rename to 新表名--->修改表名

      *删除主键:alter table stu drop primary key;删除主键的时候,不用指定列名 ,因为主键的唯一性。

    2.主键自增长

      *因为主键的特性是:必须唯一、不能为空。所以我们通常会指定主键类为整数型,然后设置其自增长,这样可以保证在插入数据时主键列的唯一和非空特性。

      oracle并没有mysql那样可以设置自增主键,需要自己创建序列才能实现自增。

      这是从网上看来的一个例子:

    /*创建自增序列*/
    CREATE SEQUENCE CMB_CHINA_CITYS_ID
    MINVALUE 1       --最小值
    NOMAXVALUE       --不设置最大值
    START WITH 1     --从1开始计数
    INCREMENT BY 1   --每次加1
    NOCYCLE          --一直累加,不循环
    NOCACHE;         --不建缓冲区


    说明:CMB_CHINA_CITYS_ID:列名

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      以下是mysql设置主键自增的机制

      *创建表时指定主键自增长:

        create table stu(

          sid     int primary key auto_increment,

          sname   varchar(20),

          age    int,

          gender    varchar(10)

    );

      *修改表时设置主键自增长:alter table stu change sid sid int auto_increment;

      *修改表时删除主键自增长:alter table stu change sid sid int;

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    3.非空约束

      *因为某些列不能设置Null值,所以可以对列添加非空约束。

      *例如:

        

    create table stu(

          sid     int primary key,

          sname    varchar(20)not null,

          age    int,

          gender    varchar(10)

    );对sname设置了非空约束。

    4.唯一约束

      *数据库某些列不能设置重复的值,所以可以对列添加唯一约束。

      *例如:

          

    create table stu(

          sid     int primary key,

          sname    varchar(20)not null unique,

          age    int,

          gender    varchar(10)

    );对sname设置了非空约束。

      https://blog.csdn.net/jssg_tzw/article/details/40981393这篇文章对唯一性约束讲的很清楚。

    补充:(Duplicate重复,数据库报错时查的单词,原因是主键的唯一性,不可添加重复的数据。)

  • 相关阅读:
    vb中5种打开文件夹浏览框的方法总结(转)
    js 日期
    正则表达式
    HTML中meta的作用
    Java操作ElasticSearch
    Elastic安装
    Elasticsearch基本操作
    ubootfs2410移植(转)
    内核驱动系列字符设备驱动流程
    linux 内核移植
  • 原文地址:https://www.cnblogs.com/shaokai7878/p/9392427.html
Copyright © 2011-2022 走看看