mysql数据库基本增删改查(MySQL数据库教程-修改数据表结构与删除表)
修改数据表结构与删除表
数据表一旦定义好之后,一般不需要再去修改数据表结构,尤其是已经存储大量数据之后。表结构的变化尤其一些约束的改变会直接影响到存储数据本身。但在一些条件下也是可以修改数据表结构的,如刚定义好的新表,本节主要介绍数据表结构的修改语法及实例。
修改表的字段
修改表的字段主要类型包括删除字段、添加新字段、修改字段名称、修改字段类型四种操作类型。我们以上一篇文章创建的数据表为例对修改表字段进行说明。上节课我们创建了学生信息表与班级信息表,结构描述如下:
学生信息表结构描述
班级信息表结构描述
1、删除字段
删除字段操作主要从数据表中删除某一个字段,删除字段语法描述如下:
删除数据表字段
其中alter table与drop语法关键字,所需提供参数为待删除数据表名字与待删除字段名,如我们要从学生信息表中删除学生性别stusex字段,实现代码如下:
alter table studentinfor drop stuSex;
执行结果如下:
删除结果
2、添加新字段
添加新字段也是数据表结构修改的常用操作之一,在添加新字段时需要给出字段名称、类型及添加位置。添加新字段语法描述如下:
添加新字段语法
在语法中方括号部分表示可以省略,针对我们刚才操作的学生信息表,我们删除性别字段后,再可以通过添加新字段实现性别字段的添加。实现代码如下:
ALTER TABLE studentinfor ADD stuSex VARCHAR(1) NOT NULL AFTER stuBirth
我们在studentinfor表中stuBirth字段之后新增了一个stuSex字段,并定义了字段类型与非空约束。
3、修改字段名称与类型
该命令可以同时修改字段名称与数据类型,基本语法描述如下:
修改字段名称、类型
命令使用语法关键字ALTER table 和 change实现字段名称与类型的修改,如学生信息表中,我们需要修改学生生日stuBirth字段为年龄,数据类型从varchar改为int。实现代码描述如下:
ALTER TABLE studentinfor CHANGE stuBirth stuAge INT
4、修改字段数据类型
该命令只用于实现字段数据类型修改,命令语法描述如下:
修改字段数据类型命令
该命令使用alter table与modify关键字实现字段数据类型修改,针对学生信息表,我们可以将家庭住址stuHome字段由varchar(25) 改为char(50),实现代码描述如下:
ALTER TABLE studentinfor MODIFY stuHome CHAR(50)
修改约束条件
表的约束条件修改主要包括删除约束条件与添加约束条件等操作。添加约束时需要考虑表中对应字段存储的值是否符合约束要求。如果不符合在添加约束时可能会出错。
1、添加约束
添加约束需要指明对应的字段,约束名及约束类型,添加约束命令描述如下:
添加约束命令
添加约束命令如上图所示,如针对学生信息表,我们需要对家庭住址字段设置唯一约束,则可通过添加约束命令实现。代码如下:
ALTER TABLE studentinfor ADD CONSTRAINT home_unqiue UNIQUE(stuHome)
需要注意一个问题如果要对某一字段添加默认值约束,则需要使用以下语法:
ALTER TABLE 表明
ALTER 字段名 SET DEFAULT '默认值'
如我们需要对家庭住址字段设置默认值山东济南,则可使用以下命令:
ALTER TABLE studentinfor
ALTER stuHome SET DEFAULT '山东济南'
2、删除约束
删除约束时需要针对不同约束类型单独编写删除命令实现删除,删除命令语法描述如下:
删除约束
删除约束命令如上图所示,分别用于实现主键删除、外键删除、唯一删除 与默认值删除。实例不再一一说明。
3、修改数据表名字
该命令主要用于实现数据表名字修改,语法如下:
修改数据表名字
我们可以使用两种方法实现数据表名字修改,实例如下:
ALTER TABLE studentinfor RENAME TO stuinfor
删除数据表
删除数据表时需要注意表与表之间存在的关系,如外键关系,需要注意删除的顺序,首先删除外键依赖的表,再删除具有外键的表。删除数据表语法与实例如下:
drop table 数据表名
drop table studentinfor
本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可在评论区回复。更多程序设计相关教程及实例分享,期待大家关注与阅读!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com