随笔分类 -  sql

用sql语句生成 数据字典
摘要:SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' ... 阅读全文

posted @ 2015-10-20 09:18 水行者 阅读(395) 评论(0) 推荐(0) 编辑

两个表查询,查出左表有的,但右表没有的数据
摘要:select * from (select g.ProductListID as gp,l.ProductListId as lp from GenerateLog as l left join GenerateProductList as gon l.ProductListId = g.ProductListID) as t where t.gp is null 阅读全文

posted @ 2013-11-01 16:05 水行者 阅读(1828) 评论(0) 推荐(0) 编辑

SQLServer2005:在执行批处理时出现错误。错误消息为: 目录名无效
摘要:删除数据时忘了想delete删除的话会记录日志,更何况是我删除百万条数据,结果还没删完服务器内存就占慢了,一切数据都进不来了,估计这种情况导致我的数据库有问题了,右键打开表提示:目录名无效,执行SQL语句也提示有错误,本来想重装的这个肯定能解决,但是这个方法真的不视为上上策啊,于是在网上找到了这个解决办法,还真是立即见效啊!分享给大家,希望有帮助奥!点工具栏中〔显示估计的查询计划〕,结果提示Documents and Settings\XXX\Local Settings\Temp\1\xxx.tmp文件不能访问。查看发现没有1这个子目录--这是给1号远程连接会话用的临时目录,手工创建子目录1 阅读全文

posted @ 2013-10-11 15:23 水行者 阅读(424) 评论(0) 推荐(0) 编辑

