-
SQLSERVER 语句交错引发的死锁问题案例详解
目录一:背景1.讲故事二:死锁简析1.一个测试案例2.寻找死锁源头3.寻找解决方案三:总结一:背景1.讲故事相信大家在使用SQLSERVER的过程中经常会遇到阻塞和死锁,尤其是死锁,比如下面的输出:(1rowaffected)Msg1205,Level13,State51,Line5Transaction(ProcessID62)wasdeadlockedonlockresourceswithanotherprocessandhasbeenchosenasthedeadlockvictim.Rerunthetransaction.要解决死锁问题,个人感觉需要非常熟知各种隔离级别,尤其是可提交读模式下的CURD加解锁过程,这一篇我们就来好好聊一聊。二:死锁简析1.一个测试案例开启两个会话65和66,分别使用如下查询...
数据库操作教程 2023-02-25 05:43:07 -
SQL Server临时表的正确删除方式(sql server 删除临时表)
目录SQLServer临时表的正确删除方式1、错误的删除操作:2、正确的删除方式:补充:SQL临时表的使用示例删除临时表SQLServer临时表的正确删除方式临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表...
数据库操作教程 2023-02-25 05:43:03 -
sql语句中临时表使用实例详解
目录一、临时表实现分步处理1.概述2.实例2.1表格结构2.2需求2.3sql语句2.4sql语句解析二、临时表实现分层处理1、概述2、实例2.1表结构2.2需求2.3sql语句2.4sql语句解析一、临时表实现分步处理1.概述当需要的结果需要经过多次处理后才能最终得到我们需要的结果时,就可以使用临时表,这里临时表就起到了一个中间处理的作用,实现了分步处理,简化了问题。2.实例2.1表格结构pln_order_pool_detail(表名)2.2需求需要得到订单平均交付周期、最大交付周期、最小交付周期,为了实现这一需求,首先我们要求出每个订单的交付周期,其次我们需要将这些订单的交付周期求其平均值...
数据库操作教程 2023-02-25 05:42:59 -
SQLSERVER 临时表和表变量的区别汇总
目录一:背景1.讲故事二:到底有什么区别1.前置思考2.如何验证都存储在tempdb中?3.不同点在哪里三:总结一:背景1.讲故事今天和大家聊一套面试中经常被问到的高频题,对,就是临时表和表变量这俩玩意,如果有朋友在面试中回答的不好,可以尝试看下这篇能不能帮你成功迈过。二:到底有什么区别1.前置思考不管是临时表还是表变量都带了表这个词,既然提到了表,按推理自然会落到某一个数据库中,如果真在一个数据库中,那自然就有它的存储文件.mdf和.ldf,那是不是如我推理的那样呢?查阅MSDN的官方文档可以发现,临时表和表变量确实都会使用tempdb这个临时存储数据库,而且tempdb也有自己的mdf,ndf,ldf文件,截图如下:有了这个大思想之后,接下来就可以进行验证了...
数据库操作教程 2023-02-25 05:42:55 -
SQL中的游标、异常处理、存储函数及总结(最新推荐)
目录一.游标格式操作 演示二.异常处理—handler句柄格式 演示 三.存储函数格式 参数说明演示四.存储过程总结一.游标游标(cursor)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH和CLOSE.格式操作 演示usetest_procedure;--需求:输入一个部门名,查询该部门员工的编号、名字、薪资,将查询的结果集添加游标delimiter$$createprocedureproc21(inin_namevarchar(50))begin--定义局部变量declarevar_empnoint;declarevar_enamevarchar(50);declarevar_saldecimal(7,2);--声明游标declaremy_cursorcursorforselectempno,ename,salfromempe,deptdwhered.dname=in_name;--打开游标openmy_cursor;--通过游标获得值...
数据库操作教程 2023-02-25 05:42:51 -
SQL 多表联合查询的几种方式详解
目录前言正文内连接等值连接/相等连接自然连接自连接外连接左外连接右外连接全外连接/完全外连接交叉连接/笛卡尔积总结前言连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询...
数据库操作教程 2023-02-25 05:42:47 -
史上超强最常用SQL语句大全
目录DDL(DataDefinitionLanguage)数据定义语言一、操作库二、操作表一、增加insertinto二、删除delete三、修改updateDQL(DataQueryLanguage)数据查询语言一、基础关键字二、排序查询orderby三、聚合函数:将一列数据作为一个整体,进行纵向的计算。四、分组查询groutby五、分页查询六、内连接查询:1.隐式内连接:使用where条件消除无用数据 2.显式内连接 七、外连接查询1.左外连接--查询的是左表所有数据以及其交集部分...
数据库操作教程 2023-02-25 05:42:44 -
SQLSERVER 的 truncate 和 delete 区别解析
目录一:背景1.讲故事二:区别详解1.思考2.观察delete的事务日志。3.观察truncate的事务日志...
数据库操作教程 2023-02-25 05:42:39 -
SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性操作
转眼间上次写文章已经是2022年12月15日的事情啦,本来从2022年7月份开始写作之后保持着每周一篇,然而从12月15日后断更了这么久,经历了,隔离、阳、过年、从今天开始继续坚持写作,本片文章给大家分享SqlServer服务中利用触发器对指定账户进行登录ip限制从而提升账户的安全性,这样可以灵活的限制每个账户的允许登录IP,类似于PostgreSQL中pg_hba.conf配置文件的功能,MySQL则是在创建账户时可以配置账户允许登录IP,下面记录一下SQLServer如何实现。在MySql数据库中我们在创建一个新的用户时是可以选择这个用户的可用连接ip的,比如localhost或者某个ip甚至不做限制直接输入%则表示这个用户运行任意IP远程连接,但是在微软的MsSqlServer中在创建用户时则没有这样的设置,但是有时候我们处于安全问题,想要限制某个账户只能通过某个IP访问,通过防火墙设置的话会直接阻断这个IP对所有账户的访问,有点一棍子打死,不是我们想要的,这种情况下可以利用MsSqlServer数据库中的触发器来实现这个目的,当用户请求连接数据库时会触发我们提前写好的规则进行验...
数据库操作教程 2023-02-25 05:42:38 -
sqlserver字符串拼接的实现
目录1.概述2.数字+字符串2.1int+varchar2.2decimal+varchar3.数字+数字4.字符串+字符串5.使用CAST和CONVERT函数进行类型转换1.概述在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。sqlserver:select'123'+'456';oracle:select'123'||'456'fromdual;或selectconcat('123','456')fromdual;mysql:selectconcat('123','456');注意:SQLServer中没有concat函数(SQLServer2012已新增concat函数)...
数据库操作教程 2023-02-25 05:42:32 -
SqlServer字符截取的具体函数使用
目录LEN()函数SUBSTRING()函数LEFT()函数RIGHT()函数CHARINDEX()函数STUFF()函数PATINDEX()函数unionall的使用LEN()函数获取字符串的长度。LEN(<字符>)--返回整型SUBSTRING()函数截取字符内指定位置、指定内容的字符...
数据库操作教程 2023-02-25 05:42:27 -
SQL Server 2019完整安装教程(最新最详细!)
引言:今天又双叒搞新电脑的环境,对于我这个.Net程序员,那就肯定离不开安装SQLServer了,网上没有找到很详细的教程,所以决定自己再写一份。下面直接进入主题...
数据库操作教程 2023-02-25 05:42:25