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

一、整型的显示宽度

MySQL数据类型与SQLServer有些不同,其定义的基本形式如下:

整型类型(显示宽度)

注意,正确的理解,其实是显示宽度,因为整型的显示宽度,对数值大小无影响,只是当设置了zerofill的时候,在显示的时候补0而已。

从上面的显示我们看到,设置了宽度为8,并且zerofill了,这样在查询的时候,会在前面自动补0。宽度可以不设置,因为整数数据类型都有默认的显示宽度,不设就采用默认的。

另外,即使设置了显示宽度,也能赋超过显示宽度的值,整型的显示宽度仅仅用于显示补0。

二、浮点型与定点型

MySQL中可以指定浮点数和定点数的精度

数据类型(M,D)

M:精度,数据的总长度;

D:标度,小数点后的长度;

这种类型MySQL里有3种如:Float(6,2)、Double(6,2)、Decimal(6,2);

其区别在于:

当不指定精度时,Float、Double默认会保存实际精度,而Decimal默认是整数;

当标度不够时,都会四舍五入,但Decimal会警告信息。

三、日期与时间类型

MySQL日期时间所有种类如下:

类型

字节数

取值范围

零值

YEAR

1

1901~2155

0000

DATE

4

1000-01-01~9999-12-31

0000:00:00

TIME

3

-838:59:59~838:59:59

00:00:00

DATETIME

8

1000-01-01 00:00:00~9999-12-31 23:59:59

0000-00-00 00:00:00

TIMESTAMP

4

1970-01-01 08:00:01~2038-01-19 11:14:07

00000000000000

DATE类型前面可以加个D,D表示天即24小时,如往DATE类型插入 '2 15:20:20';

另外TimeStamp类型与DateTime在无输入的情况下要注意下:

TimeStamp使用Current_TimeStamp()而DateTime使用NOW(来获取当前时间);

输入NULL时,系统会输入系统当前日期与时间;

无任何输入时,系统会输入系统当前日期与时间;

四、字符串类型

在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不同:

类型

允许的长度

存储空间

TINYTEXT

0~255字节

值的长度+2字节

TEXT

0~65535字节

值的长度+2字节

MEDIUMTEXT

0~167772150字节

值的长度+3字节

LONGTEXT

0~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。它们之间的区别也只是最大长度不同。

五、数据类型的选择

整型:根据要显示的最大值决定;

浮点型:要显示小数。如果要精确到小数点后10位,就选择DOUBLE,而不应该选择FLOAT。DECIMAL精度较高,浮点数会出现误差,如果精度较高,则应选择定点数DECIMAL;

字符串型:定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快,如果长度变化不大,如身份证号码那种,最好选择CHAR类型。而对于评论字符串,最好选择VARCHAR;

时间:根据需要显示的类型咯,特别是TIMESTAMP,如果需要显示的时间与时区对应,就应该选择TIMESTAMP;

ENUM类型和SET类型:长度不同,ENUM类型最多可以由65535个成员,而SET类型最多只能包含64个成员。且ENUM只能单选,而SET类型可以多选;

TEXT类型和BLOB类型:TEXT只能存储字符数据,而BLOB可以存储二进制数据。如果是纯文本,适合TEXT。如果是图片等适合存二进制;

六、问题总结

1、存储路径的问题

MySQL中,如果路径中使用"\"符号时,这个符号会被过滤。解决的办法是路径中用"/"或"\\"来代替"\"。这样MySQL就不会自动过滤路径中的分隔符。

2、MySQL中的布尔类型

MySQL中没有Bool或Boolean类型,但是为了支持SQL标准,也可以定义Bool或Boolean类型的,但是Bool或Boolean类型最后转换成的是TinyInt(1),也就是说,在MySQL中,布尔类型实际上是TinyInt(1)。

3、MySQL中如何存储JPG图片或MP3音乐

一般情况下,数据库中不直接存储图片和音频文件,而是存储图片或音频文件的路径,如果在特殊情况下需要在MySQL数据库中存储图片和音频文件,可以选择BLOB类型;

转自:http://www.cnblogs.com/kissdodog/p/4159176.html

