zoukankan      html  css  js  c++  java
  • 133标识列

    #标识列
    /*
    又称为自增长列
    含义:可以不用手动的插入值,系统提供默认的序列值
    
    
    好处:不用我们自己插入值,也不用关心值是否重复的问题。因为它肯定不重复。它默认的起始值是1
    
    特点:
    1、标识列必须和主键搭配吗?不一定,但要求是一个key
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  AUTO_INCREMENT,
        NAME varchar(20)    #unique--唯一键,也是一个key
        
    );
    图1
    2、一个表可以有几个标识列?至多一个!
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  AUTO_INCREMENT,
        NAME varchar(20),    
        seat INT UNIQUE AUTO_INCREMENT
        
    );
    图2
    3、标识列的类型只能是数值型(int,float,double...),只不过一般是int
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT, 
        NAME varchar(20) AUTO_INCREMENT,    
        seat INT 
        
    );    
    图3
    4、标识列可以通过 SET auto_increment_increment=3;设置步长
    可以通过 手动插入值,设置起始值
    
    
    */
    
    #一、创建表时设置标识列
    
        
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  PRIMARY KEY AUTO_INCREMENT,
        NAME FLOAT UNIQUE AUTO_INCREMENT,
        
    );
    TRUNCATE TABLE tab_identity;
    
    INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');    #为了保证值与字段数一致,需要插入null
    INSERT INTO tab_identity(NAME) VALUES('lucy');
    SELECT * FROM tab_identity;
    
    
    SHOW VARIABLES LIKE '%auto_increment%';
    auto_increment_increment #步长,每次增长的值。默认每次增长1
    auto_increment_increment #偏移量,默认是1.即:起始值是1.不能被修改(其实也可以被修改,例如下),设置成其他值也没有效果,默认还是1
    
    例:
    TRUNCATE TABLE tab_identity;
    
    INSERT INTO tab_identity(id,NAME) VALUES(10,'john');    #相当于把起始值(id)修改为了10
    INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');    #id=11
    
    
    
    SET auto_increment_increment=3;    #(1,4,7,10,13,16,...),一旦修改了代表当前连接下的所有值都被修改了
    
    
    #二、修改表时设置标识符
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT,
        NAME float,    
        seat INT
        
    );
    alter table tab_identity modify column id int primary key AUTO_INCREMENT;
    
    #三、修改表时删除标识列
    
    alter table tab_identity modify column id int PRIMARY KEY;
  • 相关阅读:
    使用序列化实现对象的拷贝
    SQL连接查询深度探险
    关于ArrayList和Vector区别
    list_arrayList三种遍历性能比较
    Java过滤器与SpringMVC拦截器之间的关系与区别
    遍历map 哪种方式更加高效。
    Http请求中Content-Type讲解以及在Spring MVC中的应用
    sql语句练习50题
    在js中初始化select数据
    java浮点数剖析
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10624144.html
Copyright © 2011-2022 走看看