MySQL数据类型和常用字段属性总结

yizhihongxing

MySQL数据类型和常用字段属性总结

MySQL是目前使用最广泛的关系型数据库之一,不同于其他类型数据库的是,MySQL具有非常丰富的数据类型和字段属性。

数据类型

整型

MySQL定义了5种不同长度的整型,分别为:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。这些整型可以用来存储整数值,具体范围和存储大小如下所示:

类型 存储范围 存储大小
TINYINT -128 ~ 127 1 byte
SMALLINT -32768 ~ 32767 2 bytes
MEDIUMINT -8388608 ~ 8388607 3 bytes
INT -2147483648 ~ 2147483647 4 bytes
BIGINT -9223372036854775808 ~ 9223372036854775807 8 bytes

示例:

CREATE TABLE user (
  id INT PRIMARY KEY,
  age TINYINT UNSIGNED NOT NULL,
  salary BIGINT DEFAULT 0
);

浮点型

MySQL定义了2种浮点型,分别为:FLOAT和DOUBLE,它们可以用来存储带有小数点的数值,具体范围和存储大小如下所示:

类型 存储范围 存储大小
FLOAT -3.40282347E+38 ~ -1.17549435E-38, 0 和 1.17549435E-38 ~ 3.40282347E+38 4 bytes
DOUBLE -1.7976931348623157E+308 ~ -2.2250738585072014E-308, 0 和 2.2250738585072014E-308 ~ 1.7976931348623157E+308 8 bytes

示例:

CREATE TABLE product (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  price FLOAT(8, 2) NOT NULL,
  discount DOUBLE(8, 4) DEFAULT 0.0
);

字符型

MySQL定义了4种字符型,分别为:CHAR、VARCHAR、TEXT、BLOB。这些字符型可以用来存储不同长度的字符串和文本,具体定义如下:

类型 定义 大小
CHAR 固定长度字符串 0 ~ 255 bytes
VARCHAR 可变长度字符串 0 ~ 65535 bytes
TEXT 长文本数据 0 ~ 65535 bytes
BLOB 长二进制数据 0 ~ 65535 bytes

示例:

CREATE TABLE article (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  title VARCHAR(100) NOT NULL,
  content TEXT NOT NULL,
  image BLOB
);

日期和时间型

MySQL定义了3种日期和时间型,分别为:DATE、TIME和DATETIME。这些日期和时间型可以用来存储日期和时间信息,具体定义如下:

类型 定义 大小
DATE 日期(年月日) 3 bytes
TIME 时间(时分秒) 3 bytes
DATETIME 日期时间(年月日时分秒) 8 bytes

示例:

CREATE TABLE order (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  create_date DATE NOT NULL,
  create_time TIME NOT NULL,
  update_time DATETIME NOT NULL DEFAULT NOW()
);

字段属性

NOT NULL

NOT NULL用来指定该字段的值不能为空,否则会报错。

示例:

CREATE TABLE person (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(100) NOT NULL
);

DEFAULT

DEFAULT用来指定该字段的默认值,在插入数据时可以不指定该字段的值,从而使用默认值。

示例:

CREATE TABLE student (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  age TINYINT UNSIGNED DEFAULT 20
);

UNSIGNED

UNSIGNED用来指定该字段的值必须为正整数。

示例:

CREATE TABLE product (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  price FLOAT UNSIGNED NOT NULL
);

AUTO_INCREMENT

AUTO_INCREMENT用来指定自增长,用于自动分配主键值。

示例:

CREATE TABLE user (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL
);

PRIMARY KEY

PRIMARY KEY用来指定该字段为主键,用于唯一标识表中的每一行。

示例:

