原创

Mysql 字段类型总结

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 特性如下:

1)使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性

2)支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3)为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,)NET和 Tcl 等

4)支持多线程,充分利用 CPU 资源

5)优化的 SQL查询算法,有效地提高查询速度

6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中

7)提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名

8)提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径

9)提供用于管理、检查、优化数据库操作的管理工具

10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库

11)支持多种存储引擎

12)MySQL 是开源的,所以你不需要支付额外的费用

13)MySQL 使用标准的 SQL数据语言形式

14)MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言

15)MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统

16)在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性

17)复制全局事务标识,可支持自我修复式集群

18)复制无崩溃从机,可提高可用性

19)复制多线程从机,可提高性能

串数据类型,具体如下:

CHAR		1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)
VARCHAR		可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串
TINYTEXT		同TEXT,最大长度为255字节
MEDUIMTEXT		同TEXT,最大长度为16K
TEXT		最大长度为64K的变长文本
LONGTEXT		同Text,最大长度为4GB(纯文本,一般不会到4G)
ENUM		接受最多64K个串组成的预定义集合的某个串
SET	接受最多64K个串组成的预定义集合的零个或多个串

辨別Null与Not Null :Null为允许储存空值(Null)

数值数据类型,具体如下:

TINYINT		1字节,范围(-128~127)
SMALLINT		2字节,范围(-32768~32767)
MEDIUMINT		3字节,范围(-8388608~8388607)
INT		4字节,范围(-2147483648~2147483647)
BIGINT		8字节,范围(+-9)22*10的18次方)
FLOAT(m, d)		4字节,单精度浮点型,m总个数,d小数位
DOUBLE(m, d)		8字节,双精度浮点型,m总个数,d小数位
DECIMAL(m, d)		decimal是存储为字符串的浮点数

日期和时间数据类型,具体如下:

Date		日期(yyyy-mm-dd)	
Time		时间(hh:mm:ss)	
DateTime		日期与时间組合(yyyy-mm-dd hh:mm:ss)	
TimeStamp		yyyymmddhhmmss	
Year		年份yyyy

数据类型使用场景如下:

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

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

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

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

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

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

~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信