• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Cheng--Li

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  数据库

MSSQL,Oracle
 
SQL 备忘录
摘要:查看一个字段前后变更前跟变更后的值 UPDATE tb SET 字段1='0' OUTPUT DELETED.字段1,INSERTED.字段1WHERE id='1' 字段拼接 1传统写法: DECLARE @OrderCode VARCHAR(MAX)='';SELECT @OrderCode+= 阅读全文
posted @ 2017-09-10 11:53 福州软件定制 阅读(155) 评论(0) 推荐(0)
row_number,rank,dense_rank,ntile排名函数的用法
摘要:这篇文章介绍SQL中4个很有意思的函数,我称它的行标函数,它们是row_number,rank,dense_rank和ntile,下面分别进行介绍。一 row_number:它为数据表加一个叫“行标示”的列,它在数据表中是连续的,我们必须按着某个顺序把表排序之后,才能使用row_number,看下... 阅读全文
posted @ 2015-04-03 15:01 福州软件定制 阅读(199) 评论(0) 推荐(0)
Sql Server2005新特性及性能
摘要:举几个例子来简单说明 这些例子我引用了Northwind库。 1. TOP 表达式 SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。--前n名的订单declare@nint set@n=10 selectTOP(@n)*fromOrders 2. 分页 不知各位过去用S... 阅读全文
posted @ 2014-04-18 14:47 福州软件定制 阅读(187) 评论(0) 推荐(0)
关于update set from where
摘要:下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:id,name 1 王 2 李 3 张 表b:id,ClientName 1 2 3(MS SQL Server)语句:update b set ClientName = a.name from a,b where a.id = b.id(Oralce)语句:update b set (ClientName) = (SELECT name FROM a WHERE b.id = a.id)(Mysql)语句:: ... 阅读全文
posted @ 2014-02-25 17:14 福州软件定制 阅读(304) 评论(0) 推荐(0)
sqlserver中All、Any和Some用法与区别
摘要:SQLServer中有三个关键字可以修改比较运算符:All、Any和Some,其中Some和Any等价。他们作用于比较运算符和子查询之间,作用类似Exists、not exists、in、not in以及其他逻辑意义,这些语法同样被SQLServer2000支持但是很少看到有人用它们。官方参考文:http://technet.microsoft.com/zh-cn/library/ms187074%28SQL.90%29.aspx(建议阅读) 1 set nocount on 2 3 use tempdb 4 go 5 6 if (object_id ('t1') is not 阅读全文
posted @ 2014-02-20 15:22 福州软件定制 阅读(1267) 评论(0) 推荐(0)
SQL in与exists的执行效率比较
摘要:SQL中in可以分为三类: 形如select * from t1 where f1 in ('a','b'),应该和以下两种比较效率:select * from t1 where f1='a' or f1='b' 或者 select * from t1 where f1 ='a' union all select * from t1 f1='b',你可能指的不是这一类,这里不做讨论。 形如select * from t1 where f1 in (select f1 from t2 where t2 阅读全文
posted @ 2014-01-10 08:54 福州软件定制 阅读(682) 评论(0) 推荐(0)
SQLServer数据集合的交、并、差三种集合运算
摘要:SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。他们的对应关系可以参考下面图示相关测试实例如下:use tempdb goif(object_id('t1') is not null) drop table t1if(object_id('t2') is not null) drop table t2gocreate table t1 (a int)insert into t1 select 1 union select 2 union select 3create table t2 (a int 阅读全文
posted @ 2014-01-10 08:52 福州软件定制 阅读(1351) 评论(0) 推荐(0)
SQL语句优化技术分析
摘要:最近几周一直在进行数据库培训,老师精湛的技术和生动的讲解使我受益匪浅。为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。一、操作符优化1、IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组 阅读全文
posted @ 2014-01-04 13:00 福州软件定制 阅读(1522) 评论(9) 推荐(10)
高并发下的获取ID解决方案
摘要:/****** 第一种解决方案:锁+事务 保证原子性 ******/ begin transaction; declare @sn bigint; select top 0 id from IDS with (tablockx); set @sn=isnull(IDENT_CURRENT('IDS'),IDENT_INCR('IDS')) + {0}; DBCC CHECKIDENT ('IDS', RESEED, @sn);... 阅读全文
posted @ 2013-12-19 15:07 福州软件定制 阅读(446) 评论(0) 推荐(0)
获取数据库里面所有自增类型的最大值
摘要:declare @maxId intset @maxId=0;DECLARE @TempREFER TABLE(tablename varchar(100),colname varchar(100))INSERT @TempREFER(tablename,colname) select d.name... 阅读全文
posted @ 2013-12-19 14:59 福州软件定制 阅读(412) 评论(0) 推荐(0)