文章分类 -  数据库

摘要:原始数据如下图所示:(商品的销售明细)date=业务日期;Item=商品名称;saleqty=销售数量; -- 建立测试数据(表)create table test (Date varchar(10), item char(10),saleqty int)insert test values('20 阅读全文
posted @ 2020-07-09 14:47 山清石玉 阅读(367) 评论(0) 推荐(0)
摘要:错误: 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 解决方案: 阅读全文
posted @ 2017-06-29 09:54 山清石玉 阅读(2591) 评论(0) 推荐(0)
摘要:sql中添加约束的一些语法--------添加主键约束(bookid作为主键) alter table bookmessageadd constraint pk_bookid primary key(bookid) --------添加唯一约束 alter table bookmessageadd constraint uq_bookid UNIQUE(bookid) ---------添加默认约束 alter table bookmessageadd constraint df_address DEFAUIT('地址不详') for Address--------添加检出约束 阅读全文
posted @ 2013-05-29 13:37 山清石玉 阅读(615) 评论(0) 推荐(0)
摘要:假设要实现约束的列名为C1, 所在表名为MyTable(1)除了SQL SERVER 以外的大型数据库都是允许 UNIQUE约束有多个空值的。(2)SQL Server 2008中有了一个解决方案,那就是筛选索引。CREATE UNIQUE NONCLUSTERED INDEX MyTable ON MyTable(C1)WHERE C1 is not nullGO(3)SQL Server 2008以下版两个方案A、使用触发器在插入和更新时控制CREATE trigger Mytrigger on MyTable for insert, update as BEGIN IF (select 阅读全文
posted @ 2013-05-29 13:36 山清石玉 阅读(4144) 评论(0) 推荐(0)
摘要:SQL code问题描述:本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求实现如下15个处理:1. 写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。2. 找出借书超过5本的读者,输出借书卡号及所借图书册数。3. 查询借阅了"水浒"一书的读者,输出姓名及 阅读全文
posted @ 2013-05-02 16:13 山清石玉 阅读(232) 评论(0) 推荐(0)
摘要:select Convert(decimal(18,2),100.1231234) 输出结果:100.12select Convert(decimal(18,2),100) 输出结果:100.00 阅读全文
posted @ 2012-10-17 15:20 山清石玉 阅读(204) 评论(0) 推荐(0)
摘要:分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作. 分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示: 而对于SQL SERVER2005之前的版本,是没有分区这个概念的,所谓的分区仅仅是分布式视图: 本篇文章所讲述的分区表指的是SQL SERVER2005之后引入的分区表特性.为什么要对表进行分区 在回答标题的问题之前,需要说明的是,表分区这个特性只有在企业.. 阅读全文
posted @ 2012-08-27 11:57 山清石玉 阅读(263) 评论(0) 推荐(0)
摘要:SQL Server安装4个系统数据库。它们分别是master数据库、model数据库、tempdb数据库和msdb数据库。这些数据库是SQL Server的心脏和灵魂。另外,还安装了两个实例数据库,分别是:Northwind和pubs;master数据库master数据库控制SQL Server的所有方面。这个数据库中包括所有的配置信息、用户登录信息、当前正在服务器中运行的过程的信息。model数据库model数据库是建立所有用户数据库时的模板。当你建立一个新数据库时,SQL Server会把model数据库中的所有对象建立一份拷贝并移到新数据库中。在模板对象被拷贝到新的用户数据库中之后,该 阅读全文
posted @ 2012-08-27 11:21 山清石玉 阅读(7197) 评论(0) 推荐(1)
摘要:1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。 2 锁的种类:共享锁(share lock,简称S锁);排它锁(exclusive lock,简称X锁);更新锁(update lock,简称U锁)。这三种锁的相容矩阵表如下:锁的类型/可申请的锁已有的锁 S U X S ∨ ∨ × U ∨ × × X × × 阅读全文
posted @ 2012-08-27 10:40 山清石玉 阅读(173) 评论(0) 推荐(0)
摘要:SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑步骤的简单描述。逻辑查询处理阶段简介FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesia 阅读全文
posted @ 2012-08-27 10:34 山清石玉 阅读(162) 评论(0) 推荐(0)
摘要:最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有点可笑),让许多人不知道其是对还是错。而SQL优化又是每个要与数据库打交道的程序员的必修课,所以写了此文,与朋友们共勉。谈到优化就必然要涉及索引,就像要讲锁必然要说事务一样,所以你需要了解一下索引,仅仅是索引,就能讲半天了,所以索引我就不说了(打很多字是很累的,况且我 阅读全文
posted @ 2012-08-18 20:27 山清石玉 阅读(228) 评论(0) 推荐(0)
摘要:当需要分析某个查询的效能时,最好的方式之一查看这个查询的执行计划。执行计划描述SQL Server查询优化器如何实际运行(或者将会如何运行)一个特定的查询。查看查询的执行计划有几种不同的方式。它们包括:SQL Server查询分析器里有一个叫做”显示实际执行计划”的选项(位于”查询”下拉菜单中)。如果打开了这个选项,那么无论何时在查询分析器中运行一个查询,都会得到一个显示在单独窗口的查询执行计划(以图形的格式)。如果只是想看下执行计划而不想运行查询,那么可以选择”显示预估的执行计划”选项(位于”查询”下拉菜单中)。当选择这个选项后,执行计划会马上显示出来(以图形的格式)。两者的不同之处在于当实 阅读全文
posted @ 2012-08-18 15:17 山清石玉 阅读(143) 评论(0) 推荐(0)
摘要:汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。 如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能 阅读全文
posted @ 2012-08-18 14:42 山清石玉 阅读(130) 评论(0) 推荐(0)
摘要:50种方法优化SQL Server数据库查询查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化... 阅读全文
posted @ 2012-08-13 17:24 山清石玉 阅读(4017) 评论(1) 推荐(3)
摘要:在上一章节中我们初步了解了SSIS体系结构以及如何创建一个SSIS包。现在就介绍一下如何在创建的包中使用各个选项卡。打开上一章节创建的SSIS包。整个界面风格如下:在整个包中包含了控制流选项卡、数据流选项卡、事件处理程序选项卡等等。下面通过一个简单的例子介绍如何利用这些选项卡创建一个完成的工作任务包。本示例的主要功能是从数据库AdventureWorks中Product表中读取2001年到2007年的数据导入到Excel中。创建变量从图左边的变量或从SSIS菜单中选择变量来的打开变量(Variables)按图创建两个日期变量再图中,我们将变量StartDate的值设置为"2001/1 阅读全文
posted @ 2012-08-13 17:21 山清石玉 阅读(210) 评论(0) 推荐(0)
摘要:SSIS 其全称是Sql Server Integration Services ,是MicrosoftBI 解决方案的一大利器.SSIS 的体系结构主要由四部分组成:Integration Services 服务、Integration Services 对象模型、Integration Services 运行时和运行时可执行文件以及封装数据流引擎和数据流组件的数据流任务(如图):这是我们初学者必须要了解的,只要明白了这个体系统结构,体会了各组成部分之间的关系,清楚了什么是控制流、什么是数据流,SSIS学起来就不难了。接下来让我们从一个例子来初探一下SSIS的使用.当然要想成功执行示例.你需 阅读全文
posted @ 2012-08-13 17:11 山清石玉 阅读(2776) 评论(0) 推荐(0)
摘要:SQL 中使用ltrim()去除左边空格,rtrim()去除右边空格,没有同时去除左右空格的函数,要去除所有空格可以用replace(字符串,' ',''),将字符串里的空格替换为空。例:去除空格函数。declare @temp char(50)set @temp = ' hello sql 'print ltrim(@temp) --去除左边空格print rtrim(@temp) --去除右边空格print replace(@temp,' ','') --去除字符串里所有空格print @temp>> 阅读全文
posted @ 2012-08-06 13:36 山清石玉 阅读(528) 评论(0) 推荐(0)
摘要:一.如:'6.7.8.2.3.4.x'得到最后一个'.'后面的字符串:declare @str1 varchar(50)set @str1='6.7.8.2.3.4.x'select REVERSE(SUBSTRING(REVERSE(@str1),1,CHARINDEX('.',REVERSE(@str1))-1)) -------- string:'x'-------------------------------------------------------------------------------- 阅读全文
posted @ 2012-07-18 16:17 山清石玉 阅读(5744) 评论(0) 推荐(0)
摘要:1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。 当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B, EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。 当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C,INTE 阅读全文
posted @ 2012-07-11 17:17 山清石玉 阅读(20042) 评论(1) 推荐(0)
摘要:-- =============================================-- Description:<判断18位身份证号是否正确,返回结果对应如下:>-- -1:位数不正确-- 0:位数正确,但证号不合法-- 1:位数正确,且证号合法-- =============================================createFUNCTION [dbo].[f_check18sfzh](@ID18 varchar(30)--要校验的证号)RETURNS intASBEGIN DECLARE @ID15 varchar(30),@S18 int 阅读全文
posted @ 2012-07-11 10:09 山清石玉 阅读(2570) 评论(0) 推荐(0)