• Mysql 数据库之修改标的结构


    比如我们新建一user表

    create table user(

    id int unsigned auto_increment primary key,

    name varchar(60) not null default '',

    password varchar(60) not null default '')engine=innodb charset=utf8;

    新建到如下表结构: desc user;

    对于mysql 中的表结构的修改(增删改),我们需要记住格式

    alter table 表名 操作名称(add/drop/modify/change) [+对应的格式]; // ①

    // 增加列 add column

    需求:在user表中添加用户邮箱 email(在name字段后) / 登录次数 login_count

       创建时间 create_at 在 login_count 之前

    操作:

    alter table user add email varchar(120) not null default '' after name;

    alter table user add login_count int not null default 0;

    alter table user add create_at int(10) not null default 0 before login_count; // 这个是错误的

    alter table user add create_at int(10) not null default 0 after password;// 新增字段只有在某个字段之后,且这个关键字是after,没有before这个关键字

    // 删除列 drop column

    需求:删除login_count列

    操作:

    alter table user drop login_count;

    需求:删除自增长的字段id的主键

    1.修改id:  alter table user change id id int not null;

    只是修改了自增长,但是还是没有删掉主键

    2.删除主键: alter table user drop primary key;

    mysql的主键问题:

    Mysql的两种主键。Primary keynot null auto_incriment 在建立mysql表时,给一个字段添加了主键primary key 在insert数据时可以不用insert主键,mysql会自动添加0,但是在第二次insert时没有填写值mysql数据库还是默认添加0,会导致有重复的主键,这是不可以的。所有在定义了primary key时,在insert数据时要给主键填写值。

    在建立mysql表时,给一个字段添加了主键 not null auto_increment;
    这也是一个主键。时自增长的以1为开始。这个字段是可以不用填写值的,mysql数据库会自动给填写值,不会出现primary key的状况。

    要给没有添加主键自增的id添加主键自增

    alter table tb add primary key(id);
    alter table tb change id id int(10) not null auto_increment;// 而不是 alter table tb change id id int(10) not null auto_increment=1;(这个是错误的)

    经过这里的分析,最好的办法也是一个很好的习惯,我们在创建表的时候就把主键自增设定好。

    // 修改列 modify(修改某列的属性) change(完全修改某列)

    需求:修改 create_at 列的类型为 timestamp 并且默认值是 '0000-00-00 00:00:00';

    操作:

    alter table user modify create_at timestamp not null default '0000-00-00 00:00:00';

    需求:把name列修改为username列

    操作:

    alter table user change name username varchar(60) not null default '';

    // 查询列

    需求:查询user表所有信息 

    操作:desc user;

         show columns from user;

    以上,效果同。

    需求:查看表的创建的代码

    操作:show create table user;

    复习用!

  • 相关阅读:
    cocos2dx3.1从零学习(二)菜单、场景切换、场景传值
    XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
    根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换
    如何学习 cocos2d-x ?
    Java数据类型中String、Integer、int相互间的转换
    Android各种效果集合
    重新生成IE02
    nvl与 is not null的区别等
    自定义view
    select into from 和 insert into select 的用法和区别(转)
  • 原文地址:https://www.cnblogs.com/Zell-Dinch/p/4870760.html
Copyright © 2020-2023  润新知