随笔分类 -  SQL

SQL
摘要:方案零 数据库添加唯一索引 ALTER TABLE your_table ADD UNIQUE (name); 当数据库表有软删除 IsDeleted 字段的时候 就只能用以下方式了注: 网友提了一种方案就是 IsDeleted 设置null 唯一索引不删除 为null的标识删除(此方案待验证) 方 阅读全文
posted @ 2025-07-30 10:08 刘小吉 阅读(19) 评论(0) 推荐(0)
摘要:1.postgresql 查询当月和上个月数据 阅读全文
posted @ 2024-03-21 15:41 刘小吉 阅读(32) 评论(0) 推荐(0)
摘要:发表这个帖子是因为产品的一个需求,按照名称首字母正序排序。 目前所有的库默认的字符集都是utf8mb4, 排序规则是utf8mb4_general_ci,这种排序规则不支持按中文的拼音首字母排序而GBK字符集基本是按照汉字的拼音码进行编码的,所以这里想到了用转换字符集的方式来处理这个问题。目前想了两 阅读全文
posted @ 2023-03-23 17:04 刘小吉 阅读(653) 评论(0) 推荐(0)
摘要:函数名称作 用 ABS 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 FLOOR 向下取整,返回值转化为一个BIGINT RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 ROUND 对 阅读全文
posted @ 2023-02-08 17:52 刘小吉 阅读(73) 评论(0) 推荐(0)
摘要:一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 开发环境建议一直开启便与优化 生成环境建议关闭影响效率 如果需排查问题的时候可开启 二、参数说明slow_query_log 慢查询开启状态slow_query_log_f 阅读全文
posted @ 2023-01-30 17:53 刘小吉 阅读(482) 评论(0) 推荐(0)
摘要:sql_mode默认值是空值,在默认值设置下是可以允许一些非法操作,比如允许写入一些非法数据,在生产环境中,必须将sql_mode设置为严格模式 生产环境 未启用严格模式案列 问题描述:添加一个超长的文章的时候,文章内容字段被MySQL截取后插入,导致文章内容不完整。(ANSI模式即宽松模式)deb 阅读全文
posted @ 2023-01-30 17:30 刘小吉 阅读(404) 评论(0) 推荐(1)
摘要:一、in关键字 确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。 select * from A where id in (select id from B) #等价于 阅读全文
posted @ 2023-01-29 10:12 刘小吉 阅读(588) 评论(0) 推荐(0)
摘要:主从同步+读写分离: 这个表在有设备条件的情况下,读写分离,这样能减少很多压力,而且数据稳定性也能提高纵向分表: 根据原则,每个表最多不要超过5个索引,纵向拆分字段,将部分字段拆到一个新表 通常我们按以下原则进行垂直拆分:(先区分这个表中的冷热数据字段) 把不常用的字段单独放在一张表; 把text, 阅读全文
posted @ 2023-01-29 10:01 刘小吉 阅读(368) 评论(0) 推荐(0)
摘要:-- 创建表 DROP TABLE IF EXISTS tba; CREATE TABLE tba ( id serial , peaktemp int, js jsonb, logdate date not null ) PARTITION BY RANGE (logdate); -- 设置主键 阅读全文
posted @ 2022-12-22 10:14 刘小吉 阅读(350) 评论(0) 推荐(0)
摘要:准备测试数据 DROP TABLE IF EXISTS "tbl"; create table tbl(id int, js jsonb); create index idx_tbl_1 on tbl using gin (js jsonb_path_ops); create index idx_t 阅读全文
posted @ 2022-12-22 10:14 刘小吉 阅读(481) 评论(0) 推荐(0)
摘要:1.背景 目前接触的项目中,发现大部分项目开发环境和测试环境的数据库都没有自动备份,如果误删可能导致一系列问题,虽然有些项目有数据迁移工具,但是迁移工具里面仅仅包含种子数据,对于开发测试来说,最重要的是已产生的数据,项目复杂程度不同,重新造数据可能费时费力,故分享下自动备份(含仅保留最近10天的备份 阅读全文
posted @ 2022-10-13 11:36 刘小吉 阅读(772) 评论(0) 推荐(0)
摘要:今天遇到一个小的数据库问题,就是插入藏文数据到数据库出现乱码。 也就是这样,全部都是问号,解决方法就是在插入或修改数据时,在数据前加一个大写的N,如下: 修改也跟插入相同,set A列 = N'要修改的值',还有一个关键问题,就是存储藏文的字段必须是,Nvarchar,Ntext,Nchar类型,这 阅读全文
posted @ 2022-08-30 15:27 刘小吉 阅读(362) 评论(0) 推荐(0)
摘要:mysql4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个slqservernvarchar(20)表示汉字和 阅读全文
posted @ 2022-08-29 13:44 刘小吉 阅读(213) 评论(0) 推荐(0)
摘要:如果您的算法取决于该人的出生年份,则显然存在问题.要解决此问题,首先在当前日期之后找到每个人的下一个生日,然后计算该日期与现在之间的差异. SELECT u_birth, DATEDIFF(next_birthday, NOW()) AS distance FROM ( #计算下次生日距离当前时间相 阅读全文
posted @ 2022-07-14 09:16 刘小吉 阅读(126) 评论(0) 推荐(0)
摘要:有时会遇到一种情况,当数据表不存在某记录时便插入新记录,当数据表中已经存在该记录时则更新该记录。当指定了ON DUPLICATE KEY UPDATE,当插入新的记录会导致主键列或UNIQUE列出现重复数据时,则对旧的记录执行UPDATE。 例如,有一个计数器表用来记录网站每日的访问数: CREAT 阅读全文
posted @ 2022-06-08 15:16 刘小吉 阅读(1143) 评论(0) 推荐(0)
摘要:查询某个数据库中某个表的所有列名 SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'tb_name'; 查询某个数据库中某个表的所有列名,并用逗号连接 阅读全文
posted @ 2021-12-16 10:03 刘小吉 阅读(838) 评论(0) 推荐(0)
摘要:准备数据 CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `parent_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGI 阅读全文
posted @ 2021-09-02 15:46 刘小吉 阅读(10212) 评论(4) 推荐(3)
摘要:新建表 CREATE TABLE `data_source` ( `Id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `TableName` varchar(255) CHARACTER SET ut 阅读全文
posted @ 2020-08-03 17:46 刘小吉 阅读(276) 评论(0) 推荐(0)
摘要:在项目中动态拼接sql语句,使用union all连接结果集,每个查询语句都使用了in(几百个数值)。语句如: 当in和union all 很多时执行就会发生异常 ”查询处理器用尽了内部资源,无法生成查询计划。这种情况很少出现,只有在查询极其复杂或引用了大量表或分区时才会出现。请简化查询。如果您认为 阅读全文
posted @ 2019-09-24 16:24 刘小吉 阅读(1490) 评论(0) 推荐(0)
摘要:mysql8.0 准备表结构 CREATE TABLE `function` ( `Id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'Id', `CreateTime` datetime(0) NO 阅读全文
posted @ 2019-07-08 16:36 刘小吉 阅读(45048) 评论(3) 推荐(1)