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

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日

相关文章

  • SpringBoot事务不回滚的解决方案

    针对SpringBoot事务不回滚的问题,我们可以通过以下几个步骤来进行解决: 1.确认事务正常工作 首先,我们需要确认事务的确不会自动回滚。可以在事务中对一个数据库表进行操作,然后将该操作后面的代码注释掉,确保事务提交的同时没有任何异常抛出,这样可以验证事务框架是否生效。 2.添加事务管理器 如果事务确实没有通过Spring事务管理器自动回滚,那么需要手动…

    database 2023年5月21日
    00
  • MySQL 索引和数据表该如何维护

    MySQL 是一款开源的关系型数据库管理系统,索引和数据表的维护对于数据库的性能、可靠性和安全性等方面都有着重要的影响。在本篇文章中,将详细讲解 MySQL 索引和数据表该如何维护,包括索引的创建、优化和删除以及数据表的备份、优化和压缩等内容。 一、MySQL 索引的维护 1. 索引的创建 在 MySQL 中,可以通过创建索引来提高查询效率。索引可以基于一个…

    database 2023年5月19日
    00
  • MySQL和MariaDB的区别

    MySQL和MariaDB都是关系型数据库管理系统(RDBMS),它们在很多方面都很相似,但也有一些不同点。在本文中,我们将探讨MySQL和MariaDB之间的不同之处。 MySQL和MariaDB的历史 MySQL是由瑞典MySQL AB公司在1995年开始开发的。该项目于2008年被Sun Microsystems收购。2010年,Sun Microsy…

    database 2023年3月27日
    00
  • MySQL子查询的使用详解下篇

    下面我来给您详细讲解“MySQL子查询的使用详解下篇”的完整攻略。 什么是MySQL子查询 MySQL子查询就是在一个查询中嵌套另一个查询,也就是将一个查询结果作为另一个查询的条件。子查询是由括号括起来的SELECT语句,可以出现在以下位置: SELECT语句中的WHERE子句; SELECT语句中的HAVING子句; INSERT语句中的SELECT子句;…

    database 2023年5月22日
    00
  • 解决php用mysql方式连接数据库出现Deprecated报错问题

    这里是解决php用mysql方式连接数据库出现Deprecated报错问题的完整攻略。 问题描述 在使用PHP连接MySQL数据库时,可能会出现以下Deprecated报错信息: Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the …

    database 2023年5月18日
    00
  • spring boot中内嵌redis的使用方法示例

    下面给出关于“spring boot中内嵌redis的使用方法示例”的完整攻略。 1. 前置条件 在使用内嵌Redis的过程中,需要保证以下两个条件已经满足: 已经安装了Redis数据库,并且Redis服务已经启动。 已经使用Spring Boot初始化了项目。 2. 引入Redis依赖 首先,我们需要在项目的pom.xml文件中引入Redis的依赖: &l…

    database 2023年5月22日
    00
  • MySQL数据库优化推荐的编译安装参数小结

    MySQL数据库优化推荐的编译安装参数小结 为什么要优化MySQL数据库的编译安装参数 MySQL是广泛使用的开源关系型数据库管理系统。MySQL的性能和稳定性取决于很多因素,如硬件配置、网络环境等,而编译安装参数也是影响MySQL性能的重要因素之一。根据实际的需求和环境,选择合适的编译安装参数能够优化MySQL的性能,提升其稳定性。 MySQL编译安装参数…

    database 2023年5月19日
    00
  • redis的删除库应用(linux)

    1、首先从linux进入redis的安装目录下 2、用redis-cli在Shell命令行下启动Redis客户端工具。 3、select 库名 进入到库下 4、flushdb 刷新当前库   redis的相应的命令: 三、命令示例:    1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX:    #在Shell命令行下启动Red…

    Redis 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部