首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

粗聊Mysql——你会么?

本文中说到的“”,并非单纯的一个库,或是一张,而是你建好的库和在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人的做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里的主键ID(自增)写到这个字段里,通过这样进行两关联。   ...所以我建议两之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...至于性能,我本地测了下基本上没差异,网上也有人做了10W条数据的测试——《实测MYSQL UUID性能》。...所以我建议,既然定义为varchar,就代表不会涉及到计算,何不干脆定义一个通用的长度,比如varchar(50),如果真要限制长度,用程序去判断,不要让数据库来限制,不然用户输了一长串,结果mysql

5.2K10

MySQL 系列教程之(五)DDL 操作:

创建RUNOOB数据库,并设定编码集为utf8 删除数据库 删库有风险,动手需谨慎 drop database 库名; MySQL 数据 创建MySQL数据需要以下信息: 名 表字段名 定义每个表字段...create table 名( 字段名 类型 [字段约束], 字段名 类型 [字段约束], 字段名 类型 [字段约束] ... ); 创建 通过 mysql> 命令窗口可以很简单的创建...MySQL数据。...查看表结构 desc stu; 查看表语句 show create table stu\G 修改结构 格式: alter table 名 action(更改选项); 添加字段: 添加字段:alter...删除 MySQL中删除数据是非常容易操作的, 但是你再进行删除操作要非常小心,因为执行删除命令后所有数据都会消失。 DROP TABLE table_name ;

7.6K73

数据库规则_SQL创建数据

— 数据库表语句的规范小结 表语句的规范: 1.字段的设计 A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。   B....所以在建的时候一定要预估这个字段最大的长度到底是多少。   C. 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT 的值来代替。   D....比如说时间: 目前我们定义时间的时候 都是create_time, modify_time,以后的时候,都按照这个标准来,就不要写成createtime这样的。 B....新建的与之前的的字段有相似或者相同的字段,字段的名称和类型也必须相同,切记不能随意的重新命名,例如:token_md5 就不要命名成tokenmd5了。 E....名 字段名字统一用小写。 G.索引名称统一用字段名称,多个字段的索引加_ 比如 (uid,type) 索引名就是 uid_type。

2.2K10

mysql5.7 创建提示时间戳非法

# 背景 mysql版本5.7.8,需要创建,研发提供的sql文件,执行后报错如下: ERROR 1067 (42000): Invalid default value for 'deleted_at...' 就猜测到时因为5.7版本的mysql默认的时间戳不允许输入0000-00-00 00:00:00这种格式,之前碰到过类似问题,需要修改配置 查看了研发提供的sql文件,果真如此: ‘create_at...不希望修改配置文件,通过修改sql_model就可以了的,这种对新建生效 SELECT @@sql_mode; 可查看sql_model,其中NO_ZERO_IN_DATE,NO_ZERO_DATE就是导致...5.7+版本无法输入0的时间戳 NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零  NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告

1.5K60

mysql常见的选项和约束

create table选项 指定列选项:default 当插入一个新行到中并且没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值 ;如果没有,则为null。...约束主要是防止非法数据进入中,保证数据的正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL的约束保存在information_schema.table_constraints中...) 在定义外键约束,可以通过使用on delete cascade或on delete set null来改变外加的默认删除规则 on delete cascade:级联删除,当删除父中的行时,如果子表中有依赖于被删除父行的子行存在...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql...> insert into test_ck values(-100); mysql> select * from test_ck; +------+ | id | +------+ |

12810

MySQL数据类型的选择

更小的数据类型通常更快,因为它们占用更少的磁盘、内存和 CPU 缓存,并且处理需要的 CPU 周期也更少。 简单就好。简单数据类型的操作通常需要更少的 CPU 周期。...如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更复杂。特别是计划在列上索引,就应该尽量避免设计成可为 NULL 的列。...因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算才使用 decimal——例如存储财务数据。...枚举(enum)类型 MySQL 在内部会将每个值在列表中的位置保存为整数,并且在的 .frm 文件中保存 “数字-字符串” 映射关系的 “查找”。...(对于这点很多公司项目中是用整数存储,我也查了资料,使用整数的理由一般是日期比较,计算整数更好处理)

5.2K10

Excel超级创建不能相互重叠?

我插入“表格”的时候为什么出现“不能互相重叠”错误? 大海:那是因为你选择用于创建表格的数据范围里已经有其他表格存在了。 小勤:啊?我好像原来没有创建过超级啊。 大海:可能忘记了呗。...如下图所示: 小勤:真的是有个“2“耶。 大海:所以你不能再在和它有交叠的区域(范围)创建表格了。 小勤:那我要把下面那些没有在“表格”中的数据包含进去,都放到一个表格里怎么办?...大海:可以直接在原来的“2”上扩展啊。表格的右下角有个蓝色小弯角的标志,鼠标放在上面,就会变成可扩展的鼠标图形,然后按住鼠标左键拖动就可以调整(扩展或缩小)这个表格所包含的数据区域了。

2.4K20
领券