大家好,又见面了,我是你们的朋友全栈君。 前言: 要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。...浮点型主要有 float,double 两个,浮点型在数据库中存放的是近似值,例如float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位,...2.字符串类型 字符串类型也经常用到,常用的几个类型如下表: 其中 char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。...3.日期时间类型 MySQL支持的日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可...总结: 本篇文章主要介绍了 MySQL 中常用的字段类型,平时用到的字段类型基本都在这里了,以一张思维导图总结如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
MySQL索引类型: 1、普通索引 最基本的索引,它没有任何限制,用于加速查询。 创建方法: a. ...如果是组合索引,则列值的组合必须唯一。 创建方法: a. ...一般是在建表的时候同时创建主键索引。 创建方法: a. ...(例如:name(11)) 4、组合索引 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。...fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。...主表(父表):对于两个具有关联关系的表而言,相关联字段中的主键所在的那个表即是主表。 从表(子表):对于两个具有关联关系的表而言,相关联字段中的外键所在的那个表即是从表。...非空约束 语法规则:字段名 数据类型 not null 创建表格后 alter table test modify 段名 数据类型 not null; 四.唯一性约束(Unique) 指定唯一约束 唯一约束...语法规则:字段名 数据类型 Uniquel 再所有列创建完毕后:unique (字段名称) 创建表格后 alter table test modify 段名 数据类型 Unique; 五.默认约束(Default...语法规则: 字段名 数据类型 Dfault 默认值 创建表格后 alter table test modify 段名 数据类型 Dfault 默认值;
数据类型 一、数据类型分类 mysql 中的数据类型分类如下,其中红色字体的为常用的类型: 二、数值类型 mysql 中表的建立属性列:列名称 数据类型,例如 num int,它与我们平时写的语言数据类型是倒过来的...1. tinyint 接下来我们创建一个只有 tinyint 类型的表,然后分别插入 1 和 128,会发现 128 插入失败,因为越界插入了,超出类型范围: 说明: 在 MySQL 中,整型可以指定是有符号的和无符号的...如果我们在上面的表格中插入大于两个字符的数据,如下,是会越界插入的: 这也就说明了一个问题,如果我们向 mysql 特定类型中插入不合法的数据,mysql 一般都是直接拦截我们,不让我们做对应的操作!...反过来,如果我们已经有数据被成功插入到 mysql 中,一定插入的时候是合法的!...所以,mysql 中,一般而言,数据类型本身也是一种约束,所谓约束,就是倒逼用户尽可能进行正确的插入,约束的是用户,这样就能保证数据库中的数据是可预期的,完整的。
MYSQL数据库-数据类型 零、前言 一、数据类型分类 二、数据库的字段属性 三、数值类型 1、tinyint类型 2、bit类型 3、float类型 4、decimal类型 四、字符串类型 1、char...类型 2、varchar类型 3、char和varchar比较 4、日期和时间类型 5、enum和set类型 零、前言 本章主要讲解学习MYSQL数据库的数据类型 一、数据类型分类 数据类型示图:...二、数据库的字段属性 所谓字段属性就是用来修饰数据类型的 主要的字段属性: UnSigned:无符号的,声明了该列不能为负数 ZEROFILL:0填充的,不足位数的用0来填充 , 如int...较大的数据 8个字节 float 浮点数 4个字节 double 浮点数 8个字节 decimal 字符串形式的浮点数,一般用于金融计算 1、tinyint类型 数值越界测试: 说明: 在MySQL...,占用空间4个字节 示例:小数float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入 示例:如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数
5.日期类型 5.1 datetime类型 与时区无关的, 占用8个字节的存储空间 datetime(6) 用于存储毫秒级别 时间范围是1000-01-01 00:00:00 到 9999-12-31...23:59:59 5.2 timestamp类型 本质存储的是时间戳, 使用int存储, 占用了4个字节....时间范围是1970-01-01到2038-01-19 类型显示依赖于所指定的时区 5.3 date类型和time类型 date类型存储常用于生日的存储....相比于字符串/datetime/int存储要更少, 只需要使用3个字节 使用date类型还可以利用日期时间函数进行日期之间的计算 时间范围: 1000-01-01到9999-12-31 不要使用字符串类型来存储日期时间数据...日期时间类型通常比字符串占用的存储空间更小 日期时间类型在进行查找过滤的时候可以利用日期来进行对比 日期时间 类型还有着丰富的处理函数, 可以方便的对时期类型进行日期计算 使用int不如使用timestamp
1.索引类型 1.1 普通索引 NORMAL: 是最基本的索引,它没有任何限制。 1.2 唯一索引 SPATIAL: 与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。...一般是在建表的时候同时创建主键索引: 1.4 组合索引: 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。...2.3 索引只是提高效率的一个因素,如果有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。...所以我们在数据库设计时不要让字段的默认值为null。 3.2 使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是包括负数的...(0,+) 超出范围取极值 2.严选/非严选 我们不推荐使用非严格模式下建立table,因为它会可能造成数据丢失的情况,所以我们必须在5.6版本中将mysql设置为严格模式。...严选情况下,数据超过他的设置范围他会报错 非严选情况下,数据超过他的设置范围不会报错,但是只存他设置大小的那一部分的数据,多余的会丢掉 3.常见的类型 1.整数型 数据类型 字节数 符号范围 有符号范围...与set 规定这个里面输入内容是什么,你可以输入他的内容,也可以输入他的索引 enum与set区别,enum只能输一个,set能输入一个或多个,且用集合的形式输入 注意: mysql会自动将字符串后面的空格删掉...所以你的数据在存储前应该先把空格处理掉 三.时间类型 year :格式YYYT data:格式YYYY-MM-DD time:格式HH:MM:SS datatime:格式YYYY-MM-DD HH:
MySQL数据库数据类型分类 在MySQL数据库中,MySQL数据类型分有四大类:数值类型、文本/二进制类型、时间日期和String类型。...以下是这四大类的具体类型: 数值类型 数值类型的范围和字节大小: tinyint类型 tinyint类型只有一个字节大小,其数据范围为:【-128,127】 有符号举例: mysql> create...bit类型 基本语法: bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。...字符串类型 char类型 语法: char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255 举例: mysql> create table tt8( ->...定长的意义是,直接开辟好对应的空间。 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。 日期和时间类型 常用的日期有如下三个: date日期: 'yyyy-mm-dd' ,占用三字节。
概述 MySQL主要包括五大数据类型: 数字、字符串、时间、其他。数据类型(data_type)是指系统中所允许的数据的类型。 MySQL数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。...数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,则相应的数据类型应该为数值类型。...如果使用错误的数据类型可能会严重影响应用程序的功能和性能,所以在设计表时,应该特别重视数据列所用的数据类型。更改包含数据的列不是一件小事,这样做可能会导致数据丢失。...因此,在创建表时必须为每个列设置正确的数据类型和长度。...所以char类型存储的字符串末尾不能有空格,varchar不限于此。
我们在此之前已经讲过MySQL分区表的原理,分区有利于管理非常大的表,它采用分而治之的逻辑,便于对数据的管理。本期我们就来进一步了解MySQL分区表,详细看一下MySQL分区表类型究竟有几个?...对分区表的请求,都会通过句柄对象转化成对存储引擎的接口调用。 MySQL支持如下几种类型的分区: 1、RANGE分区:行数据基于一个给定连续范围分区。不好理解,看例子吧。...4、KEY分区:根据MySQL内部提供的哈希函数进行分区。 5、COLUMNS分区:5.5版本开始支持,可以直接使用非整形的数据进行分区,分区根据类型直接比较而得,不需要转换为整形。...无论创建何种类型的分区,如果表中存在主键或唯一索引的列,则分区列必须是主键或唯一索引的一部分。索引列可以是null值。在没有主键和唯一索引的表中可以指定任意列为索引列。...当然,分区技术的应用远不止与此,区分各种分区表的类型并加以利用,我们才能更好地使用MySQL数据库查询和利用各种各样的数据。
show create table admin; admin是table名,这样就可以看见admin表创建时的语句了。...修改engine类型: alter table admin engine=ndbcluter; 将admin的engine类型改为ndbcluster,因为我的admin是放在mysql cluster...上的。
1.2 数据类型 MySQL中的数据类型是强类型 1.2.1 数值型 1、 整型 整形 占用字节数 范围 tinyint 1 -128~127 smallint 2 -32768~32767 mediumint...1.2.2 字符型 在数据库中没有字符串概念,只有字符,所以数据库中只能用单引号 数据类型 描述 char 定长字符,最大可以到255 varchar 可变长度字符,最大可以到65535 tinytext...text系列的类型在表中存储的是地址,占用大小大约10个字节 ? 一个记录的所有字段的总长度也不能超过65535个字节。 ?...1,第二个值是2,以此类推,枚举值在数据库存储的是整形数字。...true和false在数据库中对应的是1和0 mysql> create table stu18( -> flag boolean -> ); Query OK, 0 rows affected
枚举类型使用陷阱 超级不推荐在mysql中设置某一字段类型为enum,但是存的值为数字,比如‘0’,‘1’,‘2’; 解释1:你会混淆,因为enum可以通过角标取值,但它的角标是从1开始,对于不熟悉这个字段的人这里会出错...“空”(不是null) 解释3:enum类型对于php等弱语言类型的支持很差,弱语言类型打引号和不打引号的值可能是同一类型,但是对于mysql中enum类型的字段来说,那就不一定是一回事了 结论:总之,...不要拿mysql的enum类型取存一些数字;如果你一定要使用这个字段去存数字,请把这个字段定义为int,然后在java代码中使用枚举类做一个对于这个字段值范围的一个限定!...; * Mysql中枚举类型Color定义取值的顺序是RED、GREEN、BLUE,因此,当这三个取值持久化到数据库表时,取值分别是0、1、2; * 意思就是我们这里存往数据库的数据是...0、1、2这样的数字,而不是RED、GREEN、BLUE字符串, 但是Mysql数据库中定义的是RED、GREEN、BLUE,并没有其它值所以报错 解决:在entity中使用@Enumerated(EnumType.STRING
安装环境: 操作系统版本:RHEL 6.5 版本:MYSQL 5.5 常见的信息种类: 数值型:一般用于体重、身高、成绩、工资 字符型:一般用于姓名、工作单位、通信地址 枚举型:一般用于兴趣爱好...、性别 日期时间型:出生日期、注册日期 一、数值类型 1.1整数型 PS:工作中一般使用INT类型就够了 关于整数型字段 -使用UNSIGNED修饰时,对应的字段只保存正数 -数值不够指定宽度时...,在左边填空格补位 -宽度仅仅是显示宽度,存数值的大小由类型决定 -使用关键字ZEROFILL时,填0代替空格补位 -当字段值与类型不匹配时,字段值作为0处理 -数值超出范围时,仅保存最大/最小值...表字段的设置 从左至右依次为: 字段名 | 字段类型 | 是否为空 | 是否为主键 | 默认值 | 描述信息 1.2 浮点类型 关于浮点型字段 -定义格式:float(总宽度,小数位数) -...自动截断超出指定字符数的数据 3、大文本类型:text/blob -字符数大于65535存储时使用 mysql> create table t3( -> name char(10),
位精度(8字节) m总个数,d小数位 设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。...3、定点数 浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。...3.char类型的字符串检索速度要比varchar类型的快。...6.日期时间类型 MySQL数据类型 含义 date 日期 ‘2008-12-2’ time 时间 ’12:25:36′ datetime 日期时间 ‘2008-12-2 22:06:44’ timestamp...数据类型的属性 MySQL关键字 含义 NULL 数据列可包含NULL值 NOT NULL 数据列不允许包含NULL值 DEFAULT 默认值 PRIMARY KEY 主键 AUTO_INCREMENT
数据库分类 关系型——SQL MySQL,Oracle,Sql Server,DB2,SQLlite 特点:通过表和表之间,行和列之间的关系进行数据存储 非关系型——NoSql(not only...sql) Redis,MongDB 非关系型数据库,对象存储,通过对象的自身的属性来决定 DBMS-数据库管理系统 数据库的管理软件——用于管理数据,维护,获取 MySql本质是一个数据库管理系统...,是最好的关系型数据库管理系统(RDBMS)应用软件之一 MySQL 关系型数据库管理系统,开源,把数据保存在不同的表中而不是将所有数据放在一个大仓库内,使用SQL语言 适用于中小型网站,或大型网站——...集群 版本 5.7 稳定 8.0 安装步骤 官方下载压缩包版 地址 解压后,配置变量(把bin目录添加到系统变量的path中) 在mysql文件目录下添加配置文件my.ini(Linux系统会自动生成)...启动管理员模式下的CMD,运行以下命令 在bin目录下安装mysql服务——mysqld -install 初始化数据库文件——mysqld –initialize-insecure –
三、数据库结构的优化 1、选择合适的数据类型 1、数据类型选择 数据类型的选择,重点在于“合适”二字,如何确定选择的数据类型是否合适了? 1、使用可以存下你的数据的最小的数据类型。...(时间类型数据:可以使用varchar类型,可以使用int类型,也可以使用时间戳类型) 2、使用简单的数据类型,int要比varchar类型在mysql处理上简单。...(int类型存储时间是最好的选择) 3、尽可能的使用not null定义字段。...(innodb的特性所决定,非not null的值,需要额外的在字段存储,同时也会增加IO和存储的开销) 4、尽量少用text类型,非用不可时最好考虑分表。...结论: 1、unix_timestamp()函数是将日期格式的数据转换为int类型 2、FROM_UNIXTIME(timestr)函数是将int类型转换为时间格式 案例二:ip地址的存储 在我们的外部应用中
在数据库中建表时,需要给数据定义一个数据库中的数据库类型,当需要给String类型定义一个数据库中的类型时,可以看见有两个选择,一个是varchar,另一个是char,有很多人不清楚两者的区别,包括自己在内...也就是说当将两者的长度都定为10,然后向其中存入一个字符串“good”,显然字符串“good”的长度不到10,当定义类型为char类型时,存入的长度依旧是10,由字符串“good”和后面的6个空格组成。...当我们定义为varchar类型时,长度就变为了4,“good”字符串原有的长度。 在获取数据时,char类型的数据需要使用trim()方法,去掉字符串后面多余的空格。...2、存储时,char类型的数据要比varchar类型的数据速度更快,因为其长度固定,方便存储于查找。...3、从存储空间的角度讲,因为插入类型数据的长度固定,有时候需要用空格进行占位,所以存储数据时占用更大的空间。而varchar却不会。
大家好,又见面了,我是你们的朋友全栈君。 在学习MySQL之前,首先需要了解数据库和SQL。 如果您已经知道数据库和SQL,那么可以直接跳转到下一章节的学习。 1....数据操作语言包含允许您更新和查询数据的语句。 数据控制语言允许授予用户权限访问数据库中特定数据的权限。 现在,您了解数据库和SQL,现在是时候回答下一个问题了… 3. MySQL是什么?...My是MySQL的联合创始人 – Monty Widenius 的女儿的名字。MySQL是My和SQL的组合,这就是MySQL命名的由来。...MySQL的官方网址: http://www.mysql.com/ ,MySQL的社区版本下载地址为: http://dev.mysql.com/downloads/mysql/ ,在写本文时,当前的MySQL...MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。
领取专属 10元无门槛券
手把手带您无忧上云