SQL系列
文章平均质量分 56
sql日常
问道于旁
江湖易老,岁月难催,且行且珍惜!
展开
-
mysql实战宝典之复习道路:剖析timestamp
概要:MySQL5.6版本开始DATETIME和TIMESTAMP 精度支持到毫秒DATETIME 占用8个字节,TIMESTAMP占用4个字节,DATETIME(6)依然占用8个字节,TIMESTAMP(6)占用7个字节TIMESTAMP 日期存储的上限为2038-01-1903:14:07,业务用TIMESTAMP存在风险使用TIMESTAMP必须显式地设置时区,不要使用默认系统时区,否则存在性能问题,推荐在配置文件中设置参数time_zone=’+08:00’推荐日期类型使用DATETIM原创 2022-03-19 17:42:11 · 571 阅读 · 0 评论 -
分库分表实战案例
一、二、分库分表实战案例分表垂直分表水平拆分分库垂直水平分片规则基于范围分片时间: 按照年、月、日去切分。例如order_2020、order_202005、order_20200501地域: 按照省或市去切分。例如order_beijing、order_shanghai、order_chengdu大小: 从1到1000000一个表。例如1000001-2000000放一个表,每100万放一个表HASH取模分片(解决数据冷热不均问题)整型的Key可直接对设备数原创 2021-04-13 21:22:47 · 459 阅读 · 0 评论 -
sqlserver:临时表的删除
遇到一个坑:某天,定时作业失败了多次,但代码没变动,这就奇了怪了。。结果:经检查,每次执行的时候,临时表若存在,就会失败。分析:当初不写删除临时表,是查询了临时表的定义,会话内自动结束,不知道是哪出现了问题。解决:if OBJECT_ID('tempdb..#tempList') is not null drop table #tempListcreate table #tempList ( id int identity(1,1), key_ID int原创 2020-06-30 18:03:04 · 2435 阅读 · 0 评论 -
sqlserver:列转一个字段
List<String> result = Arrays.asList(str.split(","));List<String> list; and a.status in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} &l原创 2020-06-15 22:36:18 · 581 阅读 · 0 评论 -
sql:笛卡尔积
select n1.date,n2.webCname from ( SELECT CONVERT (VARCHAR (10),dateadd(DAY, number, '20200401'),112) AS [date] FROM master..spt_values WHERE datediff(DAY,dateadd(DAY, number, '20200101'),GETDATE()) >= 0 AND number BETWEEN 0 and 120 AND type .原创 2020-05-27 10:03:00 · 2337 阅读 · 0 评论 -
sqlserver:延迟执行
WAITFOR DELAY '00:00:03' --延时3秒后执行原创 2020-05-11 18:29:32 · 927 阅读 · 0 评论 -
SQL server:获取当前时间戳
SELECT CONVERT(BIGINT,DATEDIFF(MI,'1970-01-01 00:00:00.000', GETUTCDATE())) * 60000 + DATEPART(S,GETUTCDATE()) * 1000 + DATEPART(MS, GETUTCDATE())原创 2020-04-07 16:51:34 · 5393 阅读 · 0 评论 -
事务:手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();原创 2020-02-12 09:44:51 · 156 阅读 · 0 评论 -
sqlserver:定位函数
函数leftLEFT (<character_expression>, <integer_expression>)返回character_expression 左起 integer_expression 个字符```select left('1234fbbfg',4)1234select left('1234fbbfg',0)空```chari...原创 2020-01-03 10:48:11 · 1991 阅读 · 0 评论 -
知识点:事务&锁&并发
并发影响丢失更新理解:覆盖提交脏读(未提交的依赖关系)定义:当第二个事务选择其他事务正在更新的行时,会发生未提交的依赖关系问题。 第二个事务正在读取的数据还没有提交并且可能由更新此行的事务所更改。理解:AB事务同时进行,B读到被A删除的事务不可重复读(不一致的分析)定义:当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。理解: update、d...原创 2019-12-26 14:06:35 · 323 阅读 · 0 评论 -
sqlserver:判断是否为数字
方案1:ISNUMERIC函数数字类型返回 1 ,非返回 0select ISNUMERIC ( '.12321' ) isNum;select ISNUMERIC ( '.123aa21' ) isNum;10方案2:PATINDEX正则数字类型返回0,非返回1对负数、负小数,暂未研究,后期补上。select PATINDEX ( '%[^0-9]%' , '1232...原创 2019-12-04 11:13:00 · 3607 阅读 · 0 评论 -
sqlsever:限制
sql server 2000数据对象的系统范围,在实际应用过程中可以根据需要作适当的改变。 1、数据库:32767个数据库,最小为1MB,最大为1TB。 2、表:每个数据库最多有20亿个表。 3、列:每个表最多1024列,每列的最大字节数为8060(文本和图像列除外)。 4、索引:每个表有一个聚集索引,249个非聚集索引。一个复合索引最多有16个索引关键字。 5、触发器:每个表最多有3原创 2019-07-08 10:52:35 · 487 阅读 · 0 评论 -
sqlserver:过滤字符
select version from user_app_device where version like ‘[1-9].[0-9].[0-9]’;select * from tb where patindex(’%1%’,col)>0a-z ↩︎原创 2019-02-28 16:31:26 · 1022 阅读 · 0 评论 -
sql:存储过程
判断存储过程是否执行成功 1. 有返回标识 2. proc最外层begin接收异常,并进行出错处理 3. 制定规则 BEGIN –执行代码块 END EXCEPTION WHEN OTHERS THEN –出错处理代码原创 2017-11-13 13:27:32 · 230 阅读 · 0 评论 -
sqlserver:邮件通知
1.数据库邮件=>添加配置文件,添加服务器邮件用户; 2. sqlserver代理,添加操作员; 3. 作业中添加失败时发送邮件选项; 4. 警报暂时不了解有什么用注意事项: 1. 163邮箱需要授权码,非密码; 2. https://www.2cto.com/database/201403/289114.html原创 2017-11-07 14:39:17 · 1173 阅读 · 0 评论 -
sqlserver:日期格式&处理
convert(char(10),dateadd(dd,-1,getdate()),120) DATEADD(day, 1, #{exchangeAppMap.queryEndDate})SELECT COUNT(*) FROM ${tableName} WHERE is_del != 1原创 2017-01-16 14:44:32 · 684 阅读 · 0 评论 -
PL/SQL:for update (of)
关于PL sql中, for update用法,commit();select ... for update 功能:对数据手工加锁。for update子句的默认行为就是自动启动一个事务,借助事务的锁机制将数据进行锁定。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。采原创 2014-05-09 15:51:37 · 3238 阅读 · 0 评论 -
PLSQL:INSTR函数,返回要截取string的位置
在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。instr是一个非常好用的字符串处理函数,几乎所有的字符串分隔都用到此函数。语法如下: instr( string1, string2, start_position,nth_appearance ) [1] [2] string1源字符串,要在此字符原创 2014-07-14 16:56:28 · 9786 阅读 · 0 评论 -
SQL:NVL函数
一NVL函数是一个空值转换函数NVL(表达式1,表达式2)如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。对数字型: NVL( comm,0);对字符型 NVL( TO_CHAR(comm), '原创 2014-08-22 16:53:09 · 3222 阅读 · 0 评论 -
SQL:oracle 插入时间
今天遇到个问题就是插入时间,仔细找了以下,找到了几种方法和显示原创 2014-04-11 13:21:26 · 3601 阅读 · 0 评论 -
SQL:DataSet,T-SQL
DataSet 作用:DataSet,DataAdapter读取数据。 问:什么是DataAdapter?答:DataAdapter对象在DataSet与数据之间起桥梁作用string strConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQL Server链接字符串SqlConnection ConnSql=new SqlC原创 2014-08-13 10:43:00 · 842 阅读 · 0 评论 -
SQL:Convert函数大致介绍
PS:ci'wen'ji原创 2014-08-19 15:33:58 · 645 阅读 · 0 评论 -
SQL:Error,ORA-00918未明确定义列
Error未明确定义列原创 2014-09-17 11:16:37 · 1276 阅读 · 0 评论 -
ORA:WMSYS.WM_CONCAT函数
10g 所提供的 WMSYS.WM_CONCAT 函数原创 2014-11-25 14:05:46 · 1207 阅读 · 0 评论 -
SQL:??合并运算符
求序列和,原创 2014-11-27 09:54:31 · 788 阅读 · 0 评论 -
Oracle:Merge Into
/*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 *//*語法:MERGE原创 2014-11-27 09:47:02 · 598 阅读 · 0 评论 -
Oracle:序列 RowNum
RowNum ROW_ID, 可做序列值原创 2014-12-08 17:03:25 · 388 阅读 · 0 评论 -
sqlserverR2:数据库结构及数据导出总结
目标:导出sqlserverR2数据库。 结果:选中要导出的数据库,右键=>任务=>生成脚本=>如图: 选择脚本编辑选项,设置高级部分原创 2016-11-20 14:33:14 · 400 阅读 · 0 评论 -
Error:ORA-00937: 非单组分组函数错误
ORA-00937: 非单组分组函数错误select count(*), t.user_name from sys_user t, sys_department a, sys_dep_type d where t.dep_id = a.dep_id and a.dep_id = d.dep_id and t.recd_is_del = 0group by t.u原创 2014-06-25 13:26:26 · 2585 阅读 · 0 评论