数据类型

null不是对象,''是对象,''是一个字符串型数据,是一个长度为0的字符串,而null只知道它是一个没有赋值过的,不属于任何数据类型 

整形:int zerofill   //用0填充,此时自动为该列的数值属性设置成无符号型

          auto_increment  //自动加1的列,每张表中只有一个并且需要设置成非空,主键或者外键

          create table my_tb(id int auto_increment not null primary key)

小数:float:浮点数,float(7,4):指定了精度和标度,会将四舍五入后的结果插入;在不指定时按照实际的数值进行存储

           decimal:精确的数据类型,默认是(10,0),当数据超出了相应的精度和标度会报错

位:bit(M)存放多位二进制数1-64

      但是直接用select 语句不会看到结果,可以用bin()二进制函数,或者hex()十六进制函数进行读取

      select bin(id),hex(id) from table1;

日期类型:date:日期 yyyy-mm-dd     datetime:yyyy-mm-dd hh:mm:ss    time: hh:mm:ss

                 timestamp:时间戳 返回yyyy-mm-dd hh:mm:ss格式的字符串  

                 select now();//返回当前日期

                 timestamp 与datetime有一些区别:

                 timestamp 在创建时的默认值是:'CURRENT_TIMESTAMP'(系统日期)mysql中只将第一个timestamp字段设置默认时间为系统时间,其余的设置为0

                 create table t(

                  tm timestamp not null default current_timestamp;

                  )

                use db;

                insert into t values (null);

                timestamp与时区有关,当插入日期时,会先转换成当地的时区后存放,而从数据库中取出时,同样会先将日期转换成本地时区后再显示。两个不同时区的用户看到的同                                    一个日期可能不一样;timestamp表示的日期的范围更窄,到2038年;当不明确为timestamp赋值时系统自动赋值为当前时间

                                   创建表时,使用timestamp:
                                   a    tm timestamp not null default current_timestamp;//列值默认为当前时间戳,但是不进行更新

                                   b    tm timestamp not null default current_timestamp on update current_timestamp;//列值默认为当前时间戳,同时进行更新

                                   c    tm timestamp not null default 0 on update current_timestamp;//列值默认为0,自动更新

               datetime 与时区无关 ;表示时间到9999-12-31 23:59:59

              show variables like 'time_zone';//默认时区是系统时区即东八区
              set time_zone='+9:00'//将时区改为东九区

              mysql中允许多种格式的日期类型插入:

              insert into tt values('2007-12-12 23:12:09');//标准格式

              insert into tt values('2007*12*12 23&12&09');//分割符使用任意字符均可

              insert into tt values('20071212231209');//字符串格式

              insert into tt values(20071212231209);//整数格式

字符串类型:char 和varchar

              char是创建时声明的长度,而varchar是可变长字符串

              在检索的时候,char删除了尾部的空格,而varchar保留了尾部的空格

二进制类型:binary

              当保存二进制的值时,在值的最后通过填充0x00来达到定义的长度

              binary(3) 当插入'a'时,保存为:'a'

枚举型:enum    enum('值1','值2')当赋值数据不属于值1和值2时,选择第一个值作为插入数据

集合:set   set 可以一次选取多个成员对于重复插入的元素,每次只选择一次

          create table t(

           s set('a','b','c','d')

          )

          insert into t values('a','b'),('a','c'),('a','b','c'),('a','b','f'),('a','b','a') 相同元素只能插入一次

              

                

     

原文地址:https://www.cnblogs.com/-cqq/p/8028910.html