博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 数据库之修改标的结构
阅读量:5019 次
发布时间:2019-06-12

本文共 1970 字,大约阅读时间需要 6 分钟。

比如我们新建一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;

 

复习用!

转载于:https://www.cnblogs.com/Zell-Dinch/p/4870760.html

你可能感兴趣的文章
实现Checkbox的互斥选中
查看>>
cv2980(LCS)
查看>>
找相同字符串(非AC代码,luogu上第一个点过不了TAT)
查看>>
Java复习之-事物的处理
查看>>
C#委托-小结
查看>>
C#泛型-使用泛型List<T>
查看>>
JavaAes加密操作工具类
查看>>
Android开发之隐藏Activity(活动)的标题
查看>>
CentOS安装
查看>>
对原来的模块修改后,最好在解释器里把修改好的代码重新写再粘贴到py文件里,否则F5运行py模块时,总是出错误,如缩进不对 如for语句没写冒号 就导致cmd sdist和install 出错...
查看>>
设计模式(十六)责任链模式(行为型)
查看>>
Logstash,Fluentd, Logtail对比伤害
查看>>
java数组的声明由几种方式
查看>>
JDK和Tomcat部署时,版本不同的问题解决
查看>>
Imageloader、Glide、Fresco的性能及加载速度比较
查看>>
在Linux下编写php扩展
查看>>
唯一域 表示添加域时候必填
查看>>
JDK8日期时间库 例子
查看>>
懒人必备的移动端定宽网页适配方案
查看>>
(转)Android 、BlackBerry 文本对齐方式对比
查看>>