MySQL笔记之修改表的实现方法
2023-06-13 09:14:52 时间
我们在创建表的过程中难免会考虑不周,因此后期会修改表
修改表需要用到altertable语句
修改表名
mysql>altertablestudentrenameperson;
QueryOK,0rowsaffected(0.03sec)
这里的student是原名,person是修改过后的名字
用rename来重命名,也可以使用renameto
还有一种方法是renametableold_nametonew_name
修改字段的数据类型
mysql>altertablepersonmodifynamevarchar(20);
QueryOK,0rowsaffected(0.18sec)
Records:0 Duplicates:0 Warnings:0
此处modify后面的name为字段名,我们将原来的varchar(25)改为varchar(20)
修改字段名
mysql>altertablepersonchangestu_namenamevarchar(25);
QueryOK,0rowsaffected(0.20sec)
Records:0 Duplicates:0 Warnings:0
这里stu_name是原名,name是新名
需要注意的是不管改不改数据类型,后面的数据类型都要写
如果不修改数据类型只需写成原来的数据类型即可
增加无完整性约束条件的字段
mysql>altertablepersonaddsexboolean;
QueryOK,0rowsaffected(0.21sec)
Records:0 Duplicates:0 Warnings:0
此处的sex后面只跟了数据类型,而没有完整性约束条件
增加有完整性约束条件的字段
mysql>altertablepersonaddageintnotnull;
QueryOK,0rowsaffected(0.17sec)
Records:0 Duplicates:0 Warnings:0
此处增加了一条age字段,接着在后面加上了notnull完整性约束条件
增加额外的完整性约束条件
mysql>ALTERTABLEpersonADDPRIMARYKEY(id);
QueryOK,0rowsaffected(0.18sec)
Records:0 Duplicates:0 Warnings:0
这里同样也用于多字段设置
在表头添加字段
mysql>altertablepersonaddnumintprimarykeyfirst;
QueryOK,0rowsaffected(0.20sec)
Records:0 Duplicates:0 Warnings:0
默认情况下添加字段都是添加到表尾,在添加语句后面加上first就能添加到表头
在指定位置添加字段
mysql>altertablepersonaddbirthdateaftername;
QueryOK,0rowsaffected(0.20sec)
Records:0 Duplicates:0 Warnings:0
这里添加一条新字段放在name字段后面
删除字段
mysql>altertablepersondropsex;
QueryOK,0rowsaffected(0.18sec)
Records:0 Duplicates:0 Warnings:0
和前面删除表或数据库一样,这里也需要用drop
不同的是,删除字段还要用altertable跟着表名
修改字段到第一个位置
mysql>altertablepersonmodifyidintfirst;
QueryOK,0rowsaffected(0.20sec)
Records:0 Duplicates:0 Warnings:0
first在前面已经讲过,此处要注意的是字段后面要写数据类型
修改字段到指定位置
mysql>altertablepersonmodifynamevarchar(25)afterid;
QueryOK,0rowsaffected(0.18sec)
Records:0 Duplicates:0 Warnings:0
我们把name字段放到了id后面,此处的varchar(25)要写全,varchar不行
建议操作以上步骤之前都先desctable
修改表的存储引擎
mysql>altertableuserrenameperson;
QueryOK,0rowsaffected(0.05sec)
这里先不具体讲各个存储引擎的特点,内容比较多
修改完之后别忘了使用showcreatetable语句查看,第三节有写用法
增加表的外键
mysql>altertablescoreaddconstraintfkforeignkey(stu_id)referencesstudent(id);
QueryOK,10rowsaffected(0.18sec)
Records:10 Duplicates:0 Warnings:0
这里只需使用add增加即可,后面的语法参见第四节中的外键设置
删除主键
mysql>ALTERTABLEpersonDROPPRIMARYKEY;
QueryOK,0rowsaffected(0.22sec)
Records:0 Duplicates:0 Warnings:0
由于主键没有别名,所以使用drop会删除所有主键
删除表的外键约束
mysql>altertablestudent3dropforeignkeyfk;
QueryOK,0rowsaffected(0.18sec)
Records:0 Duplicates:0 Warnings:0
由于基本的表结构描述无法显示外键,所以在进行此操作前最好使用showcreatetable查看表
这里的fk就是刚刚设置的外键
需要注意的是:如果想要删除有关联的表,那么必先删除外键
删除外键后,原先的key变成普通键
至于删除表的操作,在第三节有写,设置外键在第四节也有写
如果创建表的时候没有设置外键,可使用上面的方法
相关文章
- 解决MySQL默认编码不符合要求的问题(mysql默认编码设置)
- MySQL横向扩展:极大提升技术实力(mysql横向扩展)
- MySQL如何定义外键(mysql如何定义外键)
- MySQL实现自动生成序号的方法(mysql自动生成序号)
- Mysql注入点在limit关键字后面的利用方法
- MySQL 中继日志:简单介绍和使用方法(mysql中继日志)
- MySQL查询 按时间排序结果(mysql查询按时间排序)
- MySQL索引过长的解决方法:缩短索引长度,使用前缀索引或哈希索引。(mysql索引太长)
- IIS无法连接MySQL数据库:解决方法(iis不支持mysql)
- MySQL如何生成不重复的UUID(mysql 获取uuid)
- MySQL导出数据库遭遇乱码困扰(mysql导出数据库乱码)
- MySQL中SIN函数的使用方法(mysql中sin的用法)
- MySQL中exec函数的作用及使用方法(mysql中exec函数)
- MySQL为你带来更多便利使用C封装了MySQL(c mysql包)
- MySQL查询如何获取两个表的所有结果(mysql 两表所有结果)
- 使用ARM板连接MySQL数据库(arm板连接mysql)
- 警惕MySQL注入攻击,保护你的数据安全(7.mysql注入问题)
- MySQL 修改忘记的密码实现方法(5.5mysql忘记密码)
- MySQL函数商的使用和实现方法(mysql中函数商)
- MySQL数据库的三层访问原理简介(mysql 三层访问)
- MySQL常用命令速查简单易学,轻松入门(mysql一些命令)
- MySQL不兼容问题解决方法(mysql不兼容怎么解决)
- MySQL社区版64位下载指南(mysql下载64位社区)
- Mysql数据库迁移至C盘方法分享(mysql下到c盘了)
- MySQL 数据库无法打开问题的解决方法(mysql不能打开数据库)
- MySQL无法定位(问题错误)的解决方法(mysql不能定位)