MySQL DDL深度解析:表结构操作的艺术与实践【Linux】
前言
小编在前几日为大家分享了有关 MySQL 中数据库的 DDL 操作,今天我们将继续学习 MySQL 的相关内容。本篇将重点讲解 MySQL 中关于 表 的 DDL 操作。如果各位忘了表的相关概念,那么我推荐各位看我第一篇关于MySQL的文章,里面有详细的讲述,为了更方便各位后面的阅读,这里我简单说几句——表其实就相当于Linux中的文件,里面存储的都是一些比较重要的数据,就比如雇员表,工资表,部门表等等,这些后续我们都会涉及到的。接下来我们就进入今天的学习之旅。
1.创建表
1.1.相关语法
CREATE TABLE table_name( field1 datatype, #一个个的列名,也就是表中需要存储的内容 field2 datatype, #关于这些数据的类型,我会在下篇文章讲述 field3 datatype )character set 字符集 collate 校验规则 engine 存储引擎;
可能很多读者看到上面的代码头就会痛,不要急,下面我就来依次解释上面的代码。
第一行是我们固定的语法,其实也很好理解,因为create就是创造的意思,table是表格,table后面跟着的就是表格名,代表着创建一个叫做xxx的表格,之后我们需要通过()来进行表格元素的填充,里面放入的都是一些元素,就比如字节类型的,整型的等等,关于数据类型我会在下篇文章进行更加详细的介绍,之后括号跟着的就是表格相关的字符集,校验准则以及存储引擎,关于字符集和校验准则,我在上一篇讲述库的DDL操作的时候提过,如果各位不知晓的话可以看我上一篇文章,至于存储引擎,各位目前先不用较真,我们使用系统默认的存储引擎即可,关于它我会在之后进行更加详细的介绍。
可能这个时候有的读者会说了:你仅仅给我展示了表格的语法,这些我都知晓,但我到现在还没有看到过一个表格的创建。不要急,下面我就来进行一些例子的创建。
1.2.相关例子
此时我要创建一个学生表,里面需要存储:学生的姓名,学生的学号,学生的电话,学生的家庭住址。里面涉及到的数据类型各位可以先不用管,下一篇文章我会详细介绍的。
create table student( name varchar(20), id varchar(20), tel varchar(10), place varchar(18));
此时就可以创建好一个表格了,其中里面的varchar其实可以认定为一个字符串类型,这些我会在介绍数据类型的时候详细说的,这里先不细说了,当我们创建好一个表格以后,我们可能想要查看表格中有几种数据,下面我来说一下如何查看一个表格。
不过这里先提一嘴,可能有的读者会奇怪:为什么我用语法的时候全是用小写表示的,这里我统一做一下回复:这和我们设置表格时的字符集和校验准则有关,此时的服务器在处理代码时是不区分大小写的,所以此时我们用大小写都是一样的(在使用语法的时候)。
2.查看表结构
2.1.语法一
desc 表格名;
通过上面这个简单的代码我们就可以查看表中有几种数据,我们可以查看上面的表。如下图:
上图中,第一列代表是数据名,第二个是数据的类型,至于后面的null,key,我会在之后的文章详细说明,此时我们无须知道它们是什么(如果有好奇的可以私信我,我会简单介绍一下的)。
2.2.语法二
show create table 表名\\G;
如果我们想要知道我们创建表格的时候,创建的一些细节,我们就可以使用上面的代码,它的功能就是展示我们创建表格的过程,如下图:
可以看出上面的大多数代码都是我创建表格时写的,我们重点关注)后面的,这里可以看出此时系统默认帮我们使用了默认的存储引擎,字符集以及校验准则,所以我在上面说过,一般我们是无须指明存储引擎的,用系统默认的就好。
在讲完了表格的增查以后,我们还有删改没有讲述,下面我先来讲述修改表格。
3.修改表
关于修改表,其实也分很多种情况,就比如我们有时需要给表添加一列,也就是添加一种元素,也可能会把其中一列删除,或者是把其中一列元素类型进行修改,下面小编分别讲述这几种情况。
3.1.增加一列
1.语法
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...);
我简单解释一下上面的代码,其中前两个是固定格式,第三个是表明,第四个add想必各位不陌生,它是添加的意思,它可以给表格添加新的一列,下面我通过一个例子来更好的让各位知晓它的用法。
2.案例
此时还是以上面我创建的student为例,此时我想要在添加一列,表示学生的身份证号(用id_number表示)。
alter table student add id_number varchar(20); #当然也可以用after 表中其中一列,它表示在哪一列后面插入新的列
此时我们查看表结构,就可以看到id_number成功的作为表中的一列。
2.2.改变其中一列的数据类型
1.语法
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...);
简单介绍一下上面的语法,此时前两个依旧是固定格式,第三个是表格名,第四个代表我们想要修改元素,此时我们可以修改其中的一列的数据类型,数据大小,甚至还可以把表的字符集以及校验准则进行修改(可以自行探索),下面我通过一个例子让各位更好的去掌握。
2.案例
此时我想要把student表中的id类型设置为int类型。
alter table student modify id int;
查看表结构,就可以看到id的类型被修改了,至于其他的修改,读者可以自行探索(有问题私信问我)。
3.3.删除其中一列
1.语法
ALTER TABLE tablename DROP (column);
这个语法我就不在重复解释,各位只要知道,drop是删除的意思,后面紧跟着的就是我们想要删除表的列名。有一说一,很多时候我们是不需要删除表中的元素的,因为这可能会涉及连锁反应,造成不可逆的后果,我们日常可以自己练着玩,在一个大型的数据库中,不建议使用。
2,案例
此时我想要删除id这一列(我似乎带着id的羊毛薅)。
alter table student drop id;
我们查看表结构,就可以看见这一列被删除了。
4.删除表
此时我们进入了最后一个操作——删除表,但是这个操作我是不建议各位做的,因为在一些大型的项目中,删除其中一个表,往往会产生连锁反应,从而让项目出现差错,所以最后总结一句——这个操作少用。
4.1.语法
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
这个难度不大,我就不详细讲述了,简答来说,就是drop后面跟上表明,下面我通过删除student来向各位展示它的用法。
4.2.案例
此时我们要删除表student。
drop student;
此时就把表进行了删除。
5.小结
此时我们这篇博客就写完了,希望各位可以好好的掌握表的DDL操作,这和我们之后的DML操作是有很大关系的,预告一下,下一篇我将会讲述mysql的数据结构,各位大佬尽情期待吧~一起学习的时光总是短暂的,各位大佬们,我们下一篇文章见啦!