随笔分类 - MySQL
摘要:一、主键索引和唯一索引的区别 (1)主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 (2)主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 (3)唯一性索引列允许空值,而主键列不允许为空值。 (4)主键可以被其他表引用为外键,而唯一索引不能。 (5)一个表最多只能创建一个主
阅读全文
摘要:一、mysql之时间截取函数DATE_FORMAT 我有个datatime类型的数据,格式为yyyy-mm-dd hh-mm-ss ,现在我需要把这个数据分成两部分,分别为yyyy-mm-dd和hh-mm-ss,那么我就需要借助函数date_format()来实现。 例如我要把数据 '2019-06
阅读全文
摘要:索引是用于提高数据检索速度的。本文主要整理一些关于索引的操作,如创建,查看,删除。 一、创建索引 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 (1)ALTER TABLE ALTER TABLE用来创建普通索引、UN
阅读全文
摘要:char和varchar都是mysql中用来存储字符型数据的,而他们又有些不同。 一、varchar类型 一般初学者会认为,二者占用的空间是一样的。比如说我存储5个char,二者确实实际占用了5个char。但是仔细思考一下,如果二者真的一样的话,那么在设计数据库的时候有必要弄两个类型吗?显然他们是不
阅读全文
摘要:mysql中alter主要有两种使用场景,第一种是修改表信息如表名等,第二种是修改表字段信息,如添加字段,修改字段等。第二种使用较多。 第一种修改表信息场景如下: (1)修改表名 alter table test_a rename to sys_app; (2)修改表注释 alter table s
阅读全文
摘要:数据库时间字段类型为datetime,在进行时间字段插入数据库时,出现了打印出来是当前时间,但是插入到数据库却与当前时间相差8小时。 查资料发现是设置数据库链接时,数据库的时间时区没有设置好,将serverTimezone=UTC或者GMT改成CTT(Asia&Shanghai)就正常了。 完整链接
阅读全文
摘要:CREATE TABLE dbname_bodyguard_black_box ( id int(11) NOT NULL AUTO_INCREMENT, login_id varchar(64) DEFAULT NULL COMMENT '用户登录账号,手机号', black_box text C
阅读全文
摘要:视情况而定,索引有好处也有坏处。为什么要创建索引?这是因为创建索引可以大大提高系统的性能。 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
阅读全文
摘要:一、概述 当数据量过大的时候对于数据库的性能将是很大的考验,因此将会选择进行分库或者分表,或者分库分表结合进行来减少单一数据库的压力,进而提高数据库的性能。从某种程度上说分库分表是一种分治法,将大量数据变成小量数据,大表拆分为小表,从而操作数量少的一部分。 数据的拆分(Sharding)根据其拆分规
阅读全文
摘要:mysql行号是通过id来进行体现的,他没有Oracle的rownum来显示行号,但是当有些时候需要显示行号的时候,在mysql中只有通过自定义变量来进行体现,但是这种自定义行号不能用作分页,因为每一次查询行号都会从1开始,没有办法进行叠加。这种一般不会用到,可作为了解。 参考博文:https://
阅读全文
摘要:limit i,n; i:为查询结果的索引值(默认从0开始),当i=0时可省略i n:为查询结果返回的数量(也就是条数) 表示从第i+1条开始,取n条数据 limit n 等同于 limit 0,n 索引是从零开始,但是数据是从1开始存储的,也就是说limit 0,1;查询出来的数据是第一条,lim
阅读全文
摘要:整理一下sql的关键字,一直都在用,只是很少去整理,所以今天简单整理一下,主要是整理CRUD的一些关键字。 写在前面:sql 不区分大小写 select 简单查询语句 select columnName from tableName where condition group by columnNa
阅读全文
摘要:jdbc原生操作数据库流程: 第一步:Class.forName()加载数据库连接驱动; 第二步:DriverManager.getConnection()获取数据连接对象; 第三步:根据 SQL 获取 sql 会话对象,有 2 种方式 Statement、PreparedStatement ; 第
阅读全文
摘要:一、设计问题 1、主键是用自增还是UUID? Innodb引擎中的主键是聚簇索引。如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满就会自动开辟一个新的页。如果不是自增主键,那么可能会在中间插入,就会引发页的分裂,产生很多表碎片! 2、表示枚举的字段为什么不
阅读全文
摘要:参见这篇博客:https://blog.csdn.net/rongtaoup/article/details/82183743 case when then else end 语句用于查询满足多种条件的情况,类似java中的if...else,还有的就是用于进行行转列的查询,这个是放在select
阅读全文
摘要:当把mysql容器销毁,在新建一个容器,进行之前的数据恢复。 因为之前建立了数据卷,那么现在就可以利用这个数据卷进行数据恢复。 使用 命令新建一个数据卷 查看数据卷列表 注意:使用数据卷进行挂载的时候,数据卷必须是一个空的目录,也就是说不能有任何数据。 查看数据的相关信息,例如挂载位置 在恢复数据之
阅读全文
摘要:docker pull mysql 从镜像仓库中拉取mysql镜像。 运行镜像 到此mysql在docker容器下运行成功。 使用Navicat连接工具连接到mysql 经过以上步骤就完成了在docker容器下运行mysql并且实现了数据卷的挂载。
阅读全文
摘要: 
阅读全文
摘要:在使用group by进行查询结果分组的时候,报错: 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'goodsinfo.item.amount' whi
阅读全文
摘要:mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法 使用场景:例如:想要查询用户的最喜欢购买的几种商品,这个时候就需要使用group_concat(字段 separator 分隔符),因为一个用户会买多个商品,而结果是一行记录,这一行记录里面的字段是
阅读全文