随笔分类 -  T-SQL技术

摘要:大型数据库的数据库备份和维护窗口总是受阻,特别是当我们需要完全数据库备份来初始化一个数据库镜像或事务日志传送会话的时候。当我们浏览 SQL Server 2008的新特性时,我们发现由一个叫做数据库备份压缩的特性,可以用它来显著地降低备份和恢复操作。 数据库压缩是SQL Server 2008的一个新特性,它可以显著地降低备份和恢复操作。默认情况下,备份压缩是在服务器实例级别上关闭的。不像其它提供不同级别压缩的第三方软件,SQL Server 2008只提供了一个级别。 在这篇文章里,我们将看看怎样执行数据库备份压缩和比较一下一个普通数据库备份的备份和恢复时间与压缩数据库备份的备份和恢复时.. 阅读全文
posted @ 2013-05-24 15:02 八神吻你 阅读(2541) 评论(0) 推荐(2)
摘要:数据库模糊搜索时,关键字中有%号,怎么办? 数据库模糊搜索时,都知道应该用通配符%号来模糊匹配。如:select *from table where content like '%key%'。但当关键字key中也包含有%号时,应该怎么办? 数据库中有关键字:escape就是用来转换的。使用escape关键字定义转义符时,当转义符置于通配符之前时,该通配符就解释为普通字符。用 法:ESCAPE 'escape_character' 其允许在字符串中搜索通配符而不将其作为通配符使用。'escape_character'通常用'/'或& 阅读全文
posted @ 2013-02-26 09:05 八神吻你 阅读(513) 评论(0) 推荐(0)
摘要:使用场景:对数据处理,想对一些数据进行统计,使用Group by 关键字,得到@Result,但是有时候 因为数据原因,一些组因为没有数据,结果不会显示,想找回丢失的组,我们可以把所有需要显示的组保存在临时表@Type,然后对@Result和@Type进行right join ,找回丢失的组信息。有时候我们希望返回的结果是按照指定的顺序返回,我们可以在临时表中增加orderID一个字段,对需要数据顺序指定大小,最后order by 这个字段得到我们想要的顺序。。。 阅读全文
posted @ 2012-11-21 18:57 八神吻你 阅读(455) 评论(0) 推荐(0)
摘要:一、行转列 1、建立表格 ifobject_id('tb')isnotnulldroptabletb go createtabletb(姓名varchar(10),课程varchar(10),分数int) insertintotbvalues('张三','语文',74) insertintotbvalues('张三','数学',83) insertintotbvalues('张三','物理',93) insertintotbvalues('李四','语文 阅读全文
posted @ 2012-11-20 10:23 八神吻你 阅读(575) 评论(0) 推荐(0)
摘要:表的简单设计 Product表:ID,Product信息等等。Product表:记录商品信息,ID是主键标识。LocationList表:ID,PageType,Position,等等。LocationList表:每条记录表示着一个类型页面的推荐位,类如:首页,大、中、小类页面,上面都有:新品、促销、热卖等推荐位。 PageType记录着页面类型:首页、大、中、小类页面可以用(0,1,2,3)代表。 Position记录着页面上的位置:新品、促销、热卖等,可以用(10,20,30)代表。 OnlistProductList表:ProductID,LocationID,PageID等等。Onli 阅读全文
posted @ 2012-05-12 10:18 八神吻你 阅读(675) 评论(1) 推荐(0)
摘要:逻辑查询处理的各个阶段一个普通格式的查询(5)SELECT DISTINCT TOP N <SELECTLIST>(1)FROM <LEFTTB> JOIN <RIGHTTB> ON <ONPRE>(2)WHERE <WHEREPRE>(3)GROUP BY <SPECIFICATION>(4)HA 阅读全文
posted @ 2012-04-12 16:58 八神吻你 阅读(2282) 评论(0) 推荐(2)
摘要:特别说明本文中的出现的‘对象’,可以理解为数据库中的一条记录。本文中的出现的‘属性’,可以理解为数据库中的一条记录中的字段。主属性可以理解为数据库中的一条记录的主键。非主属性可以理解为数据库中的一条记录的主键以外的字段。函数依赖定义一:Method(x)=y,x、y是一个对象,x在经过一个函数后会得到y。我们就说:x函数确定y,y函数依赖x。x值决定y值,记成:x->y例如:(学号,课程号)->(成绩)(学号,课程号)->(姓名)(学号,课程号)->(学号)(学号)->(姓名)上面的都是x->y模型。定义二:x->y,x、y是一个对象,x在经过一个函数 阅读全文
posted @ 2012-03-16 11:08 八神吻你 阅读(2254) 评论(2) 推荐(5)
摘要:子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。在此示例中,子查询用作 SELECT 语句中名为 MaxUnitPrice 的列表达式。otherUSE AdventureWorks2008R2;GOSELECT Ord.SalesOrderID, Ord.OrderDate, (SELECT MAX(OrdDet.UnitPrice) FROM AdventureWorks.Sales.SalesOrderDetail AS OrdDet WHERE Ord.SalesO... 阅读全文
posted @ 2011-10-13 13:36 八神吻你 阅读(19960) 评论(3) 推荐(2)
摘要:每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用程序中是没有用的,这些信息是存储过程中的每个语句的DONE_IN_PROC 信息。 我们可以利用SET NOCOUNT 来控制这些信息,以达到提高程序性能的目的。 MSDN中帮助如下: SET NOCOUNT 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。 语法 SET NOCOUNT { ON | OFF } 注释 当 SET NOCOUNT 为 ON 时,不返.. 阅读全文
posted @ 2011-10-12 16:46 八神吻你 阅读(87647) 评论(4) 推荐(11)
摘要:排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一、row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示:select row_... 阅读全文
posted @ 2011-10-11 18:27 八神吻你 阅读(986) 评论(0) 推荐(1)
摘要:养成一个SQL好习惯带来一笔大财富我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?那么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序,下手的时候就胸有成竹,那么下手是不 阅读全文
posted @ 2011-09-16 09:20 八神吻你 阅读(534) 评论(0) 推荐(0)
摘要:SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。1.如果有ID字段,就是具有唯一性的字段delect table where id not in ( select max(id) from table group by col1,col2,col3... ) group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。2. 如果是判断所有字段也可以这样select *... 阅读全文
posted @ 2011-09-05 10:30 八神吻你 阅读(357) 评论(0) 推荐(0)
摘要:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引什么是索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。 索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇... 阅读全文
posted @ 2011-08-18 08:46 八神吻你 阅读(513) 评论(0) 推荐(0)
摘要:1.问题如下ExampleTable表,求各种类(CategoryID)满足Flag等于1的记录数,包括记录数为0的也要显示出来。ID Flag CategoryID 1 1 1 2 1 1 3 1 2 4 1 2 5 0 3 表1-ExampleTable理想的结果应该如下:CategoryID TotalNum 1 2 2 2 3 0 表2-理想输出结果初看此问题,我们很容易写出如下语句:SELECT CategoryID,COUNT(1) AS TotalNum FROM ExampleTable WHERE flag = 1 GROUP BY Cat... 阅读全文
posted @ 2011-08-10 10:08 八神吻你 阅读(366) 评论(0) 推荐(0)
摘要:一、SQL基础知识1、DDL(数据定义语言)1)创建数据表--创建数据表createtable Test(Id intnotnull, Age char(20));--创建数据表createtable T_Person1(Id intnotnull, Name nvarchar(50), Age intnull);--创建表,添加外键Createtable T_Students( StudentNo char(4), CourseNo char(4), Score int,Primar... 阅读全文
posted @ 2011-08-09 08:27 八神吻你 阅读(1104) 评论(0) 推荐(0)
摘要:左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少。在Oracle PL-SQL中,左连接和右连接可以用如下的方式实现: 语句片断: SELECT emp_name, dept_name FORM Employee, Department WHERE Employee.emp_deptid(+) = Department.deptid此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个... 阅读全文
posted @ 2011-05-04 15:17 八神吻你 阅读(400) 评论(1) 推荐(0)