MySQL学习笔记(12)—数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间。。。

更新时间:2023-07-10 02:37:07 阅读: 评论:0

MySQL学习笔记(12)—数据类型(定长字符、变长字符、字符串⼤对象、数
字类型、⽇期时间。。。
MySQL 常见的数据类型有字符串类型、数字类型、时间类型、⼆进制类型。具体的分类如下图:
1. 字符串类型
字符串类型⽤于存储字符和字符串数据,主要包含三种具体的类型:定长字符串、变长字符串以及字符串⼤对象。各种数据库对于字符串类型的⽀持如下:
数据类型Oracle MySQL SQL Server PostgreSQL
定长字符串CHAR(n)CHAR(n)CHAR(n)CHAR(n)
变长字符串VARCHAR2(n)VARCHAR(n)VARCHAR(n)VARCHAR(n)
字符串⼤对象CLOB TEXT VARCHAR( MAX )TEXT
在 SQL 中,输⼊字符串类型的常量和数据时,需要使⽤单引号引⽤。
化学元素符号表1.1 定长字符串
护士ppt
CHAR(n) 表⽰长度固定的字符串,其中 n 表⽰字符串的长度。常见的定义⽅式包括:
CHAR,长度为 1 的字符串,只能存储 1 个字符;
CHAR(5),长度为 5 的字符串。
对于定长字符串,如果输⼊的字符串长度不够,将会使⽤空格进⾏填充。通常来说,只有存储固定长度的数据时,才会考虑使⽤定长字符串类型。例如 18 位⾝份证,6 位邮政编码等。
1.2 变长字符串
VARCHAR(n) 表⽰长度不固定的字符串,其中 n 表⽰允许存储的最⼤长度。对于变长字符串,如果输⼊的字符串长度不够定义的最⼤长度,则存储实际的内容。
CHAR VARYING 和 CHARACTER VARYING 是 VARCHAR 的同义词,可以通⽤。 Oracle 中使⽤ VARCHAR2 表⽰变长字符串类型。
变长字符串类型⼀般⽤于存储长度不固定的内容。
1.3 字符串⼤对象
CLOB 表⽰字符串⼤对象,通常⽤于存储普通字符串类型⽆法⽀持的更长的字符串数据。例如整篇⽂章、备注、评论等。
Oracle 使⽤ CLOB 类型存储⼤型字符串;
MySQL 提供了 TINYTEXT 、 TEXT 、 MEDIUMTEXT 以及 LONGTEXT 分别⽤于存储不同长度的⽂本数据;
SQL Server 使⽤ VARCHAR( MAX ) 存储⼤⽂本数据;
PostgreSQL 提供了 TEXT 类型存储任意长度的字符串;
砷酸
CHARACTER LARGE OBJECT 和 CHAR LARGE OBJECT 是 CLOB 的同义词,可以通⽤。
2. 数字类型
吃饭的英语怎么说数字类型主要分为两类:精确数字和近似数字。各种数据库对于数字类型的⽀持如下:
数据类型Oracle MySQL SQL Server PostgreSQL
精确数字SMALLINT
INTEGER
NUMERIC(p, s)
SMALLINT
迅雷网盘资源INTEGER
BIGINT
NUMERIC(p, s)
SMALLINT
INTEGER
BIGINT
NUMERIC(p, s)
SMALLINT
INTEGER
BIGINT
NUMERIC(p, s)
近似数字BINARY_FLOAT
BINARY_DOUBLE
FLOAT
DOUBLE PRECISION
REAL
DOUBLE PRECISION
REAL
DOUBLE PRECISION
2.1 精确数字
精确数字类型⽤于存储整数或者包含固定⼩数位的数字。其中, SMALLINT 、 INTEGER 和 BIGINT 都可以表⽰整数。
对于 MySQL 、 SQL Server 以及 PostgreSQL ,
SMALLINT ⽀持 -32768 ~ 32767;
INTEGER ⽀持 -2147483648 ~ 2147483647;
BIGINT ⽀持 -2 ~ 2-1。
Oracle 中的 SMALLINT 和 INTEGER 都是 NUMBER(38,0) 的同义词; Oracle 不⽀持 BIGINT 关键字。
氓教学设计INT 是 INTEGER 的同义词,可以通⽤。 MySQL 中还提供了 TINYINT ,⽀持 -128 ~ 127; MEDIUMINT ⽀持 -8388608 ~ 8388607。另外,MySQL 中的所有整型分为有符号类型(例如 INTEGER 、 INTEGER SIGNED )和⽆符号类型(例如 INTEGER UNSIGNED ),⽆符号整型⽀持的正整数范围扩⼤了⼀倍。
NUMERIC(p, s) 和 DECIMAL(p, s) 可以看作相同的类型,⽤于存储包含⼩数的精确数字。
其中,精度 p 表⽰总的有效位数,刻度 s 表⽰⼩数点后允许的位数。例如,123.04 的精度为 5,刻度为 2。 p 和 s 是可选的, s 为0 表⽰整数。 SQL 标准要求 p ≥ s ≥ 0 并且 p > 0 。
DEC 是 DECIMAL 的同义词,可以通⽤。 Oracle 中的 NUMERIC 和 DECIMAL 都是 NUMBER 的同义词。
整数类型通常⽤于存储数字 id、产品数量、课程得分等数字; NUMERIC ⽤于存储产品价格、销售⾦额等包含⼩数并且准确度要求⾼的数据。
2.2 近似数字
近似数字也称为浮点型数字,⼀般使⽤较少,主要⽤于科学计算领域。
REAL 表⽰单精度浮点数,通常精确到⼩数点后 6 位;DOUBLE PRECISION 表⽰双精度浮点数,通常精确到⼩数点后 15 位。浮点数运算更快,但是可能丢失精度;浮点数的⽐较运算可能会导致⾮预期的结果。
Oracle 使⽤ BINARY_FLOAT 和 BINARY_DOUBLE 表⽰浮点数。
MySQL 使⽤ FLOAT 表⽰单精度浮点数,同时区分有符号和⽆符号的浮点数。
3. ⽇期时间类型
DATE 存储年、⽉、⽇;
TIME 存储时、分、秒,以及秒的⼩数部分;
TIMESTAMP 同时包含年、⽉、⽇、时、分、秒,以及秒的⼩数部分。
各数据库的差异:
Oracle 中的 DATE 类型包含了额外的时、分、秒,不⽀持 TIME 类型。
SQL Server 使⽤ DATETIME2 和 DATETIMEOFFSET 表⽰时间戳。
MySQL 还⽀持 DATETIME 表⽰时间戳。
6363
4. ⼆进制类型
⼆进制类型⽤于存储⼆进制数据,例如⽂档、图⽚,视频等。⼆进制类型具体包含以下三种:
BINARY(n) ,固定长度的⼆进制数据, n 表⽰⼆进制字符数量;
VARBINARY(n) ,可变长度的⼆进制数据, n 表⽰⽀持的最⼤⼆进制字符数量;
BLOB ,⼆进制⼤对象。新生宝宝祝福语
各数据库差异:
Oracle ⽀持 BLOB ⼆进制类型;
MySQL ⽀持 BINARY 、 VARBINARY 以及 TINYBLOB 、 BLOB 、 MEDIUMBLOB 、 LONGBLOB ⼆进制类型;
SQL Server ⽀持 BINARY 、 VARBINARY 以及 VARBINARY ( MAX ) ⼆进制类型;
PostgreSQL ⽀持 BYTEA ⼆进制类型。
5. 如何选择数据类型
⼀般来说,先确定基本的类型:
⽂本数据,只能使⽤字符串类型;
数值数据,尤其是需要进⾏数学运算的数据,选择数字类型;婚外情小说
⽇期和时间信息,最好使⽤原⽣的⽇期时间类型;
⽂档、图⽚、⾳频和视频等,使⽤⼆进制类型;或者可以考虑存储在⽂件服务器上,然后在数据库中存储⽂件的路径。
接下来需要进⼀步确定具体的数据类型。在满⾜数据存储和扩展的前提下,尽量使⽤更⼩的数据类型,可以节省⼀些存储,通常性能也会更好。
对于字符数据,⼀般使⽤ VARCHAR 类型;如果数据长度能够确保⼀致,可以使⽤ CHAR ;指定最⼤长度时,满⾜存储需求的前提下尽量使⽤更⼩的值。
不要使⽤字符串存储⽇期时间数据,它们⽆法⽀持数据的运算。例如获得两个⽇期之间的间隔,需要依赖应⽤程序进⾏转换和处理。
参考:

本文发布于:2023-07-10 02:37:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1075157.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   字符串   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图