本篇文章将为大家详细阐述SQL中有哪些字段类型,并给出代码实例。字段类型是SQL中非常重要的一部分,影响着数据的存储和处理方式。
一、整型
整型数据是SQL中最常用的数据类型之一。整型型数据是在内存中以二进制存放的,占用空间较小,在查询和计算时也比较快速。
1. TINYINT
TINYINT可以表示的整数范围为-128~127,占用空间1个字节。
CREATE TABLE `user` ( `id` TINYINT(4) NOT NULL, `name` VARCHAR(10) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. SMALLINT
SMALLINT可以表示的整数范围为-32768~32767,占用空间2个字节。
CREATE TABLE `user` ( `id` SMALLINT(6) NOT NULL, `name` VARCHAR(10) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. MEDIUMINT
MEDIUMINT可以表示的整数范围为-8388608~8388607,占用空间3个字节。
CREATE TABLE `user` ( `id` MEDIUMINT(8) NOT NULL, `name` VARCHAR(10) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4. INT/INTEGER
INT/INTEGER可以表示的整数范围为-2147483648~2147483647,占用空间4个字节。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(10) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5. BIGINT
BIGINT可以表示的整数范围为-9223372036854775808~9223372036854775807,占用空间8个字节。
CREATE TABLE `user` ( `id` BIGINT(20) NOT NULL, `name` VARCHAR(10) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、浮点型
浮点型数据包括单精度浮点型和双精度浮点型。相对于整型,它们可以表示更大范围的数字和更高的精度。
1. FLOAT
FLOAT占用空间4个字节,精度为单精度,可以表示的范围在3.4028235E38~1.1754944E-38之间。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `salary` FLOAT(7,2) DEFAULT NULL, `name` VARCHAR(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. DOUBLE
DOUBLE占用空间8个字节,精度为双精度,可以表示的范围在1.7976931348623157E308~2.2250738585072014E-308之间。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `salary` DOUBLE(9,2) DEFAULT NULL, `name` VARCHAR(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
三、字符型
字符型数据是用来表示字符串和文本型数据的。
1. CHAR
CHAR用于存储固定长度的字符串,并占用固定的空间,如果长度小于指定的长度,会在后面自动补充空格。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` CHAR(20) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. VARCHAR
VARCHAR用于存储可变长度的字符串,占用的空间会随着字符串的长度而变化。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `email` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. TEXT
TEXT用于存储大文本数据,最大支持65536个字符。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `description` TEXT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
四、日期和时间型
日期和时间型数据用于存储日期和时间。
1. DATE
DATE用于存储日期,比如2019-06-01。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `birthday` DATE, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. TIME
TIME用于存储时间,比如16:30:00。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `duration` TIME, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. DATETIME
DATETIME用于存储日期和时间,比如2019-06-01 16:30:00。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `datetime` DATETIME, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4. TIMESTAMP
TIMESTAMP用于存储时间戳,可以自动记录添加和修改的时间和日期。
CREATE TABLE `user` ( `id` INT(11) NOT NULL, `name` VARCHAR(20) NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
总结
本篇文章详细介绍了SQL中常用的字段类型包括整型、浮点型、字符型、日期和时间型,并且给出了每一种类型在代码中的实例,希望对大家在开发中有所帮助。