数据库建表时,对于一些可填可不填的字段,我们应该尽量把它设置为 NOT NULL.这种做法即可以提高性能,又可以在很大程度上避免空指针类的问题,好处颇多. 1.节省空间 NULL 列需要更多的存储空间:需要一个额外字节作为判断是否为 NULL 的标志位. 2.空指针 查询时,可以在一定程度上减少 NullPointerException. 3.减少因为空值而出现的计算错误 如果有 Null column 存在的情况下,count(NULL column) 需要格外注意,NULL 值不会参与统计.…
除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL.这看起来好像有点争议,请往下看. 所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有.在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS NULL关键字. 数据库的字段ID设为NOT NULL, 仅仅说明该字段不能为NULL, 也就是说只有在INSERT I…
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错. AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1. PRIMARY KEY关键字用于定义列为主键. 您可以使用多列来定义主键,列间以逗号分隔.…
MySQL字段属性应该尽量设置为NOT NULL 除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL.这看起来好像有点争议,请往下看. 空值("") 和 "NULL" 的概念: 1)空值是不占用空间的 2)MySQL中的NULL其实是占用空间的 所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有. NULL不能简单=判断 其次,在数据库里是…
数据类型 二.MySQL支持的数据类型 数值类型.日期类型.字符串类型 1.数值类型 1)整数类型 tinyint.smallint.mediumint.int和bigint 2)zerofill属性 配合int(数字)来用,表示显示的时候一个显示宽度 3)主键 主键可以唯一标识某条记录的一个字段或者多个字段 create table 表名(字段名称 类型 primary key,....); create table 表名(字段名称1 类型,....,primary key(字段名称1));…
mysql数据库优化课程---4.mysql字段属性 一.总结 一句话总结: mysql字段:没有被淘汰的必然有其存在的合理性(也就是有优点),比如char类型 1.为什么char类型没有被淘汰? char相比于varchar速度快 有缺点必有优点,不然必然被淘汰 char优点:速度快 varchar优点:变长 2.zerofill? zerofill:0填充:左侧补0:不够位数则左侧补0 3.为什么mysql的服务端和客户端都用utf-8的编码? 因为浏览器现在默认都是utf-8编码 在存储过…
表操作 今日内容 1.数据类型 建表的时候,字段都有对应的数据类型 整型 浮点型 字符类型(char与varchar) 日期类型 枚举与集合 2.约束条件 primary key unique key not null foreign key 详细内容 创建表的完整语法 #语法:create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名3 类型[(宽度) 约束条件]);​#注意:1. 在同一张表中,字段名不能相同2. 宽度和约束条件可选,字…
前言: 在 MySQL 中,我们可以为表字段设置默认值,在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值.关于默认值,有些知识还是需要了解的,本篇文章我们一起来学习下字段默认值相关知识. 1.默认值相关操作 我们可以用 DEFAULT 关键字来定义默认值,默认值通常用在非空列,这样能够防止数据表在录入数据时出现错误. 创建表时,我们可以给某个列设置默认值,具体语法格式如下: # 格式模板 <字段名> <数据类型> DEFAULT <默认值>…
今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.000000"格式,导致解析失败造成的. 在mysql该字段的创建语句如下 `XXX` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, DEFAULT CURRENT_TIMESTAMP ON UPDAT…
字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或者用零填补(ZEROFILL). INT在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT.这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的.MySQL…