欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySql 基本数据类型

程序员文章站 2022-06-23 08:22:26
一、字符串类型1、CHAR与VARCHARchar()------定长字符串,最长255个字符。定长会浪费空间varchar()----变长(不定长)字符串,最长不超过65535个字节,一般超过255个字节,会使用text类型. 不定长节省空间,剩余空间会留给别的数据使用2、TEXTTEXT分为4种,与SQLServer不同:总结: char、varchar、text都可以表示字符串类型,其区别在于:(1)char在保存数据时, 如果存入的字符串长度小于指定的长度n,后面会用空格补全。...

一、字符串类型

MySql 基本数据类型
1、CHAR与VARCHAR

char()------定长字符串,最长255个字符。定长会浪费空间
varchar()----变长(不定长)字符串,最长不超过65535个字节,一般超过255个字节,会使用text类型. 不定长节省空间,剩余空间会留给别的数据使用

2、TEXT
TEXT分为4种,与SQLServer不同:

MySql 基本数据类型
总结: char、varchar、text都可以表示字符串类型,其区别在于:
(1)char在保存数据时, 如果存入的字符串长度小于指定的长度n,后面会用空格补全。
(2)varchar和text保存数据时, 按数据的真实长度存储, 剩余的空间可以留给别的数据用.
(3)char会造成空间浪费(不足指定长度的会用空格补全), 但是由于不需要计算数据的长度, 因此速度更快。(即浪费空间、节约时间)
(4)varchar和text但是节省了空间, 但是存储的速度不如char快(因为要计算数据的实际长度)

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的区别在什么地方呢?
  MySql 基本数据类型

基本上就是多选的ENUM。

二、浮点类型

MySql 基本数据类型

tinyint:占用1个sss字节,相对于java中的byte
smallint:占用2个字节,相对于java中的short
int:占用4个字节,相对于java中的int
bigint:占用8个字节,相对于java中的long
float:4字节单精度浮点类型,相对于java中的float
double:8字节双精度浮点类型,相对于java中的double

三、时间和日期类型

MySQL日期时间所有种类如下:MySql 基本数据类型
MySql 基本数据类型
1、date:年月日
2、time:时分秒
3、datetime:年月日 时分秒
4、timestamp:时间戳,与datetime存储相同的数据。
timestamp最大表示2038年,而datetime范围是1000~9999
timestamp在插入数、修改数据时,可以自动更新成系统当前时间

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

TimeStamp使用Current_TimeStamp()而DateTime使用NOW(来获取当前时间);
输入NULL时,系统会输入系统当前日期与时间; 无任何输入时,系统会输入系统当前日期与时间;

四、数据类型的选择

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

本文地址:https://blog.csdn.net/m0_47605113/article/details/110630847

相关标签: mysql 数据库