SQL2000父子关联ID递归查询,两个Function,使用游标的技巧
摘要:SQL2000父子关联ID递归查询,两个Function,使用游标的技巧
阅读全文
posted @
2012-06-04 13:52
小角色
阅读(413)
推荐(0)
如何在同一个数据库表中查询出相同的记录
摘要:详细说明如下:--如何按字段删除重复记录一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表a b c d1 2 3 41 5 3 51 2 7 9以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9即如下结果:a b c d1 2 3 41 5 3 5或a b c d1 5 3 51 2 7 9请问各位大侠这种sql语句怎么写CREATE TABLE Tb1(id int, [a] varchar(255), [b] varchar(255), [c] varchar(255), [d]
阅读全文
posted @
2012-02-24 14:06
小角色
阅读(9906)
推荐(0)
极限挑战—100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
摘要:实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间。 本实验中所用到工具为VS2008和SQL SERVER 2000、SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器。感兴趣的朋友可以下载源代码自己...
阅读全文
posted @
2010-03-18 11:55
小角色
阅读(224)
推荐(0)
MD5数据库端函数加密 (经典)
摘要:/**//*****************************************************************************
* Name: T-SQL MD5算法实现
*****************************************************************************/
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[MD5_m_OnBits]') AND xtype IN(N'FN', N'IF', N'TF'))
DROP FUNCTION [dbo].[MD5_m_OnBits]
GO
/**//*************************************************
阅读全文
posted @
2008-04-14 10:04
小角色
阅读(299)
推荐(0)
SQL语句集锦
摘要:SQL语句集锦
--语 句 功 能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREA
阅读全文
posted @
2008-04-03 10:45
小角色
阅读(604)
推荐(0)
SqlHelper详解
摘要:SqlHelper 类实现详细信息
SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。
在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。在 SqlHelper 类中实现的方法包括:
ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。
ExecuteDataset。此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。
ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。
阅读全文
posted @
2008-04-03 09:34
小角色
阅读(742)
推荐(0)
数据库多对多问题
摘要:现在有数据表如下:
表A: 表B:
1 a
2 b
3 c
4 d
其中表A与表B的对应数量不确定,如:
1→a,c,s,w
2→c,d
c→1,9,15
s→100,1000,15002,152547,623215
要怎么设计表间的关系.
------------------------------------------
要做三张表,
A表,a_id,a_name,a_tel三个字段。
B表,b_id,b_address,b_sol三个字段。
关联表,ref_id,a_id,b_id,存储着AB两表的id,
比如:A有
a0001,zhang3,139555533
a0002,li4,1397788888
a0003,wang5,13655566
B有
b0001,shanghai,234
b0002,shenyang,332
阅读全文
posted @
2008-04-03 09:02
小角色
阅读(435)
推荐(0)
SQL语句优化数据
摘要:use master
exec sp_dropextendedproc xp_cmdshell
exec sp_dropextendedproc xp_dirtree
exec sp_dropextendedproc xp_enumgroups
exec sp_dropextendedproc xp_fixeddrives
exec sp_dropextendedproc xp_loginconfig
exec sp_dropextendedproc xp_enumerrorlogs
exec sp_dropextendedproc xp_getfiledetails
exec sp_dropextendedproc Sp_OACreate
exec sp_dropextendedproc Sp_OADestroy
exec sp_dropextendedproc Sp_OAGetErrorInfo
exec sp_dropextendedproc Sp_OAGe
阅读全文
posted @
2008-03-29 14:59
小角色
阅读(144)
推荐(0)
SQL语法普通行列转换
摘要:假设有张学生成绩表(tb)如下:
Name Subject Result
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
*/
-------------------------------------------------------------------------
/**//*
想变成
姓名 语文 数学 物理
---------- ----------- ----------- -----------
李四 74 84 94
张三 74 83 93
*/
create table tb
(
Name varchar(10) ,
Subject
阅读全文
posted @
2008-03-29 14:41
小角色
阅读(198)
推荐(0)
SQL优化
摘要:SQL优化,自己整理,欢迎拍砖。
1.1. 操作符
1.1.1 慎用NOT IN, NOT IN会多次扫描表,使用EXISTS、NOT EXISTS、IN、LEFT OUTER JOIN来替代,特别是左连接,而Exists比IN更快,最慢的是NOT操作.
1.1.2 使用in时,在in后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,这样可以减少判断的次数。
1.1.3 如果使用了IN或者OR等时发现查询没有走索引,使用显式申明指定索引,如:Select * From FA01(INDEX=IX_SEX) Where AA0107 IN(‘01’,‘02’)。
1.1.4 用OR的字句可以分解成多个查询,并且通过UNION连接多个查询。他们的速度只同是否使用索引有关,如果查询需要用到联合索引,用UNION all执行的效率更高.多个OR的字句没有用到索引,改写成UNION的形式再试图与索引匹配。一个关键的问题是否用到索引。
1.1.5
阅读全文
posted @
2008-03-29 14:31
小角色
阅读(264)
推荐(0)
读取 sqlserver 表结构 读取SQL 所有表 所有列
摘要:读取 sqlserver 表结构 读取SQL 所有表 所有列
select * from sysobjects where xtype='u' --讀取所有用戶表
select * from syscolumns --讀取所有columns
阅读全文
posted @
2008-03-25 09:08
小角色
阅读(709)
推荐(0)
sql存储过程学习实例
摘要: 什么是存储过程呢?
定义:
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?
Microsoft公司为什么还要添加这个技术呢?
那么存储过程与一般的SQL语句有什么区别呢?
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,
阅读全文
posted @
2008-03-20 09:07
小角色
阅读(915)
推荐(0)
简单的存储过程编写
摘要:表book的内容如下
编号 书名 价格
001 C语言入门 $30
002 PowerBuilder报表开发 $52
实例1:查询表Book的内容的存储过程
以下为引用的内容:
create proc query_book
as
select * from book
go
exec query_book
实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额
以下为引用的内容:
Create proc insert_book
@param1 char(10),@param2 varchar(20),@param3 money,
阅读全文
posted @
2008-03-20 08:57
小角色
阅读(409)
推荐(0)
DATEDIFF 返回跨越两个指定日期的日期和时间边界的数目
摘要:语法
DATEDIFF ( datepart , startdate , enddate )
参数
datepart
指定对日期的哪一部分计算差异的参数。有关详细信息,请参阅本主题后面的“备注”部分。
startdate
计算中的开始日期。startdate 参数是以日期格式返回 datetime 值或 Unicode 字符串的表达式。
如果只指定年份的后两位数字,小于或等于两位截止年份配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果两位数字的截止年份是 2049(默认值),则“49”将被解释为 2049,而“50”将被解释为 1950。为了避免产生歧义,请使用四位年份。
有关指定日期的详细信息,请参阅数据类型中的 datetime。
enddate
计算中的结束日期。enddate 参数是以日期格式返回 datetime 值或 Unicode 字符串的表达式。
b
阅读全文
posted @
2008-03-19 09:28
小角色
阅读(549)
推荐(0)
DATEADD 语法 描述 通过向指定日期添加间隔,返回新的 datetime 值。
摘要:语法
DATEADD (datepart ,number,date )
datepart
指定要作为新值返回的日期部分的参数。有关详细信息,请参阅本主题后面的“备注”部分。
number
用于增加 datepart 的值。这是精确数字或近似数字数据类型类别的表达式,或者是可以隐式转换为 float 类型的表达式。如果指定的值不是整数,将丢弃该值的小数部分。例如,如果为 datepart 指定 day,并为 number 指定 1.75,则 date 将加 1。
date
返回可以隐式转换为 datetime 的值的表达式,或者是日期格式的 Unicode 字符串。有关指定日期的详细信息,请参阅数据类型中的 datetime。
如果只指定年份的后两位数字,则小于或等于两位截止年份配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果两位数字的截止年份是 2049(默认值),则“49”将被解释为 2049,而“50”将被解
阅读全文
posted @
2008-03-19 09:17
小角色
阅读(488)
推荐(0)
SQL中Case语句用法讨论
摘要:SQL中Case语句用法讨论
select * from (select *,case when id=1 then 'chenou'
when id=2 then 'hulang'
else 'mm' end as Other
,case when sex=1 then '变态' else '正常人' end as GoodBoy
from Euserinformation ) aa inner join processInf b on aa.id=b.userid
Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
阅读全文
posted @
2008-03-18 14:48
小角色
阅读(380)
推荐(1)
sql数据库备份还原方法
摘要:sql数据库备份还原方法2008-01-04 08:21注意:当数据库备份还原后,所有当前数据库备份之后新产生的数据都会丢失。
首先登录到远程数据库服务器:
1. 打开sql server企业管理器,选择要还原的数据库,单击鼠标右键,单击“所有任务”下的“还原数据库”。
2. 在新弹出的窗口下的“还原”项选择“从设备”单选框,再单击下面的“选择设备”按钮。
3. 在新弹出的“选择还原设备”窗口选择“磁盘”再单击“添加”按钮,选择要还原的备份文件。
4. 确定所有的设置,系统就会将你的数据库进行还原
5.补充说明:
如出现下图所示的错误
原因为你数据库还原路径不对在还原窗口上边菜单上点选项选择正确路径即可如下图
阅读全文
posted @
2008-03-18 14:04
小角色
阅读(533)
推荐(1)
SQL语言的三种连接查询测试
摘要:SQL语言的三种连接查询测试
SQL语言有三种连接查询,左连接(left join),右连接(right join)和内连接(inner join),现有t1,t2两张数据表,如下所示。
t1
id
a1
a2
1
x
y
2
xx
y
t2
id
b1
b2
1
x
y
2
x
yy
1.left join
运行如下SQL语句
select * fro
阅读全文
posted @
2008-03-18 11:45
小角色
阅读(468)
推荐(1)
两个表的连接 左连接 Left outer Join
摘要:两个表的连接 左连接 Left outer Join
select * from Euserinformation a left outer join processInf b on a.ID=b.userid1 javarabbit 7FA8282AD93047A4D6FE6111C93B308A |0 圣大|0 SD|0 NULL 1 ,9 213 231|0
1 javarabbit 7FA8282AD93047A4D6FE6111C93B308A |0 圣大|0 SD|0 NULL 1 ,9 213 231|0
1 javarabbit 7FA8282AD93047A4D6FE6111C93B308A |0 圣大|0 SD|0 NULL 1 ,9 213 231|0
1 javarabbit 7FA8282AD93047A4D6FE6111C93B308A |0 圣大|0 SD|0 NULL 1 ,9 213 231|0
1 javarabbit 7FA8282AD93047A4D6FE6111C93B308A |0 圣大|0
阅读全文
posted @
2008-03-18 11:39
小角色
阅读(543)
推荐(1)