随笔分类 -  Sql Server

Sql server相关内容
摘要:在显示记录条目时往往要用到分页,一种常用的办法是利用各种数据库自带的定位接口对原始查询语句进行改写,从而只取出特定范围的某些记录。不同的数据库,查询定位接口是不一样的,下面做一汇总:数据库分页查询语句说明MySql"QUERY_SQL limit ?,?"使用limit关键字,第一个"?"是起始行号, 第二个"?"是返回条目数OracleSELECT * FROM ( SELECT A.*, ROWNUM RN FROM (QUERY_SQL ) A WHERE ROWNUM = ?结合rownum关键字,利用嵌套三层select 语 阅读全文
posted @ 2013-07-24 14:02 Summers 阅读(398) 评论(0) 推荐(0)
摘要:sql语句建表,并且自增加主键use [test]CREATE TABLE [dbo].[Table_4]( [userid] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Table_4] PRIMARY KEY CLUSTERED ( [userid] ASC)) ON [PRIMARY] 阅读全文
posted @ 2013-07-11 16:43 Summers 阅读(9823) 评论(0) 推荐(0)
摘要:查询速度慢的原因很多,常见如下几种: 1 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2 2、I/O吞吐量小,形成了瓶颈效应。 3 3、没有创建计算列导致查询不优化。 4 4、内存不足 5 5、网络速度慢 6 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9 9、返回了不必要的行和列 10 10、查询语句不好,没有优化 解决方法汇总如下: 阅读全文
posted @ 2013-07-04 08:49 Summers 阅读(915) 评论(0) 推荐(0)
摘要:1.纵表转横表:纵表结构:Table1转换后的横表结构:Sql示例代码:select username,sum(case Course when '语文' then Grade else 0 end) as 语文,sum(case Course when '数学' then Grade else 0 end) as 数学,sum(case Course when '英语' then Grade else 0 end) as 英语from Table1group by username2、横表转纵表: 横表结构:TableA ID 姓名 语文 数学 阅读全文
posted @ 2013-07-03 22:25 Summers 阅读(18803) 评论(0) 推荐(0)
摘要:1 Ado.net总结: 2 ADO.NET中的五个主要对象 3 4 Connection 物件 5 Connection 对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET 的最底层, 我们可以自己产生这个对象,或是由其它的对象自动产生。 6 例如: 7 using (SqlConnection connection = new SqlConnection(connectionString)) connectionString是数据库连接字符串 8 { 9 connection.Open();10 ... 阅读全文
posted @ 2013-06-18 08:49 Summers 阅读(319) 评论(0) 推荐(0)
摘要:1 经典SQL语句大全 2 3 一、基础 4 5 1、说明:创建数据库 6 CREATE DATABASE database-name 7 2、说明:删除数据库 8 drop database dbname 9 3、说明:备份sql server 10 --- 创建 备份数据的 device 11 USE master 12 EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' 13 --- 开始 备份 14 BACKUP DATABASE pubs TO 阅读全文
posted @ 2013-05-30 10:02 Summers 阅读(526) 评论(0) 推荐(1)
摘要:1 USE [数据库名称] 2 SET ANSI_NULLS ON 3 GO 4 SET QUOTED_IDENTIFIER ON 5 GO 6 alter PROCEDURE dbo.pro_photosImport 7 AS 8 declare @i int 9 set @i = 110 declare @uid int11 set @uid= 112 declare @username varchar(64)13 set @username =''14 declare @cat int15 set @cat = 116 while (@i < 600000)17 b 阅读全文
posted @ 2013-05-08 09:57 Summers 阅读(327) 评论(0) 推荐(0)
摘要:什么是存储过程?存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用。它的参数可以被传递和返回。与应用程序中的函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数.近期使用存储过程写了些程序,发现存储过程很好用,好处优于SQL语句,总结如下:存储过程的优点? (1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。 (2)执行速度更快。有两个原因:首先,在存.. 阅读全文
posted @ 2013-05-02 17:06 Summers 阅读(268) 评论(0) 推荐(0)
摘要:--自定义函数--名次查询USE [yuejuan105]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO--获取考试成绩名次。CREATE FUNCTION [dbo].[GetRankNum] ( @ExamID varchar(30) , --考试批次 @GradeID varchar(30), --年级ID @ClassID varchar(30), --班级ID @SubjectID varchar(30), --科目ID @TestScores varchar(30), ... 阅读全文
posted @ 2013-05-02 16:41 Summers 阅读(15419) 评论(0) 推荐(0)
摘要:1 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 2 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 3 inner join(等值连接) 只返回两个表中联结字段相等的行 4 5 举例如下: 6 -------------------------------------------- 7 表A记录如下: 8 aID aNum 9 1 a2005011110 2 a2005011211 3 a2005011312 4 a2005011413 5 a2005011514 ... 阅读全文
posted @ 2013-05-02 16:31 Summers 阅读(271) 评论(0) 推荐(0)
摘要:in和existsin 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)效率低,用到了A表上cc列的索引;select * from A where exists(select cc from B where cc=A 阅读全文
posted @ 2013-05-02 16:27 Summers 阅读(192) 评论(0) 推荐(0)