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日

相关文章

  • mysql数据库优化总结(心得)

    MySQL数据库优化总结(心得) 为什么要进行数据库优化 数据库是网站应用的核心,因此,数据库优化是网站优化中最重要的一环。数据库优化可以大大提高网站的响应速度,增强网站的稳定性和安全性,提高网站的用户体验,进而促进网站发展。 MySQL数据库优化的几个方面 1. 维护数据库结构 优化表结构:根据业务需要,尽量减少表中的字段数量和字段长度,避免使用BLOB、…

    database 2023年5月19日
    00
  • SQL 联合查询与XML解析实例详解

    SQL 联合查询与 XML 解析实例详解 背景 SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库管理系统的标准语言。XML(eXtensible Markup Language,可扩展标记语言)则是一种用于存储和传输数据的语言。本文将详细讲解 SQL 联合查询与 XML 解析的实例,以帮助读者更深入地理解这两个…

    database 2023年5月22日
    00
  • SQL 组合使用连接查询与聚合函数

    连接查询和聚合函数是 SQL 中非常重要的两个概念,它们分别用于多表查询和统计分组数据。下面我会通过两个实例来详细讲解 SQL 中如何组合使用连接查询和聚合函数。 实例一:查询订单总金额最高的客户 假设我们有两个表:customers 和 orders,它们的结构如下所示: customers | id | name | email | |—-|—-…

    database 2023年3月27日
    00
  • ChinaUnix.net技术文档手册中心

    ChinaUnix.net技术文档手册中心是一个技术文档分享和交流社区,本文将从以下几方面向你介绍如何使用该网站。 1. 注册登录 进入ChinaUnix.net技术文档手册中心的首页,可以看到右上角有注册登录按钮,点击即可进行注册或登录。若你没有账号,则可以选择注册一个账号,填写相关信息后可用该账号登录。 2. 搜索 在ChinaUnix.net技术文档手…

    database 2023年5月22日
    00
  • 浅析SQL数据操作语句

    浅析SQL数据操作语句 SQL是一种用于管理和操作关系型数据库的语言,通过SQL语句可以实现对数据库的增删改查操作。了解SQL数据操作语句,对于数据处理和数据分析有很大的帮助。下面我们来详细讲解一下SQL数据操作语句的完整攻略。 SQL语句的基本结构 SQL语句通常由关键字、操作对象和参数三部分组成。其中关键字是用来表示操作的行为,操作对象是待操作的数据表或…

    database 2023年5月21日
    00
  • mysql 数据插入优化方法之concurrent_insert

    MySQL 数据插入优化方法之 concurrent_insert concurrent_insert 是 MySQL 数据插入优化的一种方法。它可以通过将新的索引插入页分离(FSP)空闲列表,从而在插入新记录时提高并发性能。 concurrent_insert 参数设置 concurrent_insert 有三个可选参数: OFF: 禁用此功能(默认值);…

    database 2023年5月19日
    00
  • mysql-client ERROR 2002解决方法

    主机环境:debian 8 开发环境 :xampp 安装 mysql-client: #apt-get install mysql-client 启动xampp mysql环境: #/opt/lampp/./lampp startmysql 连接mysql  会报2002 错误: ERROR 2002 : Can’t connect to local MyS…

    MySQL 2023年4月12日
    00
  • ORA-06512数字或值错误字符串缓冲区太小异常详解

    ORA-06512数字或值错误字符串缓冲区太小异常,意味着在执行一个存储过程、函数或是匿名块时,Oracle数据库引擎检测到了一个异常。这个异常通常出现在一个 PL/SQL 块中,它告诉我们数据库引擎在执行一个子程序时发生了一个错误。 出现这个异常的常见原因是我们声明的字符串变量或抓取的结果集的大于程序缓冲区分配的内存空间。这可能会导致存储过程执行失败,或者…

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