数据与字段类型

数据与字段的类型

数据表

  1. 数据表:是一个数据库里面用来存储数据的基本单元,是由表结构,表数据组成。
  2. 表的作用:存放相同规则的数据。

建表语句规范

 

SQL语句不区分大小写,但是表就是一个文件名,window不区分大小写,Linux区分大小写。

类型和属性

数值型

  • 整型

  注意:M:所占的位数

     Unsigned:有无符号

     Zerofill1.插入数据时,当该字段的值的长度小于定义的长度时,会在改制的前面不上相应的0.

         2.zerofill:默认为int(10)

         3.当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如:有符号为-128~127,无          符号为0~256

  1. Int (integer)  [(M)][(unsigned)][(zerofill)]  正常整数,有符号的范围-2147483648到2147483647,无符号的范围是0到4294967295。(占四个字节)
  2. Tinyint[(M)][unsigned][zerofill]  很小的整数。有符号范围是-128127,无符号范围是0255(占一个字节)
  3. Smallint[(M)][unsigned][zerofill]  小整数。 有符号范围是-3276832767,无符号整数是065535.(占两个字节)
  4. Mediumint[(M)][insigned][zerofill]  中等大小整数。有符号范围是-83886088388607,无符号的范围是016777215(占三个字节)
  5. Bigint[(M)][unsinged][zerofill]   大整数。有符号范围是-92233720368547758089223372036854775807,无符号的范围是0184467440709551615(占八个字节)
  • 浮点型
    • 注意:整个数值的长度M;小数的长度:D
  1. Float [(M,D)][zerofill]  单精度浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。(占四个字节)
  2. M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。
  3. Doule[(M,D)][unsigned] 双精度浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。(占八个字节)
  4. M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

定点数:

  decimal(M,D)   对于精度要求高的,推介使用定点数。例如:货币等精度敏感度高的数据。

  由于浮点数存在误差,所以在项目里面尽可能少的不要用浮点数做=比较

   

日期型

  • DATE YYYY-MM-DD
  • TIME hh:mm:ss
  • DATETIME YYYY-MM-DD hh:mm:ss
  • TIMESTAMP YYYYMMDDhhmmss (时间戳)
  • YEAR YYYY YY

字符型

  • 字符型

    Char(M)[binary]  定长字符串

    Varchar(M)[binary]  变长字符串

    Tinyblob & tinytext  blobtext列,最大长度为255个字符

    Blob & text  blobtext 列,最大长度为65535个字符

    Longblob & longtext blobtext列,最大长度为4294967295个字符

Char varchar的区别

两者区别:

  char定长,varchar可变长度。声明时指定长度,超出长度后会报错。

  如果存入的字符不足生命的长度,char的大小还是生命的长度;而varchar会自动伸缩为实际存入字符串的长度以节省空间

应用场景:

  char固定长度,效率高,比如性别...但是浪费空间

  varchar不固定长度,速度慢,效率低,但节省空间,比如文章标题...

 blob代表字节流,用来保存二进制数据,照片、电影、压缩包。一般我们并不在数据库中直接存放多媒体数据,而是将资源存在服务器,数据库中只保存存储的路径即可。

  • 枚举型

Enum(‘value1’,’value2’,....)枚举,只有一个值得字符串对象。最多可以有65535个不同的值。(枚举列表里面成员必须放在’’里面)

  • 集合型

Set(‘value1’,’value2’..........)集合,能有一个或多个之的字符串对象,其中每一个必须从列表中选出,最多可以有64个成员。

区别:枚举一次只能使用一个值,而集合可以使用多个用,隔开。

 

posted @ 2018-10-21 20:55  石汐曦  阅读(1667)  评论(0编辑  收藏  举报