sql语句总结
摘要:用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleName in (sel 阅读全文

posted @ 2013-09-30 14:27 水行者 阅读(240) 评论(0) 推荐(0) 编辑

在SQL SErver中实现数组功能
摘要:T-SQL象数组一样处理字符串、分割字符串 在日常的编程过程中,数组是要经常使用到的。在利用SQL对数据库进行操作时,有时就想在SQL使用数组,比如将1,2,3,4,5拆分成数组。可惜的是在T-SQL中不支持数组。不过还是有变通的办法。我们可以自己编写两函数Get_StrArrayLength(取得字符串的长度-元素的个数)和Get_StrArrayStrOfIndex(按指定符号分割字符串,返回分割后指定索引的第几个元素)。有了这两个函数,我们就可以非常方便的在T-SQL中处理形如1,2,3,4,5这样的字符串了。 T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样 阅读全文

posted @ 2013-09-22 16:05 水行者 阅读(9836) 评论(0) 推荐(3) 编辑

SQL Server 2008之数据库大型应用解决方案总结
摘要:着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。1、实现原理实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体 阅读全文

posted @ 2013-09-04 15:43 水行者 阅读(212) 评论(0) 推荐(0) 编辑

SQL SERVER 強制指定使用索引 -转载 只为学习
摘要:今天很高兴 ,有学会了一种数据库优化的方式,哈哈今天遇到一個查詢逾時的問題:兩段SQL,只差在WHERE,一個是WHERE COLUMN1='AAA',一個是WHERE COLUMN1='BBB',產生的執行計畫卻不一樣;一個用PK索引,一個用IX索引(叢集索引跟非叢集索引的差別?)查到兩種方法,INDEX()跟FORCESEEKINDEX('指定索引名稱')FORCESEEK 指定從哪個資料表搜尋--系統會自動選用IX_indexselectcount(1)fromtable1 awith(nolock)jointable2 bwith(nol 阅读全文

posted @ 2013-07-12 14:55 水行者 阅读(765) 评论(0) 推荐(0) 编辑

Sql查询除ID以外相同的数据
摘要:id NAME AGE1 n1 12 n1 13 n2 24 n2 25 n22 26 n2 37 n111 18 n222 29 n333 3 查询结果ID NAME AGE1 n1 12 n1 13 n2 24 n2 2----WITH T1 AS (SELECT NAME,AGE FROM FABU GROUP BY NAME,AGE HAVING COUNT(*) >= 2)SELECT ID,NAME,AGE FROM FABU WHERE NAME IN (SELECT NAME FROM T1) AND AGE IN (SELECT AGE FROM T1) 阅读全文

posted @ 2013-07-03 16:32 水行者 阅读(438) 评论(0) 推荐(0) 编辑

SQL优化之索引
摘要:最近碰到一个问题,因数据量越来越大,然后存储过程查询过慢!后来发现没有加索引列导致的!从这里让我开始慢慢去了解索引的原理及作用!以下是我的总结,个人理解只供参考:SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查"安"字,就会很自然地翻开字典的前几页,因为"安"的拼音是"an",而按照拼音 阅读全文

posted @ 2013-06-26 09:31 水行者 阅读(252) 评论(0) 推荐(0) 编辑

SQL一列多行字符串分组合并
摘要:最近工作遇到如下数据:需要合并后只剩下两行的数据,普通的group by 是不能实现的。(如图) 利用如下SQL代码,即可实现需求(如图):利用 stuff 函数实现分拆合并操作select TeacherName,TrainingCenterName=stuff ( (select ','+TrainingCenterName from @tmp a where a.TeacherName=b.TeacherName for xml path('')),1,1,'' ) from @tmp b group by TeacherName结果如下: 阅读全文

posted @ 2013-06-24 15:03 水行者 阅读(1954) 评论(0) 推荐(0) 编辑

SQLSERVER数据库管理数据库原理
摘要:数据库的存储结构: 1.逻辑存储结构:是指数据库有那些性质的信息组成,即一个数据库由若干用户可视的各种数据库对象构成,如:表,视图,索引,存储过程等 2.物理存储结构:表现为存储数据的各类操作系统文件,SQL Server 2008R2数据库在磁盘上以文件为单位存储的,由数据文件和事务日志文件组成,每个数据库至少要具有两种操作系统文件:一个数据文件和一个事务日志文件。 数据文件可以隶属于某个文件组以便于该文件中数据存储的管理数据文件:可以分为主数据文件和次数据文件两种形式。 1.主数据文件是数据库的起点,用来存储数据库的启动信息和部分货全部数据,每个数据库都有且仅有一个主数据文件,主数据文件名 阅读全文

posted @ 2013-06-24 11:26 水行者 阅读(2104) 评论(0) 推荐(0) 编辑

sql统计
摘要:SELECT TOP 1000 a.[Title]as 第一级,b.[Title] as 第二级 ,c.[Title] as 第三级, s.总数 as 总数 FROM [MyAli].[dbo].[AL_Charpt] as c inner join AL_Book as b on c.bookid=b.id inner join AL_Category as a on b.[ParentID]= a.id inner join AL_Article as art on art.ChartpID=c.id inner join (select count(*) as 总数, Articl... 阅读全文

posted @ 2013-06-21 17:53 水行者 阅读(302) 评论(0) 推荐(0) 编辑

影响数据库访问速度的九大因素
摘要:1. 没有索引或者没有用到索引 数据库索引就像书籍中目录一样,使用户在访问数据库数据时,不必遍历所有数据就可以找到需要的数据。创建索引后,可以保证每行数据的唯一性,极大地提高数 据检索效率,这是一中牺牲空间换取性能的方法。没有索引或者没有用到索引是数据访问速度慢最常见的因素,也是程序设计的一个缺陷所在。2. I/O吞吐量小,形成了瓶颈效应 I/O吞吐量是影响数据访问速度的客观因素(硬件因素)。在一定的硬件环境下,利用优化的部署方案可适当提高I/O吞吐量。3. 没有创建计算列导致查询不优化 计算列是一个比较特殊的列,不填写任何设计类型,用户不可以改变该列的值。计算列的值是通过一定的函数公式等以另 阅读全文

posted @ 2013-06-21 11:48 水行者 阅读(322) 评论(0) 推荐(0) 编辑

使用Sqlserver事务发布实现数据同步
摘要:事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进 的。这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下操作流程,一方面做个总结备份,一方面与大家进行一下分享和交 流。费话就不多说了,进入一下今天的正题:) 这里要说明一下环境:首先我在本地局域网内有两台安装有sqlserver2008的机器(注意:已发布的快照版本无法向老版本数据库兼容,意味着 2008下创建的事务或快照发布,无法被sqlserver2005订阅)。当然这两台机器要放在同一个网段,一方面出现性能和安全性考虑, 阅读全文

posted @ 2013-06-21 10:38 水行者 阅读(296) 评论(0) 推荐(0) 编辑

[转]SqlServer数据库同步方案详解
摘要:SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍:一、 数据复制前提条件1. 数据库故障还原模型必需为完全还原模型。2. 所有被同步的数据表都必须要用主键。3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。4. SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。二、 解决前提条件实施步骤1. 将数据库故障还. 阅读全文

posted @ 2013-06-21 10:37 水行者 阅读(494) 评论(0) 推荐(0) 编辑

sql语句批处理
摘要:上周在测试环境建了几十张表,保存了.sql文件,准备在正式环境重建的时候懒得一个个打开建了,做一在网上搜寻了一下,果然有简单点的方法。利用osql/ocmd批处理批量执行sql文件注意:在上图中我们可以看到osql 并不支持 SQL Server 2008的所有功能,如果需要使用SQL Server 2008的所有功能可以使用ocmd命令。有了osql/ocmd命令要批量执行sql文件当然需要写一个批处理命令,例如我们执行上面sql文件就可以在txt中编写下面的语句:复制代码 代码如下: osql -S"127.0.0.1" -U"sa" -P" 阅读全文

posted @ 2013-05-29 16:23 水行者 阅读(305) 评论(0) 推荐(0) 编辑

SQL Server 2008 数据库同步的两种方式 (发布、订阅)
摘要:上篇中 说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2、订阅。首先 在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发 布。下面分别介绍发布、订阅的过程。 一、发布。发布需要用实际的服务器名称,不能使用服务器的IP地址进行。能发布的信息包括【表】、【存储过程】、【用户函数】如果使用IP会有错误,如下图: 具体发布过程如下: 1、找到数据库服务器下的【复制】--【本地发布】,选择【新建发布】。如下图... 阅读全文

posted @ 2013-05-28 11:04 水行者 阅读(146) 评论(0) 推荐(0) 编辑

SQLServer2008导出包含数据的SQL文件
摘要:环境:SQLServer 2008 R2问题:导出的SQL文件中没有数据解决:1.展开数据库-------->选中某个数据库-------->任务-------->生成脚本;2.单击下一步-------->进入如下界面,可以选择需要为整个数据库导出还是只导出某个数据库;3.下一步-------->选择选项(注意选择SQL文件的生成路径)4.在上一个界面中选择高级-------->托下拉列表-------->将“要编写脚本的数据的类型”选择到“架构和数据”-------->单击确定;5.单击下一步6.选择完成,生成的脚本就会有数据了。总结:最关键的 阅读全文

posted @ 2013-05-14 11:25 水行者 阅读(395) 评论(0) 推荐(0) 编辑

SQL: 随机从数据库取值
摘要:select ArticleId, Title,CreateDate from (SELECT top 2 * FROM [Article] Where ArticleId <10 Order By NewId() ) AS AUNION select ArticleId,Title,CreateDate from (SELECT top 8 * FROM [Article] Where ArticleId >10 Order By NewId() ) AS B//*********************************************************** 阅读全文

posted @ 2013-04-17 11:42 水行者 阅读(218) 评论(0) 推荐(0) 编辑

经典SQL语句大全 收集别人的主要是为了学习的时候查找方便
摘要:一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create table tabname(col1 type1 [ 阅读全文

posted @ 2013-03-26 10:22 水行者 阅读(247) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示