在Oracle中,使用分区表是一种很自然的事情,数据库容量基本都是500G起,大小在5T以上都是很常见的。...但是在MySQL的使用中,我们几乎不使用分区表,今天有同学在群里一起沟通,我就按照我的理解做了梳理。...我觉得主要是使用模式的差异,我们不使用的主要原因是避免单库存储过大,而且分区表变更相对会比较麻烦,在MySQL侧,我们的目标是让数据库更小巧轻量一些,可能更偏TP一些,我们目前是排除了分区表的设计,而且也明确写进了开发规范...,如果按照数据类型来说,状态表,流水表和配置表,这三种类型中也就只有流水日志表的数据都是建议使用周期表的形式进行存储,方便随时扩展,表结构变更也方便T+1的变更模式 在这个基础上,可以把这个问题转化为,...问题2:日表和月表什么关系呢?月表是日表的联合查询还是数据镜像?
但是如果将一个空值的数据插入到TimesTamp类型的字段中,空值就不一定为空。此时为出现什么情况呢 我先创建了一个表。...在这个表中有两个字段:User_id(其数据类型是int)、Date(其数据类型是TimesTamp)。现在往这个表中插入一条记录,其中往Date字段中插入的是一个NULL空值。...如果往这属性的列中插入Null值的话,则系统会插入一个正整数序列。而如果在其他数据类型中,如字符型数据的列中插入Null的数据,则其插入的就是一个空值。 ...笔者更加喜欢使用空值,而不是空字符。这主要是因为针对空值这个数据类型有几个比较特殊的运算字符。如果某个字段是空字符,数据库中是利用字段名称来代替。相反,如果插入的是空值,则直接显示的是NULL。...如现在需要统计用户信息表中有电话号码的用户数量,此时就可以使用count函数、同时将电话号码作为参数来使用。因为在统计过程中,这个函数会自动忽略空值的数据。此时统计出来的就是有电话号码的用户信息。
一、MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 定长串:CHAR 接受长度固定的字符串,其长度是在创建表时指定的。...---------------------------------------------------- 注意 既然变长数据类型这样灵活,为什么还要使用定长数据类型?...支持的取值范围越大,所需存储空 间越多 与字符串不一样,数值不应该括在引号内 [在这里插入图片描述] decimal(5, 2) 表示数值总共5位, 小数占2位 tinyint 1字节(8位) MySQL
一.MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...注意 既然变长数据类型这样灵活,为什么还要使用定长数据类型? 回答:因为性能,MySQL处理定长列远比处理变长列快得多。 Text 变长文本类型存储 2、数值类型 数值数据类型存储数值。...MySQL中没有专门存储货币的数据类型,一般情况下使用DECIMAL(8, 2) 有符号或无符号 所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号 有符号数值列可以存储正或负的数值 无符号数值列只能存储正数...默认情况为有符号,但如果你知道自己不需要存储负值,可以使用UNSIGNED关键字 注意 如果将邮政编码类似于01234存储为数值类型,则保存的将是数值1234,此时需要使用字符串类型 手机号应该用什么进行存储呢
### 一,MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...它们存储串,如名字、地址、电 话号码、邮政编码等。 不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 - 定长串:char 1....MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越大,所需存储空间越多 与字符串不一样,数值不应该括在引号内 ,但每个联系信息只能属于一个教师。
1.2 数据类型 MySQL中的数据类型是强类型 1.2.1 数值型 1、 整型 整形 占用字节数 范围 tinyint 1 -128~127 smallint 2 -32768~32767 mediumint...text系列的类型在表中存储的是地址,占用大小大约10个字节 ? 一个记录的所有字段的总长度也不能超过65535个字节。 ?...1.2.6 练习题 电话号码一般使用什么数据类型存储? varchar 手机号码用什么数据类型 char 性别一般使用什么数据类型存储?...char tinyint enum 年龄信息一般使用什么数据类型存储? tinyint 照片信息一般使用什么数据类型存储?...binary 薪水一般使用什么数据类型存储? decimal
今天终于在mysql的基础看完了,开始总结一波 为什么要使用数据库??? 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。...持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。...现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。...举例:设计学生表:学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、...拆为两个表:两个表的记录是一一对应关系。...将这两个表的主键都插入到第三个表中。 自我引用(Self reference)
四、MySQL使用帮助命令 在 MySQL 使用过程中,快速查找某一个命令的使用方法和实例。使用命令: mysql> ? contents; ? 示例: 1、mysql> ?...(3)使用TIMESTAMP 要认识到,他会停止在2038年的一个时刻,但MySQL官方应该后期会提供相应的支持。...1~2字节来存储值得长度,如果列的最大长度小于或等于255,则使用1字节,否则就是使用2字节; (3)char和varchar跟字符编码也有密切联系,lantin1占用1个字节,gbk占用2个字节,utf8...2、如何选择char和varchar 六、MySQL数据类型的选择和优化案例 1、手机号存储 使用BIGINT代替CHAR或者VARCHAR存放手机号码。...3、建议使用TINYINT来代替ENUM类型。 4、使用VARBINARY存储大小写敏感的变长字符串或二进制内容。 七、MySQL中的常用运算符 1、算术运算符 ? 2、比较运算符 ?
二者在使用时的区别: 主键: MySql一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长。...所以在插入记录前一定要进行非空和长度的判断,不能为空的或者长度超出的都应该提出警告,返回上次操作。MySql就没有这样的数据类型。...)时,创建时会自动变成varchar2(20),varchar和varchar2没太大区别,建议使用varchar2 2.更新表时,在修改和删除多个字段时,两者还是有较大区别的 联系: 1....在创建和删除表,以及更新表增加字段时,两者没有什么区别 数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构...>中2.4 数组处理 9 自动增长的序列 自动增长的数据类型 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。
上篇文章,我们基于『数据库』做了一个宏观上的介绍,你应当了解到数据库是在何种背景下,为了解决什么样的问题而诞生的,以及在具体实现下又可以划分哪些中类型。...USE[DATABASENAEM]; 数据库的管理其实没什么太复杂的,它就像一个容器一样,创建后就意味着占有了一块磁盘空间,具体的数据存储还是在表结构中,所以接下来我们来看看数据库表管理情况。...但是实际上,SQLServer,Oracle,MySQL 等数据库的具体实现上也大多都支持这些类型,只不过在不同的数据库中,同一种数据类型可能有不同的名称。...举个例子吧,数据类型 Integer,在 Oracle 里使用 Number 描述,SQLServer 里使用 int 来描述,而 MySQL 里既可以使用 int 也可以使用 Integer 进行描述...,也即当你尝试向 person 表插入一条数据时,如果检测到你将要插入的这条数据的 uName 字段的值在表中已知记录中存在,你将不能成功插入。
DML(注意插入数据顺序) 插入数据的时候也要注意主外键关系,如果没有外检的情况下是没有办法插入从表数据的。...解释: 在第一范式中,主要关注的是列的原子性。也就是说,表中的每一列都应该只包含一个值,而不能包含集合、数组或其他复合数据类型。...解释: 第二范式建立在第一范式的基础上,主要关注于主键与非主键列之间的依赖关系。 在第二范式中,一个表只能保存一种数据,不可以把多种数据保存在同一张数据库表中。...如果表中的某一列只与复合主键的一部分有关,那么它就不应该存在于这个表中,而应该被分离出去形成另外一张新表。 第三范式(3NF, Third Normal Form) 定义: 满足2NF。...解释: 第三范式是在第二范式的基础上进一步细化的。它主要关注于消除传递依赖,即非主键列不应该依赖于主键的某一部分,而应该直接依赖于整个主键。
下面是MySQL中的整数类型,常用的数据类型是int,在MySQL里面定义列的时候,是列名在前,列属性在后,如果数据类型后面什么都没有带,则默认是有符号的,只有显示带了unsigned,则才是有符号的。...所以在MySQL中,数据类型本身也是一种约束,约束使用者进行合法数据的插入,通过这样的约束就可以保证数据库里面数据的可预期性和完整性。 3....所以在实际分配数据类型时,一定要合理的结合具体使用场景来分配。 4....值得注意的是,如果你使用某一数据类型,频繁的达到临界存储条件的话,则应该更换更大的数据类型进行存储。 4....一张表中,主键只能有一个,唯一键可以有多个,所以例如学生id,电话号码,QQ号码等都可以进行唯一键约束,如果你不想让唯一键中出现NULL值,则可以在唯一键约束的基础上再多添加一个not null非空约束
站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...' doesn't have a default value 3.默认值 默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。...具体来说,它将列a的数据类型更改为int(5),并且设置了两个额外的属性:unsigned和zerofill。 这条语句为什么会出现两个a呢?...通常,CHANGE子句用于在修改列的数据类型或其他属性时同时更改列名。如果您只想更改列的数据类型或属性而不更改列名,就像您的示例中所做的那样,您需要重复列名。...要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。 所以zerofill仅影响显示。
2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...M,N实际上可以减缓查询在某些情况下,有节制地使用,在WHERE子句中使用UNION代替子查询,在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快,考虑持久连接,而不是多个连接...50 优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型....同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理, 而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。
应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该建在选择性高的字段上...优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型....同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理, 而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。
2、应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值。...41、MySQL备份过程: 从二级复制服务器上进行备份; 在进行备份期间停止复制,以避免在数据依赖和外键约束上出现不一致; 彻底停止MySQL,从数据库文件进行备份; 如果使用MySQL...50、优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型。...同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。
领取专属 10元无门槛券
手把手带您无忧上云