随笔分类 - Sql Server数据库
摘要:想来想去,总想写写SQL Server方面的知识,像视图、存储过程,大数据量操作的优化等等。
先把基础的知识总结个遍先,然后再寻求更高更远的发展。这篇文章,将带大家来看看视图。
何谓视图,视图包含行和列,就像一个真实的表(虚表)。视图中的字段就是来自一个或多个数据库中真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
对于视图跟函数的区别,很多人都想知道,我也想知道,也上网查询了相关的内容,但是大多只是解释其概念,并没有区分明白。那么,就我学习到的内容,我也谈谈它们之间的区别。我认为视图跟内联表值函数比较接近(只是接近,但是不能完全取代),不同于标量函数只能返回一个值,不同于多语句表值函数,可以有多条语句来返回表数据集。但是视图不像内联表值函数,它不能有参数传递。而对于视图来讲,它比内联表值函数多出一个WITH CHECK OPTION限制。如果觉得本人总结得不好,欢迎大家拍砖。让思维碰撞出火花,让我们共同进步。
阅读全文
摘要:前几篇博文介绍了不少SQL Server系统自带函数方面的使用方法,这次将学习SQL Sever用户自定义函数的使用方法,算是对SQL Server函数的补充。希望与园里的朋友共同学习并取经。
关于SQL Server用户自定义的函数,有标量函数、表值函数(内联表值函数、多语句表值函数)两种。
题外话,可能有部分朋友不知道SQL Serve用户自定义的函数应该是写在哪里,这里简单提示一下,在Microsoft SQL Server Managerment Studio里面,展开具体需要创建SQL Server用户自定义函数的数据库(即每个用户自定义函数只针对具体的一个数据库有用),然后找到可编程性选项,再展开找到函数选项,在具体的函数选项里面可参照下图的方式鼠标右键选择来添加。
阅读全文
摘要:作为一名开发人员来讲,我感觉在职场白混了好多年,可能是自己真的没有进取的精神吧,看了《程序员的SQL金典》这本电子书,真的让我学到了不少知识,真心喜欢这本电子书,书中讲解的内容比较好懂,也比较实用。谢谢作者的辛勤汗水:)。
今天将要介绍SQL Sever的开窗函数,何谓开窗函数,不懂吧。反正对于我来说,我是摸不着头脑了,第一次听说过。那么,什么是开窗函数,其实可以理解为是聚合函数的一个加强版。因为使用聚合函数的话(不包括子查询的情况),整个查询都只能是聚合列返回值,而不能有基础行的返回值。那么对于需要基础行的返回值的话,就需要使用复杂的子查询或者是存储过程等才可以解决。但是使用开窗函数就可以轻松解决,它能够在同一行中同时返回基础行的列和聚合列。在ISO SQL规定了这样的函数为开窗函数,在Oracle中则被称为分析函数,而在DB2中则被称为OLAP函数。
阅读全文
摘要:说起SQL SERVER的调优,我想大伙也很想知道这方面的知识。本人也正在探索的路上,大家有什么好的意见,欢迎一起探讨、研究。博取众人之长,才能扬长避短。
本文中的内容主要是摘自《程序员的SQL金典》,如若大家想拜读,可在网上下载拜读(当然最好的方式还是购买作者的书)。
关于调优的方案,有涉及硬件方面的知识,也有涉及软件方面的知识。但本人只是个软件方面的IT男,所以只是记录软件方面的内容。
其实关于SQL SERVER或者是其它数据库来讲,有些优化手段都是一致的。比如常规的方式有如下几种方式:
阅读全文
摘要:本篇文章还是学习《程序员的SQL金典》内容的记录,此次将讲解的是SQL SERVER常用的其它函数。(其它数据库这里就不罗列了,想看更多的可以关注《程序员的SQL金典》)。
具体的其他函数包括:类型转换的函数、空值处理的函数、流程控制函数、SQL SERVER独有函数。
阅读全文
摘要:本篇文章还是学习《程序员的SQL金典》内容的记录,此次将讲解的是SQL SERVER的时间函数。
本文只讲SQL SERVER支持的时间函数(其它数据库这里就不罗列了,想看更多的可以关注《程序员的SQL金典》),其它数据库的时间函数可看该书。
对于时间来讲,我想基础的东西大家还是需要懂的,比如说,对于时间来说,有分:
(1)日期:表示“年-月-日”信息的数据类型,其精度精确到“日”,其中包含了年、月、日三个信息,比如“2008-08-08”。而无时间点的概念。在数据库中,一般用Date来表示日期类型。
阅读全文
摘要:本篇文章还是学习《程序员的SQL金典》内容的记录,此次将讲解的是SQL SERVER的字符串函数。
其实数据库跟程序语言库一样,都会集成很多可以使用的API。这些API,如果你熟悉的话,将减少在代码层次的再次加工操作。
我想字符串函数的使用价值还是很高的,所以我觉得一边学习一起把常用的东西都记录下来。一来提升自己的悟性,二来通过归纳使知识为我所用。
SQL SERVER支持的字符串函数(其它数据库这里就不罗列了,想看更多的可以关注《程序员的SQL金典》),本文将介绍如下内容:
阅读全文
摘要:每天给自己扫盲,让自己变得越博学。
继续学习《程序员的SQL金典》,这回我们来看看表连接相关的内容。表连接的相关知识在实际的项目开发当中,使用非常广。
所谓表连接,就是通过关联多张表,从而检索出需要的数据。实际的项目,存在多张表的关联关系。不可能在一张表里面就能检索出所有数据。如果没有表连接的话,那么我们就需要非常多的操作。比如需要从A表找出限制性的条件来从B表中检索数据。不但需要分多表来操作,而且效率也不高。
阅读全文
摘要:最近学习了SQL SERVER方面的知识,毕竟做Web应用,少不了跟数据库打交道。学习的来源主要是《程序员的SQL金典》这本书。
今天介绍数据库里面的集合运算符,它是指匹配集合的每一个结果。数据库集合运算符包括:IN、ANY、SOME、ALL以及EXISTS等。
以上的SQL代码都为《程序员的SQL金典》(作者:杨中科)例子,书的例子更详细,大家有兴趣的话,可以网上下载PDF文档看,当然购买正版书也是不错的选择。
阅读全文
摘要:我的博客已好久没有文字方面的记载了,好歹昨天已经结束软件设计师的考试了,今天怎么说也需要锻炼自己的写作能力。不然真怕自己又像上一年一样,一停就一年多了。
想好好学习数据库(SQL SERVER)方面的知识,哪怕是工具的使用也好。每天前进一小步,才能成就未来一大步。今天要介绍的是怎么使用Microsoft SQL Server Management Studio导入数据。
Microsoft SQL Server Management Studio是SQL SERVER的客户端工具,相信大家都知道。我不知道大伙使用导入数据的情况怎么样,反正我最近是遇到过。主要是因为没有远程数据库服务器的权限,而需要测试新修改的内容对旧数据的冲突。因为流程改变,免不了需要修改数据来适应新的变化。所以需要在测试环境里面去模拟真实环境的数据。当时还搞笑,直接是粘贴到EXCEL,然后再复制到数据库。对于一般来说,这种方式也可以,但是对于一些特殊的字符,如果直接粘贴到EXCEL里面的话,并不能正常显示出来,比如说bit字段、DateTime字段。
阅读全文