zoukankan      html  css  js  c++  java
  • MYSQL—— 完整性约束条件中primary key、auto_increment使用总结!

    完整性约束条件主要有:primary key(主键), auto_increment(自增长), poreign key(外键), not null(非空), unique key(唯一), default(默认值)

    一、primary key:

      设置主键的作用:作为一条数据的唯一标识,像每个人的身份证一样。

      1)一般加在无意义的字段上,如 id

      2)标主键字段的要求:值不重复且值具有唯一性。主键不能为空

      3)可以设置“单字段主键”和“多字段主键(复合主键)”,用多个字段确定唯一性

      4)primary书写时可省略

    #设置单字段主键
    create TABLE if not EXISTS student(      
    id int PRIMARY key,   #设置主键
    name varcahr(20)
    )engine=innodb charset = utf8;

    #设置多字段段主键
    create TABLE if not EXISTS timez(
    id int auto_increment,
    atime year,
    card char(18),
    primary key(id,card) #将id与card同时设置为主键,设置后的结构图如下所示:
    )engine=innodb charset = utf8;

    desc timez; #用此3命令查看表结构


           注意点:当设置复合主键时,如设置2个字段为主键,可以允许2个字段中的某一个值可以与其他值重复,但是不可以2个值均重复,插入值进行验证:

    insert into timez values("1",'2000','11111111111111111');
    insert into timez values("1",'2000','11111111111111112'); #均可添加值成功

    二、auto_increment:

      1)通过设置主键进行自增长,默认从1开始,每次+1

      2)一个表中只能有1个自增长字段,而且自增长的字段一定配合主键使用,也就是说“被标识为自增长的字段,一定是主键,但是主键不一定是自增长的”自增长只对整数类、整数列有效,对字符串无意义

    #新建数据库
     create TABLE if not EXISTS timea(
     id int PRIMARY key auto_increment,  #将id设置为主键,并且为自增长
     atime year
    )engine=innodb charset = utf8;

    #向数据库插入值,验证auto_increment
    insert into timea values(1,'2000'); #向timea表中自己给定自增长列的值为1
    insert into timea(atime ) values('2000'); #直接插入atime的值,id自动填充值为2
    insert into timea values(null,'2000'); #用null也可以,id自动填充3
    insert into timea values(default,'2000');
    #用default也可以,id自动填充4


    #已创建的表,修改自增长开始的值
    alter table timea auto_increment=9; #重新设定了自增长的值,则再次插入数据时,id的值为9,依次插入时+1

    #开始创建表时,自定义 自增长开始的值
    create TABLE if not EXISTS timea( id int PRIMARY key auto_increment, #将id设置为主键,并且为自增长 atime year )engine=innodb auto_increment=8 charset = utf8; #创建表时手动设定了自增长的值为8,则插入数据时,id的值不从1开始,而是8,依次插入时+1

            

     

    #向timea表中自己给定自增长列的值为1
  • 相关阅读:
    33、springboot——springboot整合RabbitMQ(1)②
    33、springboot——消息之JMS,AMQP简介①
    32、springboot——缓存之整合Redis
    Redis学习——2、RDB的简单相关配置及测试
    Redis学习——1、CentOS7中安装redis以及一些基本配置
    CentOS7查看及开放端口
    moment
    flex兼容性
    caniuse使用
    混合整数线性规划,图的最大流,图的匹配,求解
  • 原文地址:https://www.cnblogs.com/syw20170419/p/6890304.html
Copyright © 2011-2022 走看看