开发者学堂课程【数据处理:DDL(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/64/detail/1152
DDL(二)
数据类型
数据类型为创建表时指定列的位置。在 bookstore 的 Tables 里随便找一张表,比如 book,点击鼠标右键,点击更改表。 Field Name 为列名,Dacacype 为列类型,每一列都得有自己的类型,打开箭头发现下栏里有很多类型。数据类型应用在哪儿?数据库里有很多表,每个表都有 n 多个列,每一列都有一个类型。
1.int:整型
2.double:浮点型
指定此类型时,需要给出{},{}中需要有两个整数,中间用逗号隔开,double{5,2}表示最多5位,其中包含2位小数,最大值为999.99。double{10,2}表示99999999.99将近一个亿。
decimal:浮点型,在钱方面比较好,因为它表示十进制,对十进制运算比较精确。可以用来求阶乘,比如50的阶乘,1000的阶乘。
3.char:固定长度字符串类型
char{255}表示字符串最长为255。固长是什么?往char{255}里存一个 A 字符,则一个 A 字符占1个字节,但还有254个字节没用,但是这是固长,无论存多少都会变成255个字节,不足255时会用空格补足255个字节,即数据的长度不足指定长度时会补足到指定长度。如果存500长,则会报错。即一旦超出长度便会报错。最大值为255,不能存超过这个数的。数据的长度不足指定长度,补足到指定长度。用户名用这种方式是不合适的,比如 zhangsan 和 lisi 打拼音的话长度不相同,此时便会出现空间上的浪费。若指定一个应用 ID,无论应用 ID 是什么值,长度都为32位,这32位便可以固长。再例如做身份证号码,每个人的身份证号码长度都相同,此时可以使用固长。用字串表示时间也可以用固长。比如:2014-07-07 11:29:32,时间长度都是相同的,因此可以用固长。
4.varchar:可变长度字符串类型
最大值为65535,varchar{65535},比如用户名、备注等用 varchar 比较合适。特点为当数据不足指定长度时,不补足,给多长就是多长。变长需至少用一个字节来记录长度,比如内存是连接的,取用户名从哪儿开始取,从这个位置开始取,取多长呢?这时便需要单独拿出一个字节来记录存了多长。但对于 char 来说便不需考虑了。varchar 中若字节长度大于一个字节后,便需两个字节来记录字节长度。固长时用固长,变长时用变长,固长要比变长节省一点,因为固长不需单独拿出空间来记录数据的长度。
以上几种类型是常用类型。
5.text(clob)是 mysql 独有的类型
标准里没有这种类型,标准里是 clob 类型,表示字符数据。用 text 类型可以存储超大的字符。比如有一本天龙八部需存在数据库里,一个汉字三个字节,那么 varchar 便存储不了,便需要用 text。text 分为 很小、小、中、大四种类型。tinytext 为255个字节,text 为65535个字节,mediumtext 为二的二十四次方减一个字节,longtext 最大,为二的三十二次方减一个字节即4G。二的十次方是1024,1024刚好是1KB,1024乘1024是1兆,3个1024就是二的十次方乘二的十次方乘二的十次方等于二的三十次方等于1k在乘1024,1兆在乘1024,1G 在乘4等于4G。