今天我们要讲的是 MySQL 和 Oracle 数据库中的数据类型。在数据库中,每个字段都有自己的数据类型,它决定了该字段能够存储的数据范围和类型。正确的选择和使用数据类型可以有效地提高数据库的性能和安全。
MySQL 数据类型
MySQL 数据类型包括数值型、日期时间型、字符串型、二进制型等多种类型。
数值型
MySQL 中有整型和浮点型两种数值型数据类型。
INT -- 整型,范围是 -2147483648 到 2147483647
BIGINT -- 大整型,范围是 -9223372036854775808 到 9223372036854775807
FLOAT -- 单精度浮点型
DOUBLE -- 双精度浮点型
DECIMAL -- 高精度十进制数,用于精确计算货币等金额
日期时间型
MySQL 中有多种日期时间型数据类型。
DATE -- 日期类型,如 1998-04-12
TIME -- 时间类型,如 11:45:23
DATETIME -- 日期时间类型,如 1998-04-12 11:45:23
TIMESTAMP -- 时间戳类型,存储从 1970 年 1 月 1 日 00:00:00 到当前时间的秒数
YEAR -- 年份类型,存储 2 个字节,范围是 1901 到 2155
字符串型
MySQL 中的字符串型数据类型包括定长字符串和变长字符串。
CHAR -- 定长字符串
VARCHAR -- 变长字符串
TINYBLOB -- 非常小的二进制数据,最长 255 个字符,例如 short text 或者图片的二进制码
BLOB -- 二进制数据,最长 65KB,例如 long text 或者图片的二进制码
MEDIUMBLOB -- 二进制数据,最长 16MB,例如视频或者音频文件的二进制码
LONGBLOB -- 二进制数据,最长 4GB,例如较大视频或者音频文件的二进制码
二进制型
MySQL 中还有二进制型数据类型。
BINARY -- 定长二进制
VARBINARY -- 变长二进制
TINYTEXT -- 短文本,最长 255 个字符
TEXT -- 文本,最长 65KB
MEDIUMTEXT -- 中等文本,最长 16MB
LONGTEXT -- 长文本,最长 4GB
ENUM -- 枚举类型,如 'male' 或 'female'
SET -- 集合类型,例如 'blue, black, red'
Oracle 数据类型
Oracle 数据类型与 MySQL 类似,但也有不少区别。
数值型
Oracle 中的数值型包括整型、浮点型和货币类型。
NUMBER(n) -- 数字类型,n 表示数字的位数,最大为 38
FLOAT -- 单精度浮点型
DOUBLE PRECISION -- 双精度浮点型
BINARY_FLOAT -- 单精度二进制浮点型
BINARY_DOUBLE -- 双精度二进制浮点型
CURRENCY -- 货币类型,用于精确计算货币等金额
日期时间型
Oracle 中的日期时间型与 MySQL 类似,但有一些不同。
DATE -- 日期类型,如 1998-04-12
TIMESTAMP -- 时间戳类型,存储从 1970 年 1 月 1 日 00:00:00 到当前时间的秒数
INTERVAL YEAR TO MONTH -- 年月间隔类型,如 3-2
INTERVAL DAY TO SECOND -- 日时间隔类型,如 3 12:23:34
字符串型
Oracle 中的字符串型数据类型与 MySQL 类似,但也有一些不同。
CHAR(n) -- 定长字符串
VARCHAR2(n) -- 变长字符串
CLOB -- 大型字符对象,最大 4GB
NCLOB -- 大型 Unicode 字符对象,最大 4GB
RAW(n) -- 定长二进制
LONG RAW -- 长二进制,最大 2GB
BLOB -- 大型二进制对象,最大 4GB
其他类型
Oracle 中还有其他类型,如集合类型和游标类型。
BOOLEAN -- 布尔类型
COLLECTION -- 集合类型
CURSOR -- 游标类型
RECORD -- 记录类型
TABLE -- 表类型
以上就是 MySQL 和 Oracle 数据类型的介绍。通过正确选择和使用数据类型,可以提高数据库的性能和安全。