前言: 要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。...浮点型主要有 float,double 两个,浮点型在数据库中存放的是近似值,例如float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位,...2.字符串类型 字符串类型也经常用到,常用的几个类型如下表: 其中 char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。...3.日期时间类型 MySQL支持的日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可...总结: 本篇文章主要介绍了 MySQL 中常用的字段类型,平时用到的字段类型基本都在这里了,以一张思维导图总结如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。...,字段n] 2.自动增长 只能与primary key 联用 语法:字段 数据类型 primary key auto_increment n #n为起始位置,可以不填不填默认从1开始 二.外键约束(foreign...非空约束 语法规则:字段名 数据类型 not null 创建表格后 alter table test modify 段名 数据类型 not null; 四.唯一性约束(Unique) 指定唯一约束 唯一约束...语法规则:字段名 数据类型 Uniquel 再所有列创建完毕后:unique (字段名称) 创建表格后 alter table test modify 段名 数据类型 Unique; 五.默认约束(Default...语法规则: 字段名 数据类型 Dfault 默认值 创建表格后 alter table test modify 段名 数据类型 Dfault 默认值;
Mysql是以文件存储在我们的系统的硬盘上面,那么 (1)当我们读取写入的时候就会有磁盘IO的问题 (2)当我们存储的数据是以页单位存储,而且每页的大小是16K,那么我们要尽可能的让我们的一页数据存放的更多...表结构宽度不要太大,也就是列数不要过多,保存更可能多的行数,那么针对行数存储就会涉及到字段类型选择的问题 以下字节按照utf8来示例,一个中文占3个字节,一个数字和字母是一个字节,而且utf8是变长的...,但是int是有时间范围限制的,只能存到2038年 (5)float和decimal的选择,当我们需要存储一个精度很高的值的时候,那么我们就要存decimal,float只能保存到小数点后7位 下面是类型占用的字节数
软件项目开发周期中数据库设计 01.需求分析阶段:分析客户的业务和数据处理需求 02.概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整 03.详细设计阶段:应用三大范式审核数据库结构 04...数据库的备份 cmd进入命令行 mysqldump -u用户名 -p 数据库名称 >指定的文件 数据库的恢复 前提是必须要有对应的数据库 mysql -u用户名 -p <指定的文件 1. mysql...为DOS命令 2.在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在恢复数据库过程将会出错 关系型数据库和非关系型数据库 登录mysql mysql -h主机地址 -u用户名...数据存储路径 使用命令前:切换到MySQL数据库 数据库的安装路径 select @@basedir from dual; 数据存储路径 select @@basedir from dual; 常用数据类型...,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节. 3.日期类型 DateTime
目录: 三大范式 ER图 PowerDesigner工具 数据库设计三大范式 范式是符合某种设计要求的总结,关系型数据库中有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式...第一范式 每个字段不可再分割,数据库表中每一列都是原子项的数据。 如:下面表就不符合第一范式 为什么? 因为address列不具有原子性,还可以分割。...班主任编号都直接依赖于学号,班主任姓名和班主任年龄没有直接依赖于学号,而它依赖的是班主任编号(非主键字段); 对上表进行修改,使其符合第二范式,如下面两个表: 1、学生表 2、班主任表 注意: 在实际开发过程中,所有表的设计都必须满足第一范式要求...因为性能的优先级要高于规范的优先级(当性能和规范冲突时以性能为主),特别是电商项目中,为了满足性能要求去违背设计规范。...角色表: 权限(菜单)表: 角色权限表: PowerDesigner 这是一个建立数据库模型,生成数据库的工具。
MySQL索引类型: 1、普通索引 最基本的索引,它没有任何限制,用于加速查询。 创建方法: a.
1.索引类型 1.1 普通索引 NORMAL: 是最基本的索引,它没有任何限制。 1.2 唯一索引 SPATIAL: 与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。...所以我们在数据库设计时不要让字段的默认值为null。 3.2 使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
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...(3),5则为005 Auto_InCrement:通常理解为自增,自动在上一条记录的基础上默认+1,用来设计唯一的主键,必须是整数类型,可定义起始值和步长 NULL 和 NOT NULL:...较大的数据 8个字节 float 浮点数 4个字节 double 浮点数 8个字节 decimal 字符串形式的浮点数,一般用于金融计算 1、tinyint类型 数值越界测试: 说明: 在MySQL
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
07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是包括负数的...(0,+) 超出范围取极值 2.严选/非严选 我们不推荐使用非严格模式下建立table,因为它会可能造成数据丢失的情况,所以我们必须在5.6版本中将mysql设置为严格模式。...STRICT_TRANS_TABLES '; 方法二:直接修改配置文件; [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 并重启服务端mysql...严选情况下,数据超过他的设置范围他会报错 非严选情况下,数据超过他的设置范围不会报错,但是只存他设置大小的那一部分的数据,多余的会丢掉 3.常见的类型 1.整数型 数据类型 字节数 符号范围 有符号范围...longtext 4.enum与set 规定这个里面输入内容是什么,你可以输入他的内容,也可以输入他的索引 enum与set区别,enum只能输一个,set能输入一个或多个,且用集合的形式输入 注意: mysql
MySQL数据库数据类型分类 在MySQL数据库中,MySQL数据类型分有四大类:数值类型、文本/二进制类型、时间日期和String类型。...以下是这四大类的具体类型: 数值类型 数值类型的范围和字节大小: tinyint类型 tinyint类型只有一个字节大小,其数据范围为:【-128,127】 有符号举例: mysql> create...+ 1 row in set (0.00 sec) 温馨提示:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为...举例: mysql> create table tt3( --创建tt3表,字段有id 类型为int,a 类型为bit(8).表示有8位比特位 -> id int, -> a bit(...set:集合,“多选”类型;set('选项值1','选项值2','选项值3', ...); 该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是
概述 MySQL主要包括五大数据类型: 数字、字符串、时间、其他。数据类型(data_type)是指系统中所允许的数据的类型。 MySQL数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。...数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,则相应的数据类型应该为数值类型。...如果使用错误的数据类型可能会严重影响应用程序的功能和性能,所以在设计表时,应该特别重视数据列所用的数据类型。更改包含数据的列不是一件小事,这样做可能会导致数据丢失。...数据类型 数值类型 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128, 127) (0, 255) 小整数值 SMALLINT 2 字节 (-32 768, 32...二进制类型 类型名称 说明 存储需求 BIT(M) 位字段类型 大约 (M+7)/8 字节 BINARY(M) 固定长度二进制字符串 M 字节 VARBINARY (M) 可变长度二进制字符串 M+1
良好的逻辑设计和物理设计是高性能的基石,在进行数据库设计时,我们应该要考虑到未来将会执行的查询语句,这就需要对各种因素进行权衡。本文将会聊一聊数据库(MySQL)设计中有关数据类型优化的一些内容。...以下内容总结自《高性能 MysQL》。 选择优化的数据类型 原则 我们知道 MySQL 支持多种数据类型,通常情况下,很多数据类型都可以完成相同的工作,选择正确的数据类型对于高性能至关重要。...实数类型 实数是带有小数部分的数字,MySQL 中使用 DECIMAL 类型用于存储精确的小数,但是 CPU 不支持对 DECIMAL 的直接计算,因此 MySQL 服务器自身实现了 DECIMAL 的高精度计算...总结 想要提高 MySQL 的效率,可以做的功课非常多,数据库的数据类型优化也只是其中很小的一点,本文也只是挑出了常用的数据类型进行介绍。...大道至简,尽可能将事情保持简单总是好的,MySQL 喜欢简单,希望使用数据库的你也会喜欢简单。
MySQL数据类型 MySQL数据类型主要分为三大类:数字类型、日期和时间类型、字符串类型。...以下是一些使用MySQL数字类型进行计算的示例: 1. 整型计算 假设我们有一个表students,其中有一个整型列age。...以下是使用MySQL日期和时间类型进行操作的一些示例: 1. 日期操作 假设我们有一个表events,其中有一个日期列event_date。...在实际应用中,请根据你的具体需求和数据库结构进行操作。 三、字符串类型: CHAR:定长字符串类型,长度固定,不足部分会用空格填充。适用于存储长度固定的字符串,如身份证号、电话号码等。...总结:选择合适的数据类型可以提高数据库的性能和效率。在选择数据类型时,应根据数据的实际需求和特点进行选择。 以下是使用MySQL字符串类型进行操作的一些示例: 1.
好的数据库规范有助于减少软件实现的复杂度,降低沟通成本,本铁律主要涵盖了建库建表、建索引、写 SQL、ORM 映射等方面的处理约定。 1.建库铁律 ? 2.建表铁律 ?...设置合适的字符存储长度,不但可以节约数据库表空间和索引存储,更重要的是能够提升检索速度。 3.建索引铁律 ? 4.写SQL铁律 ? 5.ORM映射铁律 ?
我们在此之前已经讲过MySQL分区表的原理,分区有利于管理非常大的表,它采用分而治之的逻辑,便于对数据的管理。本期我们就来进一步了解MySQL分区表,详细看一下MySQL分区表类型究竟有几个?...MySQL支持如下几种类型的分区: 1、RANGE分区:行数据基于一个给定连续范围分区。不好理解,看例子吧。5.5版本开始支持RANGE COLUMNS分区。...4、KEY分区:根据MySQL内部提供的哈希函数进行分区。 5、COLUMNS分区:5.5版本开始支持,可以直接使用非整形的数据进行分区,分区根据类型直接比较而得,不需要转换为整形。...无论创建何种类型的分区,如果表中存在主键或唯一索引的列,则分区列必须是主键或唯一索引的一部分。索引列可以是null值。在没有主键和唯一索引的表中可以指定任意列为索引列。...当然,分区技术的应用远不止与此,区分各种分区表的类型并加以利用,我们才能更好地使用MySQL数据库查询和利用各种各样的数据。
,且各字段名在索引名中的顺序应与索引键在索引中的索引顺序一致,并尽量包含一个类似idx的前缀或后缀,以表明期对象类型是索引。...约束等其他对象也应该尽可能包含所属表或其他对象的名称,以表明各自的关系 规则3:数据库字段类型定义 经常需要计算和排序等消耗CPU的字段,应该尽量选择更为迅速的字段,如用TIMESTAMP(4个字节,最小值...一.数据库索引 规则8:业务需要的相关索引是根据实际的设计所构造sql语句的where条件来确定的,业务不需要的不要建索引,不允许在联合索引(或主键)中存在多于的字段。...中,只有Nested Join一种Join方式,就是说mysql的join是通过嵌套循环来实现的。...,整体性能会急剧下降,这主要与Mysql内部资源的争用锁定控制有关,MyIsam用表锁,InnoDB好一些用行锁。
1.2 数据类型 MySQL中的数据类型是强类型 1.2.1 数值型 1、 整型 整形 占用字节数 范围 tinyint 1 -128~127 smallint 2 -32768~32767 mediumint...1.2.2 字符型 在数据库中没有字符串概念,只有字符,所以数据库中只能用单引号 数据类型 描述 char 定长字符,最大可以到255 varchar 可变长度字符,最大可以到65535 tinytext...不支持布尔型,true和false在数据库中对应的是1和0 mysql> create table stu18( -> flag boolean -> ); Query OK, 0 rows...1.2.6 练习题 电话号码一般使用什么数据类型存储? varchar 手机号码用什么数据类型 char 性别一般使用什么数据类型存储?...char tinyint enum 年龄信息一般使用什么数据类型存储? tinyint 照片信息一般使用什么数据类型存储?
数据库设计主键类型的选择 数据库设计表时,主键(主属性...)的数据类型选择bigint还是GUID呢 在做数据库设计时,数据库主键以及其类型的选择犹为重要。...通常数据库主键字段的类型常被设计成 int(bigint)或 GUID 或自定义的格式类型,学习总结主键数据类型的选择。...1 int (bigint)类型 (推荐) (1)简洁易懂 (2)易于排序,分页等操作处理 (3)可以通过设置sequence设置自增 (4)sequence主从表关联速度较快 2 GUID 类型 (...(2)易于定位、数据迁移( int 类型,容易造成混乱) (3)不存在重复id问题,数据合并时非常简单。
领取专属 10元无门槛券
手把手带您无忧上云