数据与字段类型
数据与字段的类型
数据表
- 数据表:是一个数据库里面用来存储数据的基本单元,是由表结构,表数据组成。
- 表的作用:存放相同规则的数据。
建表语句规范
SQL语句不区分大小写,但是表就是一个文件名,window不区分大小写,Linux区分大小写。
类型和属性
l 数值型
- 整型
注意:M:所占的位数
Unsigned:有无符号
Zerofill:1.插入数据时,当该字段的值的长度小于定义的长度时,会在改制的前面不上相应的0.
2.zerofill:默认为int(10)
3.当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如:有符号为-128~127,无 符号为0~256。
- Int (integer) [(M)][(unsigned)][(zerofill)] 正常整数,有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。(占四个字节)
- Tinyint[(M)][unsigned][zerofill] 很小的整数。有符号范围是-128到127,无符号范围是0到255。(占一个字节)
- Smallint[(M)][unsigned][zerofill] 小整数。 有符号范围是-32768到32767,无符号整数是0到65535.(占两个字节)
- Mediumint[(M)][insigned][zerofill] 中等大小整数。有符号范围是-8388608到8388607,无符号的范围是0到16777215。(占三个字节)
- Bigint[(M)][unsinged][zerofill] 大整数。有符号范围是-9223372036854775808到9223372036854775807,无符号的范围是0到184467440709551615。(占八个字节)
- 浮点型
- 注意:整个数值的长度M;小数的长度:D
- Float [(M,D)][zerofill] 单精度浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。(占四个字节)
- M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。
- Doule[(M,D)][unsigned] 双精度浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。(占八个字节)
- M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。
定点数:
decimal(M,D) 对于精度要求高的,推介使用定点数。例如:货币等精度敏感度高的数据。
由于浮点数存在误差,所以在项目里面尽可能少的不要用浮点数做=比较
l 日期型
- DATE YYYY-MM-DD
- TIME hh:mm:ss
- DATETIME YYYY-MM-DD hh:mm:ss
- TIMESTAMP YYYYMMDDhhmmss (时间戳)
- YEAR YYYY YY
l 字符型
- 字符型
Char(M)[binary] 定长字符串
Varchar(M)[binary] 变长字符串
Tinyblob & tinytext blob或text列,最大长度为255个字符
Blob & text blob或 text 列,最大长度为65535个字符
Longblob & longtext blob或 text列,最大长度为4294967295个字符
Char 和varchar的区别
两者区别:
char定长,varchar可变长度。声明时指定长度,超出长度后会报错。
如果存入的字符不足生命的长度,char的大小还是生命的长度;而varchar会自动伸缩为实际存入字符串的长度以节省空间
应用场景:
char固定长度,效率高,比如性别...但是浪费空间
varchar不固定长度,速度慢,效率低,但节省空间,比如文章标题...
blob代表字节流,用来保存二进制数据,照片、电影、压缩包。一般我们并不在数据库中直接存放多媒体数据,而是将资源存在服务器,数据库中只保存存储的路径即可。
- 枚举型
Enum(‘value1’,’value2’,....)枚举,只有一个值得字符串对象。最多可以有65535个不同的值。(枚举列表里面成员必须放在’’里面)
- 集合型
Set(‘value1’,’value2’..........)集合,能有一个或多个之的字符串对象,其中每一个必须从列表中选出,最多可以有64个成员。
区别:枚举一次只能使用一个值,而集合可以使用多个用,隔开。