-
深入浅析SQL封装、多态与重载
面向对象1.类:众多对象抽象出来的2.对象:类实例化出来的3.类的定义关键字class4.类里面包含成员变量成员属性成员方法5.面向对象三大特性(1)封装目的:保护类,让类更加安全。做法:让类里面的成员变量变为私有的,做相应的方法或者属性去间接的操作成员变量封装成员方法来间接操作类里面的成员变量使用成员属性来间接访问类里面的成员变量访问修饰符private私有的只能在该类中访问protected受保护的只能在该类和它的子类中访问public公有的在任何地方都可以访问构造方法(函数):作用:造对象所要调用的方法,用来创建对象,可以对成员进行初始化每一个类都有一个构造方法,不写也有只不过看不到而已特殊性:写法特殊执行时间特殊this关键字:this代表该对象,不是代表该类(2)继承:概念:子类可以继承父类的一切特点:单继承一个子类只能有一个父类,一个父类可以有多个子类(所有父类都是object)base关键字sealed关键字:密封类该类不可以被继承部分类:partial可以将一个类拆分成多个部分,分别放在多个文件内namespace命名空间相当于虚拟文件夹(3)多态:1.编译多态函数重载...
数据库操作教程 2022-09-23 18:01:03 -
SQLserver表数据改变触发发送邮件的方法
今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件。领到这个需求后,有同事提供方案:写触发器触发外部应用程序...
数据库操作教程 2022-09-23 18:00:59 -
通过使用正确的searcharguments来提高SQLServer数据库的性能
原文地址:http://www.sqlpassion.at/archive/2014/04/08/improving-query-performance-by-using-correct-search-arguments/今天的文章给大家谈谈在SQLServer上关于indexing的一个特定的性能问题。问题看看下面的简单的query语句,可能你已经在你看到过几百次了--ResultsinanIndexScanSELECT*FROMSales.SalesOrderHeaderWHEREYEAR(OrderDate)=2005ANDMONTH(OrderDate)=7GO上门的代码查询一个销售信息,需要一个特定的月份和年份的,这不是很复杂...
数据库操作教程 2022-09-23 18:00:56 -
SQLServer行转列实现思路记录
最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件)相关的数据表:1.Score表 2.[User]表 SQL语句如下:--方法一:静态SQL复制代码代码如下:SELECT*FROM(SELECTUID,Name,Score,ScoreNameFROMScore,[User]WHEREScore.UID=[User].ID)ASSourceTablePIVOT(AVG(Score)FORScoreNameIN([英语],[数学]))ASa--方法二:动态SQL复制代码代码如下:DECLARE@sNVARCHAR(4000)SELECT@s=ISNULL(@s+',','')+QUOTENAME(ScoreName)FROM(selectdistinctScoreNamefromScore)asA---列名不要重复Declare@sqlNVARCHAR(4000)SET@sql='selectr.*from(selectUID,Name,ScoreName,ScorefromScore,...
数据库操作教程 2022-09-23 18:00:43 -
详解SQLServer的简单查询语句
前言对于一些原理性文章园中已有大量的文章尤其是关于索引这一块,我也是花费大量时间去学习,对于了解索引原理对于后续理解查询计划和性能调优有很大的帮助,而我们只是一些内容进行概括和总结,这一节我们开始正式步入学习SQL中简单的查询语句,简短的内容,深入的理解。简单查询语句所有复杂的语句都是由简单的语句组成基本都是由SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等组成,当然还包括一些谓词等等...
数据库操作教程 2022-09-23 18:00:38 -
sql语句插入结果为select和值混合示例
复制代码代码如下:Stringslctpsql="selectid,"+uid+","+ddd+","+score+",'"+mark+"',"+markid+","+exam.getId()+"fromTest_PaperwheretestBaseId=(selectidfromTest_BasewherebaseTestId="+judgemap...
数据库操作教程 2022-09-23 18:00:33 -
SQLServer数据类型char、nchar、varchar、nvarchar的区别浅析
在SQLServer中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:charncharvarcharnvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别。char:固定长度,非Unicode字符数据,长度为n个字节...
数据库操作教程 2022-09-23 18:00:22 -
sqlserver判断数据库、表、列、视图是否存在
1判断数据库是否存在ifexists(select*fromsys.databaseswherename='数据库名')dropdatabase[数据库名]2判断表是否存在ifexists(select*fromsysobjectswhereid=object_id(N'[表名]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[表名]3判断存储过程是否存在ifexists(select*fromsysobjectswhereid=object_id(N'[存储过程名]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[存储过程名]4判断临时表是否存在ifobject_id('tempdb...
数据库操作教程 2022-09-23 18:00:17 -
sql查询出各科成绩最好的学生信息
1.相关数据表Score表 [User]表SQL语句如下:复制代码代码如下:--查询出各科成绩最好的学生信息--自连接--SELECTTOP1*FROMScoreBWHEREB...
数据库操作教程 2022-09-23 18:00:12 -
SQLSERVER2000通讯管道后复用劫持
作者:FLASHSKYSITE:WWW.XFOCUS.NET邮件:[email protected]通讯中,允许使用有名管道来进行通讯,一般情况下是如此命名的:默认实例:.pipesqlquery命名实例:.pipeMSSQL$instancenamesqlquery也可以通过1434UDP进行查询获得这个管道名称但是由于SQLSERVER2000对于这个管道的ACL设置为NULL,导致任何用户的权限都可以对这个管道进行劫持,以前的劫持都是利用先停掉服务,再建立这个名字管道,然后再启动服务来复用自己已经建立了名字的管道,但实际上SQLSERVER2000会判断是否已有同名管道,然后会取别的名字,而且低级权限的用户也启动和停止不了服务(除非是利用一些漏洞),但是实际上对管道的测试却发现:如果ACL设置成NULL的话,即使是后命名的管道,也可以劫持先命令的管道,只需要简单复用管道,然后自己建立几个管道的连接不释放(具体建立几个估计和真正的管道建立时的实例个数有关,如在我的测试下,.pipesqlquery只需要建立1个接可以劫持了,而.pipelsass则需要...
数据库操作教程 2022-09-23 18:00:05 -
sql判断函数、存储过程是否存在的代码整理
下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助。--库是否存在ifexists(select*frommaster..sysdatabaseswherename=N'库名')print'exists'elseprint'notexists'--判断要创建的表名是否存在ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[表名]')andOBJECTPROPERTY(id,N'IsUserTable')=1)--删除表droptable[dbo].[表名]GO--判断要创建临时表是否存在IfObject_Id('Tempdb.dbo.#Test')IsNotNullBeginprint'存在'EndElseBeginprint'不存在'End--判断要创建的存储过程名是否存在ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[存储过程名]')andOBJECTPROPERTY(id...
数据库操作教程 2022-09-23 18:00:00