SQL字段类型有哪些(MySQL字段类型最全解析)

本篇文章将为大家详细阐述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中常用的字段类型包括整型、浮点型、字符型、日期和时间型,并且给出了每一种类型在代码中的实例,希望对大家在开发中有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注