首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中常用类型长度

MySQL中的数据类型及其长度是数据库设计的重要组成部分,它们决定了数据的存储方式和存储容量。以下是一些MySQL中常用的数据类型及其长度说明:

数值类型

  1. 整型
    • TINYINT:占用1字节,范围是-128到127(有符号),或0到255(无符号)。
    • SMALLINT:占用2字节,范围是-32768到32767(有符号),或0到65535(无符号)。
    • MEDIUMINT:占用3字节,范围是-8388608到8388607(有符号),或0到16777215(无符号)。
    • INTINTEGER:占用4字节,范围是-2147483648到2147483647(有符号),或0到4294967295(无符号)。
    • BIGINT:占用8字节,范围是-9223372036854775808到9223372036854775807(有符号),或0到18446744073709551615(无符号)。
  • 浮点型
    • FLOAT:单精度浮点数,占用4字节。
    • DOUBLEDOUBLE PRECISION:双精度浮点数,占用8字节。
  • 定点型
    • DECIMALNUMERIC:用于存储精确的小数值,长度可指定。

字符串类型

  1. 定长字符串
    • CHAR:长度固定,最大长度为255个字符。
  • 变长字符串
    • VARCHAR:长度可变,最大长度为65535个字节(实际限制取决于字符集)。

日期和时间类型

  1. DATE:存储日期,格式为'YYYY-MM-DD'。
  2. TIME:存储时间,格式为'HH:MM:SS'。
  3. DATETIME:存储日期和时间,格式为'YYYY-MM-DD HH:MM:SS'。
  4. TIMESTAMP:存储日期和时间,与时区相关,格式也为'YYYY-MM-DD HH:MM:SS'。

二进制数据类型

  1. BINARY:定长二进制字符串。
  2. VARBINARY:变长二进制字符串。
  3. BLOB:用于存储大量二进制数据。

其他类型

  1. ENUM:枚举类型,预定义一组可能的值。
  2. SET:集合类型,预定义一组可能的值,允许多选。
  3. TEXT:用于存储大量文本数据。
  4. BLOB 类型(如 TINYBLOB, MEDIUMBLOB, LONGBLOB):用于存储不同大小的二进制大对象。

应用场景

  • 整型和浮点型常用于存储数值数据,如用户ID、价格、评分等。
  • 字符串类型常用于存储文本数据,如用户名、地址、描述等。
  • 日期和时间类型常用于存储时间相关的数据,如出生日期、创建时间等。
  • 二进制数据类型常用于存储图片、音频、视频等文件。

遇到的问题及解决方法

问题:为什么使用VARCHAR而不是CHAR

原因VARCHAR是变长字符串,只占用实际存储的字符长度加上一个或两个字节的额外空间(取决于MySQL版本和配置)。而CHAR是定长字符串,无论实际存储多少字符,都会占用指定的长度。因此,使用VARCHAR可以节省存储空间,特别是当字符串长度变化较大时。

解决方法:在设计数据库表时,如果字段的字符串长度不确定或变化较大,应优先考虑使用VARCHAR类型。

参考链接MySQL官方文档 - 数据类型

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python 学习入门(3)—— 常用类库

    Tkinter———— Python默认的图形界面接口。 Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对 Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。 Python Imaging Library(PIL)————python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。   Pmw(Python megawidgets)Python超级GUI组件集————一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。   PyXML———— 用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:   xmlproc: 一个符合规范的XML解析器。   Expat: 一个快速的,非验证的XML解析器。 还有其他   和他同级别的还有 PyHtml PySGML   PyGame———— 用于多媒体开发和游戏软件开发的模块。   PyOpenGL———— 模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。   NumPy、NumArray和SAGE———— NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的低层代码使用C来编写,所以速度的优势很明显。NumPy是Numarray的后继者,用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代 Magma, Maple, Mathematica和Matlab 这类工具。   MySQLdb模块———— 用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。   PyGTK ———— 用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的那个库。有了它,你完全可以自信的尝试自己制造Photoshop   PyQt ———— 用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是 Scintillar编辑器类的Qt接口。   PyMedia ———— 用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。   Psyco ———— 一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。   Python-ldap ———— 提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。   smtplib模块 ———— 发送电子邮件。   ftplib模块 ———— 定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自己的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。   xmpppy模块 ———— Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。   下面这些就不详细介绍,只列出名字和功能   adodb ———— ADO数据库连接组件   bsddb3 ———— BerkeleyDB的连接组件   chardet ———— 编码检测   Cheetah ———— 构建和扩充任何种类的基于文本的内容   cherrypy ———— 一个WEB framework   ctypes ——

    03

    【程序源代码】JavaWeb权限(RBAC)内容管理框架

    SpringBoot2+Layui2.5.6+Thymeleaf++Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置等一系列常用的模块,整套系统一键生成所有模块(包括前端UI),一键实现CRUD,简化了传统手动抒写重复性代码的工作。同时,框架提供长大量常规组件,如上传单图、上传多图、上传文件、下拉选择、复选框按钮、单选按钮,城市选择、富文本编辑器、权限颗粒度控制等高频使用的组件,代码简介,使用方便,节省了大量重复性的劳动,降低了开发成本,提高了整体开发效率,整体开发效率提交80%以上,JavaWeb框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    03

    【Java 基础】Java 数据类型和 MySql 数据类型对应表

    MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT 3 TINYINT UNSIGNED java.lang.Integer -6 SMALLINT 5 SMALLINT UNSIGNED java.lang.Integer 5 MEDIUMINT 8 MEDIUMINT UNSIGNED java.lang.Integer 4 BIT 1 BIT java.lang.Boolean -7 BIGINT 20 BIGINT UNSIGNED java.math.BigInteger -5 FLOAT 4+8 FLOAT java.lang.Float 7 DOUBLE 22 DOUBLE java.lang.Double 8 DECIMAL 11 DECIMAL java.math.BigDecimal 3 BOOLEAN 1 同 TINYINT ID 11 PK (INTEGER UNSIGNED) java.lang.Long 4 DATE 10 DATE java.sql.Date 91 TIME 8 TIME java.sql.Time 92 DATETIME 19 DATETIME java.sql.Timestamp 93 TIMESTAMP 19 TIMESTAMP java.sql.Timestamp 93 YEAR 4 YEAR java.sql.Date 91 对于 bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在 java 中对应 byte[]数组。

    03
    领券