三.DDL字段语句
3.1语句讲解
对表中的字段进行操作,也是DDL语句有的属性。接下来我们就来学习对字段的操作吧~
突然觉得这个表在创建的时候,没有添加一个信息,想增加一个字段,可以这样做:
alter table 表名 add 字段名 数据类型 [comment '注释'];
比如想加一个表示薪资的字段:
老板发现工资用int表示,工资给太高了,想给个小一点的整型表示,于是:
alter table 表名 modify 字段名 新数据类型;
这样就可以改掉原先字段的数据类型了,老板很是开心~
后来老板发现,这个薪资不能直接用数字表现出来,用等级的话隐蔽性会更好,这就需要更换整个字段。
alter table 表名 change 旧字段 新字段 新数据类型 [comment '注释'];
此时,老板的想法达成了。
alter table emp drop 字段名;
这段代码的意思是删除指定表的字段名。
3.2总结
以下是DDL语句对字段的操作:
讲到这里,DDL语句的基本操作就讲完啦!可能读者很好奇tinyint、smallint、char(1)这些是什么,我们接下来看。
四.MySQL数据类型
SQL里的数据类型和其它编程语言有点区别,但也有相似的地方,它分为三类,我们直接看图吧。
整型:
数值类型是其中的一种类型,tinyint的大小是一个字节的整型,相当于C语言里的char类型。
smallint相当于C里的short,bigint相当于C里的long long类型。特殊一点的是mediumint占三个字节大小。
浮点类型和C是一样的,有两点特别的是:decimal和控制浮点数小数点保留位数的方式。
这里得引入两个概念,精度和标度。
精度是浮点数总共有多少位数,比如3.14的精度是3。
标度是浮点数有多少个小数位,6.1的标度是1。
如何表示三位数,一个小数位呢?首先总共有四个有效位,其次是一个小数位,是这样表示的double(4,1)。
在字符串类型里,有char和varchar,学过C语言的读者会联想到表示字符串用char arr[元素个数]数组表示。
在MySQL用char(元素个数)表示定长数组,varchar(元素个数)表示可变数组。注意不是方括号。
blob是表示二进制数据的数据类型,text是表示文本数据的数据类型;
二进制数据类型的有软件包、音频呀这些。一般不会用数据库存储的。
tinyblob一个字节、blob两个字节、mediumblob三个字节、longblob四个字节、text一样的,博主不赘述了。
表示日期时间的数据类型:
date是表示年月日--- yyyy--mm--dd
time是表示时分秒--- hh--mm--ss
year是表示年--- yyyy
datetime表示年月日,时分秒
timestamp表示的也是年月日,时分秒,不同于datetime的是timestamp是时间戳,由于数值溢出的原因,在2038年会失效,也叫Unix千年臭虫。
五.结尾
好啦,到这里就讲完SQL语句里的DDL语言,还讲了MySQL中的数据类型与其它编程语言有一定联系,也有区别。
下面我们将会继续学习SQL语句的另一个分类DML,点点关注不迷路~