- 博客(275)
- 收藏
- 关注
转载 关于SQL语句Count的一点细节
count语句支持*、列名、常量、变量,并且可以用distinct关键字修饰, 并且count(列名)不会累计null的记录。下面随便用一些例子示范一下count的规则:比如对如下表做统计,所有列这里都用sql_variant类型来表示。 if (object_id (t_test )> 0 ) drop table t_test go create table t_test
2009-09-22 16:32:00
950
原创 UNION 和UNION ALL 的区别
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如: select * from A unio
2009-07-20 14:49:00
914
转载 LINQ体验系列文章导航
LINQ体验系列文章导航LINQ推荐资源推荐一个大家学习和交流LINQ的地方,就是博客园的LINQ专题和LINQ交流小组。LINQ专题中整理了有关LINQ方方面面的入门、进阶、深入的文章;学习中遇到什么问题或者疑问也可以LINQ交流小组去提问,往往你会得到意想不到的收获哦。LINQ专题:http://kb.cnblogs.com/zt/linq/LINQ小组:http://spac
2009-03-03 17:16:00
2891
转载 LINQ体验(18)——LINQ to SQL语句之视图和继承支持
视图我们使用视图和使用数据表类似,只需将视图从“服务器资源管理器/数据库资源管理器”拖动到O/R 设计器上,自动可以创建基于这些视图的实体类。我们可以同操作数据表一样来操作视图了。这里注意:O/R 设计器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。换句话说,实体类与数据库表或视图之间只能具有 1:1 映射关系。不支持复杂映射(例如,将一个实体类映射到多个表)。但是,可以将一个实
2009-03-03 17:10:00
1170
转载 LINQ体验(17)——LINQ to SQL语句之动态查询
高级特性本文介绍LINQ的高级特性,其包括大家都关心的动态查询的用法,另外简单提下ID标识这个知识。动态查询有这样一个场景:应用程序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛选数据。这种情况在编译时不知道查询的细节,动态查询将十分有用。在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达式以捕获基础查询方法(例如 Wher
2009-03-03 17:09:00
1927
转载 LINQ体验(16)——LINQ to SQL语句之DataContext
DataContextDataContext作为LINQ to SQL框架的主入口点,为我们提供了一些方法和属性,本文用几个例子说明DataContext几个典型的应用。创建和删除数据库CreateDatabase方法用于在服务器上创建数据库。DeleteDatabase方法用于删除由DataContext连接字符串标识的数据库。数据库的名称有以下方法来定义:如果数据库在连接字符串
2009-03-03 17:08:00
1049
转载 LINQ体验(15)——LINQ to SQL语句之用户定义函数
用户定义函数我们可以在LINQ to SQL中使用用户定义函数。只要把用户定义函数拖到O/R设计器中,LINQ to SQL自动使用FunctionAttribute属性和ParameterAttribute属性(如果需要)将其函数指定为方法。这时,我们只需简单调用即可。在这里注意:使用用户定义函数的时候必须满足以下形式之一,否则会出现InvalidOperationException异常情况
2009-03-03 17:07:00
993
转载 LINQ体验(14)——LINQ to SQL语句之存储过程
存储过程在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些。下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下。1.标量返回在数据库中,有名为Customers Count By Region的存储过程。该存储过程返回顾客所在"WA"区域的数量。ALTER PROCEDURE [dbo].[NonRowset]
2009-03-03 17:05:00
1099
转载 LINQ体验(13)——LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
运算符转换1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。解决方法是指
2009-03-03 17:03:00
1178
1
转载 LINQ体验(12)——LINQ to SQL语句之对象标识和对象加载
对象标识运行库中的对象具有唯一标识。引用同一对象的两个变量实际上是引用此对象的同一实例。你更改一个变量后,可以通过另一个变量看到这些更改。 关系数据库表中的行不具有唯一标识。由于每一行都具有唯一的主键,因此任何两行都不会共用同一键值。 实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理。这就是 LINQ to SQL 支持的模型。将数据作为行从
2009-03-03 17:01:00
802
转载 LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
在本系列中,主要介绍LINQ to SQL基础的东西,因为LINQ太强大了,它对我们平常使用不同的数据源有着不同的内容,其包括对于SQL Server 数据库的LINQ to SQL;对于XML 文档的LINQ to XML;对于 ADO.NET 数据集的LINQ to DataSet;对于.NET 集合、文件、字符串等的LINQ to Objects。例外也出现了一些对LINQ支持的开源项目,例
2009-03-03 17:00:00
1705
转载 LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务
从今天开始继续这个系列。告诉大家一个好消息:微软于2月1日发布了Visual Studio Team System 2008 Team Suite简体中文版,您可以在这里下载Visual Studio Team System 2008 Team Suite简体中文版90 天试用版。今天简单的学习下开放式并发控制和事务的内容,具体详细的内容现在可以参看MSDN了。Simultaneous Cha
2009-03-03 16:59:00
1172
转载 LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作
我们继续讲解LINQ to SQL语句,这篇我们来讨论Insert/Update/Delete操作。这个在我们的程序中最为常用了。我们直接看例子。Insert/Update/Delete操作插入(Insert)1.简单形式说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库。NorthwindDataC
2009-03-03 16:56:00
1750
转载 LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 。Union All/Union/Intersect操作适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。Concat(连接)说明:连接不同的集合,不会自动过滤相同项;延迟。1.简单形
2009-03-03 16:54:00
1487
转载 LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和Exists/In/Any/All/Contains操作符。Group By/Having操作符适用场景:分组数据,为我们查找数据缩小范围。说明:分配并返回对传入参数进行分组操作后的可枚举对象。分组;延迟1.简单形式:var q = from p in db.Products
2009-03-03 16:52:00
1132
1
转载 LINQ体验(6)——LINQ to SQL语句之Join和Order By
Join操作适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等。对各个表之间的关系,就用这些实现对多个表的操作。说明:在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。该扩展方法对两个序列中键匹配的元素进行inner join操作SelectMany说明:我们在写查询语句时,如果被
2009-03-03 16:51:00
1214
转载 LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学
2009-03-03 16:49:00
1101
转载 LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
查询表达式(LINQ)简介在上两篇我介绍了C#3.0新语特性和改进,这些新特性在我们编写程序时为我们提供了非常大的帮助。从这篇开始,我们开始一起来探讨LINQ。LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。
2009-03-03 16:48:00
819
转载 LINQ体验(3)——C# 3.0新语言特性和改进(下篇)
上一篇我们介绍了C# 3.0新语言特性和改进上部分,这篇我们继续介绍剩下的部分。C# 3.0新语言特性和改进包括:自动属性(Auto-Implemented Properties) 隐含类型局部变量(Local Variable Type Inference) 匿名类型(Anonymous Types) 对象与集合初始化器(Object and Collection Ini
2009-03-03 16:46:00
780
转载 LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的第二部分——介绍C# 3.0新语言特性和改进。总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改
2009-03-03 16:43:00
766
转载 LINQ体验(1)——Visual Studio 2008新特性
一、写本系列的目的我平时利用课余零碎时间来学习ASP.NET3.5、LINQ、Silverlight、ASP.NET 3.5 Extensions等新东西,通过笔记形式来记录自己所学的历程,也给大家一起学习Visual Studio 2008 和 .NET 3.5提供一个平台,为保证此系列的完整性,我打算先依次介绍一下C# 3.0新语言特性和改进,然后从一条一条LINQ语句分析来贯穿LINQ的
2009-03-03 16:41:00
1459
原创 SQL日期格式转换
1、CONVERT在日期转换中的使用示例--字符转换为日期时,Style的使用 --1. Style=101时,表示日期字符串为:mm/dd/yyyy格式SELECT CONVERT(datetime,11/1/2003,101)--结果:2003-11-01 00:00:00.000 --2. Style=101时,表示日期字符串为:dd/mm/yyyy格式SELECT CONVERT(
2009-02-24 17:51:00
25543
原创 Control What We Can
Control What We Can掌控我所能 ------by Jone Maxwell We cannot choose how many years we w
2009-02-20 17:30:00
977
原创 使用SQL视图查出所有的数据库字典
本文中的SQL代码可以在企业管理器、查询分析器中简单执行,直接了当的查出SQL Server 2000及SQL Server 2005的所有数据字典。 (注释:数据库字典包括表结构(分SQL Server 2000和SQL Server 2005)、索引和主键.外键.约束.视图.函数.存储过程.触发器。) SQL Server 2000数据库字典—表结构.sql
2009-02-20 14:38:00
1029
原创 SQL Server数据库中经常用到的identity列
SQL Server中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。但它有时还会带来一些麻烦。 示例一 :当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。 SET IDENTITY_INSERT [TABLE] [ON|OFF] 允许将显
2009-02-20 14:03:00
1164
原创 SQL语句大全
--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --
2009-02-19 16:42:00
696
原创 如何快速给现有表添加一个自增字段
http://www.mssqltips.com/tip.asp?tip=1467大家可以看看这篇文章,讲到的是如何给一个现有表更快速的添加一个自增字段,原始的方法代码:ALTER TABLE accounts ADD id INT IDENTITY(1,1) 那么作者也贴出来了统计信息:SQL Server parse and compile time: CPU time = 0 m
2009-02-19 16:04:00
4331
原创 sql函数大全
--聚合函数use pubsgoselect avg(distinct price) --算平均数from titleswhere type=businessgo use pubsgoselect max(ytd_sales) --最大数from titlesgo use pubsgoselect min(ytd_sales) --最小数from titlesgo use pubsgose
2009-02-19 15:19:00
1078
原创 javascript弹出窗口总结
//关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("window.close();");//关闭,父窗口和子窗口都不弹出对话框,直接关闭this.Response.Write("");this.Response.Write("{top.opener =null;top.close();}");this.Response.Write("");//弹出窗口刷新当前页面w
2009-02-19 15:05:00
570
原创 SQL 字符串函数小总结
1:replace 函数第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么select replace(lihan,a,b) -----------------------------lihbn(所影响的行数为 1 行)========
2009-02-19 15:02:00
567
原创 存储过程编写经验和优化措施
一、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。 二、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问
2009-02-19 14:47:00
577
原创 truncate,delete,drop的异同点
注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但
2009-02-19 14:45:00
641
原创 SQL Server 2005四个新的排序函数: ROW_NUMBER、RANK、DENSE_RANK 和 NTILE
ROW_NUMBER、RANK、DENSE_RANK 和 NTILE,这些新函数使您可以有效地分析数据以及向查询的结果行提供排序值。您可能发现这些新函数有用的典型方案包括:将连续整数分配给结果行,以便进行表示、分页、计分和绘制直方图。 Speaker Statistics 方案下面的 Speaker Statistics 方案将用来讨论和演示不同的函数和它们的子句。大型计算会议包括三个议题
2009-02-19 14:42:00
1345
原创 SQL中的日期转换函数详细总结
convert(char(10),datetime,101)在数据库取出来的时候就转换好 select getdate() 2004-09-12 11:06:08.177 我整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select re
2009-02-19 14:23:00
1245
原创 SQL时间函数详细说明
1. 当前系统日期、时间select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,2004-10-15) --返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。select datediff(day,2
2009-02-19 14:17:00
1250
原创 创建存储过程的简单例子
USE Adventureworks--Create a new procedure for queryingCREATE PROCEDURE HumanResources.GetEmployeeNameASSELECT LastName,FirstName,Department FROM HumanResources.vEmployeeDepartmentGO--when you finish
2009-02-19 14:12:00
1193
1
转载 SQL--DateADD() 和datediff()的妙用
/***************************************************作者:万泽贵**时间:2009-02-03**理由:自己整理和网上收集,方便学习**************************************************//*convert(varchar(10),字段名,转换格式)说明:此样式一般在时间类型(datetime,sma
2009-02-19 13:59:00
6325
转载 DateDiff 函数
返回两个日期之间的时间间隔。 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])DateDiff 函数的语法有以下参数:参数interval必选项。String expression 表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。date1, d
2009-02-19 13:56:00
1159
转载 SQL Server高效维护数据库的关键技巧(Paul S. Randal)
概览:管理数据和事务日志文件 清除索引碎片 确保统计数据准确、最新 检测遭到破坏的数据库页 建立有效的备份策略 目录 数据和日志文件管理 索引碎片 统计数据 损坏检测 备份 总结 在一周之内多次有人向我征求高效维护生产数据库的建议。有时问题来自 DBA,他们正在实施新的解决方案,希望得到帮助对维护进行精细调整适合其新数据库
2009-02-18 18:01:00
1473
转载 Sqlserver中百万数据随机提取的问题
select top 2000 * from tb order by newid()但是在海量数据下,它的性能是无法忍受的。这里我用一个变通的办法来实现性能的提升,思路为:表必须存在一个guid类型的主键或者索引列,然后用这个列去like一个随机字符串,随机字符串必须为guid规定的字符集合(数字+A到Z)。下面例子只用到了数字,并且只用了4个数字来匹配,你可以更改like后面的语句来调整这个
2009-02-18 17:44:00
1175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人