作为专门用来存储数据的 数据库,MySQL 提供了丰富的数据类型,覆盖绝大多数使用场景
上面表格中有符号和无符号写反了,[]包含的内容是可选的,默认是无符号类型的,无符号的需要在类型后面跟上unsigned
如果是GBK编码,则一个中文汉字占2个字节,英文占1个字节 如果是UTF8编码,则一个中文汉字占3个字节,而英文字母占1字节。 比如定义某个字段数据类型为:varchar(32),表示这个可以存储 32 个字符,此时表示的是字符,所以跟中英文无关,也就是该字段可以存储 32 个中文,或者是 32 个英文,或者是 32 个中文和英文的混搭都行。但如果字符数超过 32 个的话就会报错。
Oracle数据库是业界的翘楚,各行各业拥有大量的Oracle DB的DBA,本文尝试通过将Oracle与MySQL数据库的架构、安全、模式对象、数据类型及数据存储进行对比,以方便熟悉Oracle数据库的人可以快速了解MySQL。
我们知道在MySQL中有3种类型可以表示实数,分别是float,double和decimal。关于如何合理得使用这三种类型,网上的答案也层出不穷。但是究竟该选择哪一种类型,好像并没有统一的答案,接下来,将通过一个例子来说明什么情况下选择float,什么情况下选择double,什么情况下选择decimal。相信对这个例子的剖析之后,你就会明白什么时候用什么样的类型
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。 许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或者用零填补(ZEROFILL)。
MySQL支持多种数据类型,大致可以分为三类,分别是数值类型、日期和时间类型、字符串(字符)类型。
案例:在tb_article文章表中添加一个addtime字段,类型为date(年-月-日)
MySQL数据类型 MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。 数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、浮点小数数据类型FLOAT和DOUBLE、定点小树类型DECIMAL。 日期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。 字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。 1.1 整数类型 数值型数
在MySQL数据库中,MySQL数据类型分有四大类:数值类型、文本/二进制类型、时间日期和String类型。以下是这四大类的具体类型:
对于数据类型分类,这里简单分为数值类型(如BIT,BOOL,INT),文本、二进制类型(如CHAR,VARCHAR),时间日期(DATE),String类型(如ENUM类型),这里简单了解一下即可
MySQL支持多种数据类型:数字类型,日期和时间类型,字符类型,空间类型和JSON类型。
mysql 中表的建立属性列:列名称 数据类型,例如 num int,它与我们平时写的语言数据类型是倒过来的!
MYSQL数据库-数据类型 零、前言 一、数据类型分类 二、数据库的字段属性 三、数值类型 1、tinyint类型 2、bit类型 3、float类型 4、decimal类型 四、字符串类型 1、char类型 2、varchar类型 3、char和varchar比较 4、日期和时间类型 5、enum和set类型 零、前言 本章主要讲解学习MYSQL数据库的数据类型 一、数据类型分类 数据类型示图: 📷 二、数据库的字段属性 所谓字段属性就是用来修饰数据类型的 主要的字段属性: UnSigned
无符号:表示存储的数据在当前字段中,没有负数(只有正数,例如 tinyint 区间为 0~255)
schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。 主要存贮的是数字类型数据,常用 INT 类型存储 它们的区别如下表所示:
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。 概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。 由MySQL支持的列类型列在下面。下列代码字母用于描述中:M指出最大的显示尺寸。最大的合法的显示尺寸是 255 。 D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。 方括号(“[”和“]”)指出可选的类型修饰符的部分。注意,如果你指定一个了为ZEROFILL,MySQL
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。 概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。 由MySQL支持的列类型列在下面。下列代码字母用于描述中:M指出最大的显示尺寸。最大的合法的显示尺寸是 255 。 D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。 方括号(“[”和“]”)指出可选的类型修饰符的部分。注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。 TINYINT[(M)] [UNSIGNED] [ZEROFILL] 一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。 SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。 MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。 INT[(M)] [UNSIGNED] [ZEROFILL] 一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。 INTEGER[(M)] [UNSIGNED] [ZEROFILL] 这是INT的一个同义词。 BIGINT[(M)] [UNSIGNED] [ZEROFILL] 一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到 18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成, 因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意, 当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数), 如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数, 其精度可以是<=24,对一个双精度浮点数,是在25 和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。 FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中, 这是一个真正的浮点值。 在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。 FLOAT[(M,D)] [ZEROFILL] 一个小(单精密)浮点数字。 不能无符号。 允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。 M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。 DOUBLE[(M,D)] [ZEROFILL] 一个正常大小(双精密)浮点数字。 不能无符号。 允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。 M是显示宽度而D是小数位数。 没有一个参数的 DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。 DOUBLE PRECISION[(M,D)] [ZEROFILL] REAL[(M,D)] [ZEROFILL] 这些是DOUBLE同义词。 DECIMAL[(M[,D])] [ZEROFILL] 一个未压缩(unpack)的浮点数字。 不能无符号。 行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。 小数点,并且对于负数,“-”符号不在M中计算。 如果D是0,值将没有小数点或小数部分。 DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的 DECIMAL列, 实际的范围可以通过M和D的选择被限制。 如果D被省略,它被设置为0。如果M被省掉,它被设置为10。 注意,在MySQL3.22 里,M参数包括符号和小数点。 NUMERIC(M,D) [ZEROFILL] 这是DECIMAL的一个同义词。 DATE 一个日期。支持的范围是'1000-01-01'到'9999-12-31'。 MySQL以'YYYY-MM-DD'格式来显示DATE值, 但是允许你使用字
在使用flask_sqlachemy时,给price字段选择了Float类型,数据库用的mysql,生成数据库表后,发现
为什么会有这个总结,因为在测试Mysql的字符串函数时发现,char 和 varchar 有些不同,网上搜索一番发现了各种char、varchar、nvarchar 类型的对比,还有一些奇奇怪怪的这里就不说了,然后我就开始了对这几种类型字符串的测试,接着就悲剧了,测试多次之后发现创建为nvarchar类型的字段居然是varchar类型的,再查询官方文档后发现,当前版本(5.7.21)的Mysql根本就没有nvarchar类型的字段,白白浪费了时间,所以要把Mysql支持的字段列举在这里,方便后面查找使用。
一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。 整数类型 字节 范围(有符号) 范围(无符号) 用途 TINYINT
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT
1.mysql数据类型 (1)数值数据类型:包括整数类型tinyint、smallint、mediumint、int、bigint,浮点小数类型float和double,定点小数类型decimal。 (2)日期/时间类型:包括year、time、date、datetime和timestamp。 (3)字符串类型:包括char、varchar、binary、varbinary、blob、text、enum和set等 (4)二进制类型:包括bit、binary、varbinary、tinyblob、blob、m
上次小编已经将SQL的三大操作(库操作,表操作以及数据操作)简单介绍完啦,后面还会有相关的列类型和列属性以及索引...今天就先来介绍MySQL的列类型啦,说到SQL的数据类型,其实有很多和C语言差不多的,比如整数类型,浮点数类型,字符串类型等等,当然其中也会有改动,都有各自的特点。
由MySQL支持的列类型列在下面。下列代码字母用于描述中:M 指出最大的显示尺寸。最大的合法的显示尺寸是 255 。D 适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。方括号(“[”和“]”)指出可选的类型修饰符的部分。注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。TINYINT[(M)] [UNSIGNED] [ZEROFILL]一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。SMALLINT[(M)] [UNSIGNED] [ZEROFILL]一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。INT[(M)] [UNSIGNED] [ZEROFILL]一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。INTEGER[(M)] [UNSIGNED] [ZEROFILL]这是INT的一个同义词。BIGINT[(M)] [UNSIGNED] [ZEROFILL]一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25
2.1工具下载:【https://download.csdn.net/download/feng8403000/20419353】
1:取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~255)。
MySQL支持很多系列的SQL数据类型:数字类型(numeric types)、日期和时间类型(date and time types)、字符串类型(字符和字节)、特殊类型和JSON数据类型。
当我们插入一个超过范围的数据时,我们会发现会插入失败,由此我们可以得到一个结论:我们成功插入到MYSQL中的数据,一定是合法的。这样能够约束程序员尽可能的插入正确的数据。
整型类型中,按照取值范围和存储方式不同,分为tinyint,smallint,mediumint,int和bigInt这五个类型。如果超出类型范围的操作,会发生”Out of range”错误提示。 对于整型数据,MySQL还支持在类型后面的小括号内指定显示宽度,例如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。一般配合zerofill使用,顾名思义,zerofill就是用”0”填充的意思,也就是在数字位数不够的空间用“0”填满。
存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的
上一章节内容主要介绍了一些MySQL中对表和库的增删改查操作,对于上一章中对与表中字段的一些定义进行说明,本章主要介绍关于数据库类型的一些定义。
指在数据显示的时候,最长可以显示的位数。 如果需要始终以最大长度显示,可以使用 zerofill 属性。 注意: 使用了 zerofill,一定是无符号整型。因为从左到右 0 填充。
我们要把现实世界中的各种信息转换成计算机能理解的东西,这些转换后的信息就形成了数据。例 如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还 包括图形、图像、动画、影像、声音等多媒体数据。但使用最多、最基本的仍然是文本数据。
SQL语法预览: 创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】 插入字段值:【insert into表名 values(值1,值2,...,值n);】 查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】 详解: 接上期... 二、选择数据类型的方法 MySQL提供大量的数据类型,为了优化存储,提高数据库性能,在任何情况下都应使用最精确的类型。即选择占用存储空间最少的类型。 1.整数和浮点数 有小数用浮点数,没有就用整数。但注意浮点数存储
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。
查看表的详细信息如下(在创建表的时候没有指定其长度,但是每一列都有自己默认的长度):
取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用。
(1)数字类型最大支持位数:int 9 位,bigint 18 位,flat 38 位,double 82 位,char 255 位、varchar 255 位
尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。
0.一个汉字占多少字节与编码有关: UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节 1.varchar(n),char(n)表示n个字符,无论汉字和英文,MySQL都能存入n个字符,仅是实际字节长度有所区别
使用Python搭建的web服务,后台读取MySQL数据后,需要将数据序列化为json串,返回给前端。但是如果MySQL的字段是decimal类型,序列化为json串就会遇到麻烦。会报如下错误 raise TypeError(repr(o) + " is not JSON serializable") TypeError: Decimal('0') is not JSON serializable HTTP/1.0" 500 网上有一些解决方案,但是如果你对于数据精度的要求没那么高的话,完全可以把MySQL中的decimal字段的类型改为float,float类型是可以直接进行json序列化的。这样只修改数据库,不修改代码,就可以修复问题。参考下图。另外,设置float类型的时候,小数点后一定要设置,可以设置为4,表示带4位小数。否则默认可能是带0位小数,就不准确了。如果你insert的数据类似‘0.022’这种,在数据库中就变成0了。
要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。
数据库系列数据类型整理 一、Oracle 数据库 (11g) 1.1 oracle 数据库的基础数据类型 1.2 字符型 1.3 数值型 1.4 日期型 1.5 其他类型 二、MySQL数据库 (5.5) 2.1 整形 2.2 浮点型 2.3 日期和时间型 2.4 字符类型 2.5 mysql 数据库常用类型总结 学到哪里整理到哪里 一、Oracle 数据库 (11g) 1.1 oracle 数据库的基础数据类型 字符型 数值型 日期型 其他类型 (存储大对象数据类型) 1.2 字符型 比如我们要存储学校
首先数据选择有几个简单原则: 更小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存 0~200,tinyint unsigned 更好。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和 CPU 缓存,并且处理时需要的 CPU 周期也更少。 简单就好。简单数据类型的操作通常需要更少的 CPU 周期。例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较 比 整型比较更复杂。这里有两个例子:一个是应该使用 MySQL 内建的类型(date, time, d
领取专属 10元无门槛券
手把手带您无忧上云