您的位置:首页 > 数据库 > MySQL

MySQL学习笔记之二

2016-05-18 08:30 543 查看
2  MySQL中的数据类型

  2.1数值类型:int     tinyint    mediumint    bigint   float     double    dec   (在这简单的列举集中,选取其中几个常用的For  example )

     2.1.1  int:占4个字节;建立字段时,如果字段类型是int,且没给其值,默认值:int(11);

     2.1.2  bigint:占8个字节;

     2.1.3  int和bigint的区别:从范围的角度讲,int的取值小于bigint,一般在一张表中,主键id的类型一般bigint防止不必要的溢出。

     2.1.4 小数形式:浮点数和定点数

         2.1.4.1 浮点数:float和double,前者占4个字节,后者占8个字节。/double/float(M,N):其中M表示整数+小数部分的总个数,N表示小数部分的个数,注意:M>N

         2.1.4.2 定点数:dec;精度比浮点数高;dec(M,N):和上述浮点数一样的意思。但需要注意:默认情况:dec(10,0);

         2.1.4.3 浮点数和定点数的总结:

                   double/folat:不给于限制条件即float(M,N)时,正常插入;反之,进行必要的四舍五入;

                   dec:不给于限制条件(同上);按照dec(10,0)进行四舍五入;

    2.1.5 bit(二级制)

            如果一字段的数据类型是bit,数据不为空时,使用select查看,不能显示,此时需要借助bin() 和hex(),查看;

  2.2 日期类型:time   date  datetime    timestamp   year (在这选择常用的几个日期类型)

      2.2.1 time:显示时分秒

      2.2.2 date:显示年月日

      2.2.3 datetime :显示年月日时分秒

      2.2.4 timestamp:显示年月日时分秒

      2.2.5 year :显示年份

      2.2.6
year和date的注意事项:一般情况下,保存年份选择year数据类型,它比date占用的空间小;

      2.2.7 timestamp的注意事项:

                 a:创建数据类型为timestamp时,默认是current_timestamp;

                 b:如果再在此表中创建一个字段也为timestamp的时候,系统默认是0;

                 c:一个表中不允许存在两个默认的current_timestamp;

  2.2.8
datetime和timestamp的区别:

         timestamp与地域的地区有关系;For  example:

          create table T(t1 datetime,t2 timestamp);      //建立两个字段分别是datetime和timestamp

          show variables like 'time_zone';                    //查看数据库使用的地域时区,一般情况下:回显示“SYSTEM”,,表示;中国东八区

          insert into T values(now(),now());                //插入当前的系统时间;now():表示获取当前的系统时间

          select * from T;                                                 //查看时间的变化,两个时间一样,为发生变化

          set variables time_zone='+9:00';                 //  设置时区为东九区

         select * from T;                                                 // 此时再查看时间的变化,会发现t2比t1多一个小时

2.3 字符串类型 : char     varchar    enum(选取几个使用频率较高的)

   2.3.1  char与varchar的区别:

        a:char是固定长度的字符串类型,而varchar是非固定的字符串类型;char存储数据的速度比varchar快,varchar比char更加灵活;

        b:数据类型是char,插入的数据的后面存在很多空格,在插入到数据库前会把数据后面的空格过滤,可通过length()函数,查看长度;而varchar却不会。

  2.3.2  enum(枚举类型)

       For example说明:

      create table Student (Ssex enum('M','F') );   //创建一张Student表,其中Ssex字段是enum;

      insert into Student values(‘m’),('M'),('1'),(NULL);    //插入4行

      select * from Student;                                                //查看结果





结论:枚举数据类型不区分大小写;如果插入的值不是enum中定义的,则选取enum中定义的第一个;当插入的值为NULL时,显示NULL;

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: