Mysql 常见数据类型及约束

Mysql 常见数据类型及约束

最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制....

这可难受了, 然后总数被围绕着, 怎么导入数据, 导出EXCEL .... 之类的, 或者是说导入数据不方便, 怎么字段还要有类型.... 每至于此, 我其实内心是崩溃的, 但非常理解. 不理解, 还能怎么办呢.(当然, 开个玩笑)

这里引出一个问题, 为啥要舌设置类型以及约束? 因为数据类型影响着数据存储的资源占用空间和保证数据的完整性. 经常让我头疼的是, 拿到一些都是公式嵌套的Excel表, 一打开, 该进程直接凉凉, 或者是表没有唯一标识, 或是字段总在变化, 这可让我难受坏了, so, 规则的约定是非常重要的呀, 于是找了一些常用的, 做一个简单记录.

小结: 数据类型是为了"节约内存,提高计算", 数据约束是为了, 完整性(存储关系).

数据类型

常用数据类型

  • 整数: tinyint, smallint(2, 无符号, 0-32367), mediumint (3, 8388607), int...
  • 小数: decimal, float, double..
  • 字符串: char, varchar, text...
  • 时间日期: date, time, datetime
  • 枚举型: enum
  • decimal 表示浮点数, 如decimal(5,2)表示一个有5位数, 小数占2位
  • char 表示固定长度的字符串, 如char(5), 如果值是"yg", 则会自动补齐空格
  • varchar表可变长度字符串, 如, varchar(5), 值为"yg",则存储的仍是‘yg‘
  • text 表示存大文本, 一种说法是说, 字符大于4000时才会用

常见数据约束

  • Primary key: 物理上的存储顺序, 主键, 一个表设置id字段, 类型为 int unsigned.
  • Not null: 该字段不允许空值.
  • Unique: 该字段不允许值重复.
  • Default: 给该字段给定一个默认值.
  • Foreign key: 表之间的"沟通"字段, 在insert 和delete是都要先在关联表中查询.

虽然外键约束可以保证数据的有效性, 做开发时也非常方便, 但在增删查改时, 会降低数据库性能, 不能随意增删数据(好比excel的数据嵌套了其它表), 操作上的确有些难受.

附-数据类型(常用)

整数类型

类型 字节 Signed Unsigned
tinyint 1 -128 ~ 127 0 ~ 255
smallint 2 -32768 ~ 32767 0 ~ 65535
mediumint 3 -838 8608 ~ 838 8608 0 ~ 1677 7215
int 4 -21 4748 3648 ~ 21亿 0 ~ 42亿
bigint 8 很大 0 ~ 真的大

字符串

类型 字节
char 0 ~ 65535
varchar 0 ~ 65535
text 0 ~ 很大

效率来说基本是char>varchar>text,但是如果使用的是Innodb引擎的话,推荐使用varchar代替char。

char和varchar可以有默认值,text不能指定默认值。

数据库选择合适的数据类型存储还是很有必要的,对性能有一定影响. 对于int类型的,如果不需要存取负值,最好加上unsigned;对于经常出现在where语句中的字段,考虑加索引,整形的尤其适合加索引。

日期时间类型

类型 字节 演示
date 4 "2020-01-01"
time 3 "12:56:49"
datetime 8 "2020-01-01 12:12:12"
year 1 ‘2020‘
timestamp 4 2019-10-05 22:21:23

小结

  • 数据类型是为了"节约内存,提高计算", 数据约束是为了, 完整性(存储关系).
  • Mysql常用的数据类型: bit, int; decimal, float; char, varchar; date, time, date time; enum...
  • 尽量使用占位空间小的类型, 同时为提高查询效率, 可建立合适的索引.
  • Mysql常见字段约束: Primary key; Not null; Unique; Default; Foreign key.

原文地址:https://www.cnblogs.com/chenjieyouge/p/11626008.html

时间: 2024-08-02 07:35:54

Mysql 常见数据类型及约束的相关文章

mysql 常见数据类型

---恢复内容开始--- MySQL常见的数据类型 一.数据类型是什么? 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 有一些数据是要存储为数字的,数字当中有些是要存储为整数.小数.日期型等... 二.MYSQL常见数据类型 MySQL支持多种类型,大致可以分为四类:数值型.浮点型.日期/时间和字符串(字符)类型. 1.数值类型 MySQL支持所有标准SQL数值数据类型. 这些数值类型包括严格数值数据类型(INTEGER.SMALLIN

mysql常见数据类型

mysql常见数据类型 1.数值型 1.1.整型 特点: a.如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加 unsigned关键词 b.如果插入的数值超出了整型的范围,会报 out of range 异常,并且插入临界值 c.如果不设置长度,会有默认的长度 d.长度代表了显示的最大宽度,如果不够用会用0在左边填充,但必须搭配 zerofill 使用! 1.2.定点型 1.3.浮点型 原文地址:https://www.cnblogs.com/xiao-yuge/p/1260

数据库常见数据类型和约束

常用数据类型 MYSQL数据库支持多种类型,大致可以分为三个类型:数值型.时间/日期型和字符型 在这里就列举一些我们常用的数据类型 1.数值型 表示整数型数据类型(tinyint.smallint.mediumint.int)  浮点型数据类型(float.double) 用法: 1).整形   ( 学号) 区别为存储大小不同,取值范围不同 tinyint(m)  取值 [-128,127] tinyint(m)  unsigned(可省略) zerofill   取值 [0,255] m 定义

MySql常见数据类型,SQL执行顺序,条件语句,转储,查看表中字段属性

数据类型: 1 数字: Tinyint:小数据 用于保存一些范围的整数数值范围 有符号: -128-127 无符号: 0-255 int 整数 数据类型用于保存一些范围的整数数值范围 有符号: -2147483648--2147483647 无符号: 0-4294967295 Bigint 大整数 数据类型用于保存一些范围的整数数值范围: 有符号: -9223372036854775808--9223372036854775807 无符号: 0-18446744073709551615 floa

MySQL常见的数据类型

不多说,直接上干货! MySQL常见的数据类型 一.数据类型是什么? 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 有一些数据是要存储为数字的,数字当中有些是要存储为整数.小数.日期型等... 二.MYSQL常见数据类型 MySQL支持多种类型,大致可以分为四类:数值型.浮点型.日期/时间和字符串(字符)类型. 1.数值类型 MySQL支持所有标准SQL数值数据类型. 这些数值类型包括严格数值数据类型(INTEGER.SMALLINT.

存储引擎,MySQL中的数据类型及约束

存储引擎,MySQL中的数据类型及约束 一.存储引擎 1.不同的数据应该有不同的处理机制 2.mysql存储引擎 ? Innodb:默认的存储引擎,查询速度叫myisam慢,但是更安全 ? myissam:mysql老版本用的存储引擎 ? memory:内存引擎(数据全部存在内存中) ? blackhole:无论存什么,都立马消失(黑洞) 数据库的增删改查已经介绍完毕,今天从表的详细操作开始讲解 二.创建表的完整语法 #语法: create table 表名( 字段名1 类型[(宽度) 约束条件

MySQL入门(引擎、数据类型、约束)

MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事务, 行级锁, 外键 create table t11(id int)engine=innodb; # myisam: 查询效率要优于innodb, 当不需要支持事务, 行级锁, 外键, 可以通过设置myisam来优化数据库 create table t12(id int)engine=myisam

MySQL的外键约束:Cascade/Restrict/No action/SET NULL

转自:http://blog.csdn.net/cnjsnt_s/article/details/5548280 具体使用时需要参考:http://blog.csdn.net/codeforme/article/details/5539454 (注:没看很明白,囧.) MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY [index_nam

MySQL常见错误代码说明

附:MySQL常见错误代码说明 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间 1022:关键字重复,更改记录失败 1023:关闭时发生错误 1024:读文件错误 1025:更改名字