mysql 图像数据类型_MySQL数据类型相关推荐

  1. mysql布尔数据类型_MySQL数据类型

    在本教程中,您将了解MySQL数据类型以及如何在MySQL中设计数据库时有效地使用它们. 数据库表包含具有特定数据类型(如数字或字符串)的多个列. MySQL提供更多的数据类型,而不仅仅是数字或字符串 ...

  2. mysql 51cto 数据类型_MYSQL 数据类型 详解

    请问在数据类型里 1,char,nchar,nvarchar,varchar有什么区别? 2,text和ntext有什么区别以及和上面各种字符类有什么区别? 3,关于带big和带small的类型,比如 ...

  3. mysql 中文的数据类型_mysql数据类型整理

    电脑的基本数据容量单位. 电脑的一个字节等于8位,也就是1byte=8bit. 字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符. bit中文名称是位 ...

  4. mysql f参数_MySQL 数据类型

    常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:DATETIME , ...

  5. mysql实型_mysql 数据类型

    1.整型 类型 大小 范围(有符号) 范围(无符号) 用途 tinyint 1 字节 (-128,127) (0,255) 小整数值 smallint 2 字节 (-32 768,32 767) (0 ...

  6. mysql 类型解释_MySQL 数据类型说明解释

    在 MySQL 中,有三种主要的类型:Text(文本).Number(数字)和 Date/Time(日期/时间)类型. Text 类型: 数据类型描述 CHAR(size) 保存固定长度的字符串(可包 ...

  7. mysql 优化 类型_MySQL数据类型的优化选择

    整数类型: Tinyint-8 Smallint-16 Mediumint-24 Int-32 Bigint-64 实数类型(带有小数部分的数字) Float-4/double-8:浮点 Decima ...

  8. mysql类型说明_MYSQL 数据类型说明

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  9. mysql提供了表示日期和时间的数据类型_MySQL数据类型 - 日期和时间类型(1)

    1.日期和时间数据类型语法 用于表示时间值的日期和时间数据类型是DATE, TIME, DATETIME, TIMESTAMP和 YEAR. 对于TIME, DATETIME和 TIMESTAMP值, ...

  10. mysql 中文的数据类型_MySQL 数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

最新文章

  1. 爬虫基础分享Scrapy框架流程图与安装
  2. Redis 桌面管理工具 RedisDesktopManager 2019.0 发布
  3. Hibernate中的实体映射
  4. CMapStringToPtr::SetAt\CAsyncSocket
  5. LeetCode 461. 汉明距离(异或^ 与)
  6. 电脑上老出现万象预览的广告_如何极速搜索“我的电脑”全部文件?搜索神器推荐!...
  7. Volatile(理解)
  8. 你会如何优化应用程序的性能?
  9. Thinking in Java 16.3返回一个数组
  10. UE4蓝图基础03-基本数据计算
  11. Pr 音频效果参考:其它
  12. 大屏做成这样,领导不重视你都难!
  13. Fast-Paced Multiplayer (Part I): Introduction
  14. js闭包深入理解(Closure)
  15. 机器人系统设计与制作:Python语言实现2.4 用LibreCAD生成机器人的二维CAD图
  16. java2实验手册求方程的根_完成实验手册实验六:P101编程题2、3、4 Java程序设计上机实验手册(完稿)_吴娜炯.pdf_学小易找答案...
  17. 扎克伯格说了两句大实话!一句价值1300亿美元,另一句让美国人扎心了…
  18. WiFi连上了,却上不了网,请看这里
  19. NetworkManager——linux强大的网络管理工具
  20. 2022年危险化学品生产单位安全生产管理人员考试及危险化学品生产单位安全生产管理人员新版试题

热门文章

  1. 软件测试基础知识 + 面试理论(超详细)
  2. XILINX FPGA数字信号处理——11、通信信号处理原理及实现
  3. c语言课程设计报告书通讯录,C语言课程设计学生通讯录管理系统设计
  4. C语言入门1:Hello World
  5. FreeTextBox使用详解(FTBv3-1-6)
  6. 《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理
  7. android高效视频压缩代码,Android视频压缩的示例代码
  8. 处女座的砝码-数学推论
  9. 全球国家(和地区)信息JSON数据
  10. 卡巴斯基最新Key下载 生成卡巴斯基Key的工具下载 卡巴斯基Key下载