|
摘要:1、各自的定义: ► nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ► varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode ...
阅读全文
摘要:SQL Server 索引结构及其使用(一) 作者:freedk 一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地...
阅读全文
摘要:摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql. 1,EXEC的使用EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理
阅读全文
摘要:语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。 示例: xlh row_num 1700 1 1500 2 1085 3 710 4 row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组
阅读全文
摘要:SQL Server2005使用CTE实现递归 CTE递归原理:递归CTE是由两个最小查询构建的.第一个是定位成员(Anchor Member,AM),它是一个非递归查询,第二个是递归成员(Recursive Member,RM),它是递归查询.在CTE括号中(AS 子句之后),定义独立查询或引用回相同CTE的查询,AM与RM由UNION ALL语句分隔.AM紧被调用一次,RM将被重复调用,直到查询不在返回数据行为止.可以使用UNION或UNION ALL运算符彼此追加多个AM,具体取决于是否希望删除重复数据(必须使用UNION ALL运算符来追加递归成员).语法如下:代码 Code high
阅读全文
摘要:就一句sql代码搞定,导入sql2000的代码。 BULK INSERT 表名 FROM 'F:\你的文本文件.txt' WITH ( FIELDTERMINATOR ='以什么符号分割数据', ROWTERMINATOR= '以什么符号加\n结尾')--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n 例如:BULK INSERT bb FROM 'F:\2008-02-18.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR= ',\n
阅读全文
摘要:关键字:EXCEPT 和 INTERSECT关键字EXCEPT返回EXCEPT左边的查询返回,右边的查询未返回的所有非重复值。INTERSECT返回 INTERSECT 左右两边的两个查询均返回的所有非重复值。A. 使用 EXCEPT在示例中使用 TableA 和 TableB 中的数据。TableA (col1 int) TableB (col1 int) NULLNULLNULL1NULL3142422344以下查询从 EXCEPT 操作数左侧的查询返回右侧查询没有找到的所有非重复值。SELECT * FROM TableA EXCEPT SELECT * FROM TableB;下面是结
阅读全文
摘要:在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。update 把一个表中的数据 更新到另一个表中 下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:id,name 1 王 2 李 3 张 表b:id,ClientName 1 2 3 (...
阅读全文
摘要:row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序). rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内). dense_rank()l是连续排序,...
阅读全文
摘要:创建一个简单的触发器------------触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。 触发器可以在查询分析器里创建,也可以在表名上点右键->“所有任务”->“管理触发器”来创建,不过都是要写 T-SQL 语句的,只是在查询分析器里要先确定当前操作的数据库。创建触发器用 CREATE TRIGGERCREATE TRIGGER 触发器名称ON 表名FOR INSERT、UPDATE 或 DELETEAS T-SQL 语句注意:触
阅读全文
摘要:asc 按升序排列desc 按降序排列下列语句部分是Mssql语句,不可以在access中使用。SQL分类:DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:1、说明:创建数据库Create DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEX
阅读全文
摘要:在安装了Sql2000的基础上安装Sql2005的详细过程Sql2005版本:Sql2005开发版,两张CD的那种操作系统:Window 2003 Server假设您的电脑已安装了Sql2000,下面开始安装Sql2005。一、运行光盘1跳过 准备 步骤,直接进行“服务器组件、工具、联机丛书和示例”的安装。接着是许可协议,当然选择“我接受许可条款和条件”,不选择就没得装了。然后是sqlserver进行安装前的支持组件安装、扫描计算机配置,接着才进入安装向导。在安装向导里,sqlserver 2005安装程序会对系统进行配置检查,这一关是否能过就要看你电脑的配置情况了,一般不是太古老的机子应该都
阅读全文
摘要:select t2.dep_no,t2.dep_name,t1,empCount,t2.empAvgAgefrom( select t.dep_no, count(t.emp_no) as empCount, avg(t.emp_age) empAvgAge, from employee t where t.emp_no < 80707999 group by t.dep_no)t1left join department t2 on t1.dep_no=t2.dep_no
阅读全文
摘要:CONVERT函数[数据类型转换]--------------------------------------------------------------------------------功能返回转换成提供的数据类型的表达式。语法CONVERT(datatype,expression[,format-style])参数datatype表达式将转换成的数据类型。expression要转换的表达式。format-style对于将字符串转换为日期或时间数据类型以及相反的转换过程,format-style是描述要使用的日期格式字符串的样式代码。format-style参数的值具有下列含义:不含世
阅读全文
摘要:在数据库中,UNION 和 UNION ALL 关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如: select * from gc_dfys union select * from ls_jg_dfys这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。UNION ALL只是简单的将两个结果合并后就
阅读全文
摘要:为了从两个或多个表中选出数据,一般使用表连接来实现这个功能。 这里先介绍join(连接)的概念. 为此我们准备了两个试验用表: album(专辑表) 和 track(曲目表). 专辑表:包含200首来自Amazon的音乐CD的概要信息。album(asin, title, artist, price, release, label, rank)曲目表:每张专辑中的曲目(因为是音乐CD,所以也可叫歌曲)的详细信息。track(album, dsk, posn, song) SQL短语 FROM album JOIN track ON album.asin=track.album 表示连接albu
阅读全文
摘要:sql中left join、right join的简单说明数据库常见的join方式有三种:inner join, left outter join, right outter join(还有一种full join,因不常用,本文不讨论)。这三种连接方式都是将两个以上的表通过on条件语句,拼成一个大表。以下是它们的共同点:1. 关于左右表的概念。左表指的是在SQL语句中排在left join左边的表,右表指的是排在left join右边的表。2. 在拼成的大表中,左表排在左边,右表排在右边。3. on条件语句最好用=号对两表相应的主外键进行连接。当然,也可以用其他操作符,如>, <,
阅读全文
摘要:向表中批量插入数据insert into TreeViewTab(NodeId,ParentId,NodeName,Url) select jd1,jd2,jd3,jd4 from tab
阅读全文
摘要:在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server
阅读全文
摘要:使用模糊查询需要在select语句中使用like在sql中通配符共有4个,分别为"%","_","[]"与"[^]""%"表示可以包含零个或多个字符的任意字符串."_"代表任意单个字符."[]"代表指定范围或集合中的任意一个字符."[^]"代表不属于指定范围伙计和中的任意一个字符.select * from 班级表 where 班级编号 like '%99%' //返回班级编号字段任意位置包含的字符串"99"的结果集.select * from 班级表 where 班级编号 like '_2001' //返回班机编号字段以2001结尾的字母结果集.select
阅读全文
|