随笔分类 - 中间件-数据库 / Sql
一般是sql server的sql语句
摘要:【定义】 幻读是指在同一个事务中,存在前后两次查询同一个范围的数据,但是第二次查询却看到了第一次查询没看到的行, 一般情况下特指事务执行中新增的其他行。 也就是另一个事务新增了满足当前事务查询的行,导致当前事务再次查询结果不一样。 【出现条件】 1.数据库隔离级别为RR(Repeatable Rea
阅读全文
摘要:【全局锁】 数据库中的表只能读取,不能增删改 --加锁-- flush table with read lock; --解锁-- unlock tables; 【共享锁 Shared lock】 也称读锁。不阻塞其他事物的读操作,但阻塞写操作。 当Session1对数据A添加共享锁之后,可读不可写。
阅读全文
摘要:如果不对事务进行隔离可能会产生的后果: 1.更新丢失: 两个事务同时更新一条数据,一个事务的失败导致两次修改均失败。 这是因为没有锁操作,可以同时操作数据。并发事务没隔离 2.脏读:已经修改了一条数据而没有及时提交,但该数据被并发读取,如果此时回滚数据,那并发读取的就是错误数据。那么获取的数据不一致
阅读全文
摘要:查看当前数据库下面的所有触发器 --查看数据库下的所有触发器-- select * from sysobjects where xtype='TR' 查看某个触发器的内容 --查看触发器的具体定义-- select definition from sys.sql_modules where obje
阅读全文
摘要:最近授予了用户查看视图的权限之后,出现了问题。 原来是视图跨数据库了,而用户没有查看另一个数据库的权限,于是报错了。 怎么解决呢? 安全性 =》 登录名 =》 选择用户 =》 右键属性 =》用户映射 =》勾选数据库 本以为解决了,结果 拒绝了对对象的select 权限 原因是 上面那一步,没有勾选对
阅读全文
摘要:datediff(mm,getdate(),Date)=0 也就是判断和当前月份差是否为0
阅读全文
摘要:1.添加字段的时候添加默认值 alter table [Student] add [Sex] bit not null default '1' 2.已存在字段添加默认值 alter table [Student] add default '1' for [Sex] with values 3.已存在
阅读全文
摘要:USE [MyDb] GO IF NOT EXISTS(SELECT * FROM [MyDb].[dbo].[Product] WHERE Name='小浣熊干脆面') BEGIN INSERT [dbo].[Product]([Id],[Value],[Name],[Description],[
阅读全文
摘要:nullif(A,B)表示A和B是否相等,如果相等则返回null,否则返回A。 可以用于判断两值是否相等,或者除零错误。 a/nullif(b,0) 若b为0,则返回null
阅读全文
摘要:USE [MySchool] GO IF COL_LENGTH('Student','Score') IS NULL BEGIN ALTER TABLE Student ADD Score DOUBLE END GO COL_LENGTH判断表中是否含有列,比如此处判断Student表中是否含有Sc
阅读全文
摘要:我在虚拟机上安装SQL server时遇到一个问题。 首先打开 SQL SERVER配置管理器,也就是一个红色小箱子图标的那个 1.找到 SQL SERVER网络配置,选择下面SQLEXPRESS的协议,将TCP/IP 打开 2.找到 SQL SERVER服务,将 SQL SERVER(SQLEXP
阅读全文
摘要:游标相当于数据库的指针。当我们查询到数据集的时候,可以使用游标来做一些遍历操作。 因为游标可以 遍历我们查询到的结果集,而且一次指向一行数据,方便我们逐行操作数据。 而且游标数据可以重复使用。他可以临时保存当前行的数据 但是它有一定的缺陷。因为他会将我们查询到的结果放置到内存,那么数据量大的时候会造
阅读全文
摘要:以往的sql优化一般是根据经验,但是遇上复杂的sql,以往经验不起作用的时候怎么办?这时候,就有性能分析工具来辅助我们分析Sql中存在的问题。 打开方法: Sql server 2012数据库 -》 工具 -》Sql Server Profiler 设置好数据库的地址和账号密码 按照上诉步骤进行设置
阅读全文
摘要:truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。 truncate只能作用于表;delete,drop可作用于表、视图等。 truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。 truncat
阅读全文
摘要:此方法只适用于对海量数据查询的优化,对于数据量较少的查询不具有参考性 一、尽量避免全表扫描,使用索引 1.在常用字段上面建立索引,方便查找 2.避免null值判断。eg: where xx is null。 改进:可以设置默认值代替null 3.避免使用不等于操作符,如!=,<> 4.避免使用or。
阅读全文
摘要:语法如下: SELECT STUFF((select ','+c.MR_RolName from 查询语句 FOR XML PATH('')),1,1,''); 解释如下 1.STUFF函数。表示截取拼接函数 第一个参数表示原字符串 第二个参数表示从哪个坐标开始,参数从1开始 第三个参数表示截取几位
阅读全文
摘要:获取某一天的时间,用法是使用cast ...as date,将字符串转化成日期 比如说我想获取上个月25号的日期: cast(convert(varchar(20),Year(dateadd(month,-1,@datetime))) +'-'+convert(varchar(20),Month(d
阅读全文
摘要:create function getSum(@date date) returns decimal(18,2) as begin declare @number decimal(18,2)=0 while(@date<='2020/10/30') begin declare @tempdata d
阅读全文
摘要:declare @a decimal(18,2)=5.00 declare @b decimal(18,2)=3.00 print concat(convert(decimal(18,2),(@b/@a)*100),'%')
阅读全文
摘要:declare @date varchar(50)='2020-10-03' print Month(dateadd(month,-1,Convert(datetime,@date))) print (Convert(int,Substring(@date,6,2))-1) 第一种方法保险一点,因为
阅读全文

浙公网安备 33010602011771号