MySQL数据类型

MySQL与SQLServer的数据类型大同小异。因此,可以忽略与SQLServer相同的地方,在SQLServer的基础上学习。

操作方法

  • 01

    一、整型的显示宽度 MySQL数据类型与SQLServer有些不同,其定义的基本形式如下: 整型类型(显示宽度) 注意,正确的理解,其实是显示宽度,因为整型的显示宽度,对数值大小无影响,只是当设置了zerofill的时候,在显示的时候补0而已。 从上面的显示我们看到,设置了宽度为8,并且zerofill了,这样在查询的时候,会在前面自动补0。宽度可以不设置,因为整数数据类型都有默认的显示宽度,不设就采用默认的。

  • 02

    二、浮点型与定点型 MySQL中可以指定浮点数和定点数的精度 数据类型(M,D) M:精度,数据的总长度; D:标度,小数点后的长度; 这种类型MySQL里有3种如:Float(6,2)、Double(6,2)、Decimal(6,2); 其区别在于: 当不指定精度时,Float、Double默认会保存实际精度,而Decimal默认是整数; 当标度不够时,都会四舍五入,但Decimal会警告信息。

  • 03

    三、日期与时间类型 MySQL日期时间所有种类如下: 另外TimeStamp类型与DateTime在无输入的情况下要注意下: TimeStamp使用Current_TimeStamp()而DateTime使用NOW(来获取当前时间); 输入NULL时,系统会输入系统当前日期与时间; 无任何输入时,系统会输入系统当前日期与时间

  • 04

    四、字符串类型 在MySQL中,字符串类型包括CHAR、VARCHAR、BLOB、TEXT、ENUM、SET。 1、CHAR与VARCHAR 其定义方式为: 字符串类型(M) 这个M是长度的意思,插入该列的字符串长度将不允许超过M所指定的长度。另外,由于MySQL在建库时就指定了字符集,因此就不存在nchar、nvarchar、ntext这种数据类型了。 char最长可取255; varchar最长可取65535; 2、TEXT TEXT分为4种,与SQLServer不同: 类型允许的长度存储空间 TINYTEXT0~255字节值的长度+2字节 TEXT0~65535字节值的长度+2字节 MEDIUMTEXT0~167772150字节值的长度+3字节 LONGTEXT0~4294967295字节值的长度+4字节 3、ENUM类型 ENUM类型(枚举类型),与C#的概念一样,在定义时指定取值范围。 属性名ENUM('值1','值2','值3'...'值n') ENUM有NOT NULL属性,其默认值为取值列表的第一个元素; ENUM无NOT NULL,则ENUM类型将允许插入NULL,并且NULL为默认值; CREATE TABLE Test4(Sex ENUM('男','女')); INSERT INTO Test4 VALUES('男'); INSERT INTO Test4 VALUES('爷');--这行报错SELECT * FROM Test4; 4、SET类型 在创建表时,就指定SET类型的取值范围。 属性名 SET('值1','值2','值3'...,'值n') 它与ENUM的区别在什么地方呢? 基本上就是多选的ENUM。 5、二进制类型 二进制类型是在数据库中存储二进制数据的数据类型。二进制类型包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。 类型取值范围 BINARY(M)字节数为M,允许长度为0~M的定长二进制字符串 VARBINARY(M)允许长度为0~M的变长二进制字符串,字节数为值的长度加1 BIT(M)M位二进制数据,M最大值为64 TINYBLOB可变长二进制数据,最多255个字节 BLOB可变长二进制数据,最多2的16次方-1个字节 MEDIUMBLOB可变长二进制数据,最多2的24次方-1个字节 LONGBLOB可变长二进制数据,最多2的32次方-1个字节 1、BINARY和VARBINARY 两者唯一的差别在于BINARY当长度不够时会补\0。 2、BIT类型 BIT类型与SQLServer里的就差别大了。其定义方式为: BIT(M) 其中"M"指定了该二进制的最大字节长度为M,M的最大值为64。如BIT(4)就是数据类型为BIT类型,长度为4。其能够存储的值为0-15。因为变成二进制后,15的值为1111。 在查询BIT类型的数据时,要用BIN(字段名+0)来将值转换为二进制显示。 CREATE TABLE Test6(BB BIT(4));INSERT INTO Test6 VALUES(12);SELECT BIN(BB+0) FROM Test6; 上面的结果以二进制显示,最大的长度为4。 3、BLOB类型 BLOB类型是一种特殊的二进制类型。BLOB可以存储数据量很大的二进制数据,如图片,视频等。BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们之间的区别也只是最大长度不同。

  • 05

    五、数据类型的选择 整型:根据要显示的最大值决定; 浮点型:要显示小数。如果要精确到小数点后10位,就选择DOUBLE,而不应该选择FLOAT。DECIMAL精度较高,浮点数会出现误差,如果精度较高,则应选择定点数DECIMAL; 字符串型:定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快,如果长度变化不大,如身份证号码那种,最好选择CHAR类型。而对于评论字符串,最好选择VARCHAR; 时间:根据需要显示的类型咯,特别是TIMESTAMP,如果需要显示的时间与时区对应,就应该选择TIMESTAMP; ENUM类型和SET类型:长度不同,ENUM类型最多可以由65535个成员,而SET类型最多只能包含64个成员。且ENUM只能单选,而SET类型可以多选; TEXT类型和BLOB类型:TEXT只能存储字符数据,而BLOB可以存储二进制数据。如果是纯文本,适合TEXT。如果是图片等适合存二进制;

(0)

相关推荐

  • MySql 数据类型

    一.数字类型 数字类型按照我的分类方法分为三类:整数类.小数类和数字类. 我所谓的"数字类",就是指 DECIMAL 和 NUMERIC,它们是同一种类型.它严格的说不是一种数字类 ...

  • MySQL数据库基础教程

    目前,市面上的数据库产品多种多样,从大型企业的解决方案到中小企业或个人用户的小型应用系统,可以满足用户的多样化需求.这里,我们所要向大家介绍的MySQL数据库是众多的关系型数据库产品中的一个,相比较其 ...

  • ubuntu下mysql的常用命令

    一、mysql服务操作 0、查看数据库版本 sql-> status; 1、net start mysql //启动mysql服务 2、net stop mysql //停止mysql服务  3 ...

  • sqlserver导入数据到mysql的详细图解

    sqlserver导入数据到mysql的详细图解

  • MySQL数据库创建.修改和删除表操作实例介绍

    其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...

  • mysql安装图解详细说明

    本文详细介绍了Windows下安装MySQL5.5.19的全过程,希望对初学者有帮助。 下载mysql-5.5.19-win32.msi安装文件,双击运行,出现如下界面。 mysql安装向导启动,按“ ...

  • 使用navicat for mysql 输入中文却显示问号的解决方法

    我们在使用Navicat for mysql 建表后,输入中文等相关数据,点击保存再看就会出现??,输入几个中文就会显示几个? ;咨询同事说是要改字符集,但是改了之后也无效,后来发现是因为之前字符集就 ...

  • MySQL教程(MySQL数据库入门教程)

    一.MySQL基础1.1.MySQL概述数据库顾名思义,就是存储数据的仓库,这些数据是有组织存储的(DataBase简称DB).而数据库管理系统,即操作和管理数据的大型软件(DataBase Mana ...

  • mysql的空值与NULL的区别

    MySQL数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱 操作方法 01 陷阱一:空值不一定为空 空值是一个比 ...