CREATE TABLE book (
  id INT UNSIGNED PRIMARY KEY,
  title VARCHAR(100) NOT NULL,
  author VARCHAR(100) NOT NULL
);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL数据类型和常用字段属性总结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 使用java反射将结果集封装成为对象和对象集合操作

    关于使用Java反射将结果集封装成为对象和对象集合的操作,一般需要经过以下几个步骤: 1. 创建JavaBean类 首先,我们需要创建一个JavaBean类来对结果集进行封装。这个JavaBean类需要与数据库表中的字段对应,其中每个属性对应一个字段。 示例代码如下: public class User { private int id; private S…

    database 2023年5月21日
    00
  • php实现的PDO异常处理操作分析

    PHP实现的PDO异常处理操作分析 什么是PDO? PDO(PHP Data Objects)是PHP的一个数据库抽象层。使用PDO可以简化数据库的访问操作,使得代码更加规范、简洁,同时也更加安全,能够有效避免SQL注入等问题。PDO支持多种数据库,如MySQL、Oracle、SQLite等。 PDO的异常处理 在使用PDO进行数据库操作时,难免会遇到一些错…

    database 2023年5月22日
    00
  • MySQL5创建存储过程的示例

    MySQL5是一个流行的关系型数据库管理系统,支持创建存储过程。下面是MySQL5创建存储过程的示例攻略。 创建存储过程的前提条件 在开始创建存储过程之前,需要先确认以下前提条件: 确认MySQL5版本已经支持存储过程功能,可以通过查询MySQL version或SELECT @@version确认; 掌握MySQL5存储过程的语法,创建格式为: CREAT…

    database 2023年5月22日
    00
  • MySQL单表恢复的步骤

    MySQL单表恢复指的是在数据库中恢复某个表的数据,而不是整个数据库的数据。下面是MySQL单表恢复的步骤: 确认需要恢复的表首先,需要确认需要恢复的表名、数据库名、数据文件名等信息。可以通过查看备份文件、数据库或日志记录等方式获取这些信息。 停止MySQL服务在进行恢复前,需要停止MySQL服务,以避免对正在运行的数据进行写入,从而导致数据丢失或损坏。 备…

    database 2023年5月22日
    00
  • mysql 5.7 的 /etc/my.cnf 参数介绍

    MySQL是一种常用的关系型数据库管理系统,其中/my.cnf文件是MySQL的参数配置文件。在MySQL 5.7版本中,/etc/my.cnf也是一个重要的配置文件。以下是对MySQL 5.7 /etc/my.cnf参数的详细介绍: [mysqld]参数 1. log_bin log_bin是MySQL主从同步功能的关键参数。“log_bin”启用二进制日…

    database 2023年5月22日
    00
  • Facebook Messenger和Telegram Messenger的区别

    Facebook Messenger和Telegram Messenger都是流行的即时通讯工具,它们有一些共同点,不过也有一些区别。下面我将从几个方面详细讲解它们的区别。 1. 隐私和安全性 Telegram是为隐私而生的,它提供了“加密对话”的选项,使用户可以选择端对端的加密保护。它还提供了一个叫做“加密聊天”的功能,使得用户可以自建群组并对所有消息进行…

    database 2023年3月27日
    00
  • MySQL与Oracle的语法区别详细对比

    MySQL和Oracle是两种不同的关系型数据库管理系统,它们的语法有一些区别。下面是MySQL与Oracle的语法区别详细对比的攻略: 标识符 MySQL和Oracle在标识符的规则上略有不同。MySQL允许标识符包含数字、字母、下划线,并且必须以字母或下划线开头。而在Oracle中,标识符可以包含数字、字母、下划线、美元符号,并且必须以字母开头。 示例:…

    database 2023年5月21日
    00
  • SQL中distinct的用法(四种示例分析)

    SQL中的DISTINCT用于查询出不重复的数据记录。下面是四种使用DISTINCT的示例分析。 示例一:查询不重复的数据记录 SELECT DISTINCT column_name FROM table_name; 上述SQL语句中的DISTINCT用于查询出表中某一列(column_name)的不重复数据记录。例如,如果table_name表中有一个列名…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部