上一篇 | 下一篇

SQL语句集锦

发布: 2008-7-01 14:10 | 作者: admin | 来源: | 查看: 6次

SQL语句集锦

【字体:小 大】

SQL语句集锦

作者:- 文章来源:- 点击数:9384 更新时间:2006-4-14

Top

回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-19 11:14:05 得分:0

我认为上面的语句在实现需求时并不是最简,效率最高的语句.

Top

回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-19 11:45:29 得分:0

各种查询技巧结合才能写出最高效的查询

在SQL中使用DISTINCT是代价比较高的查询方式

Top

回复人: oldsky(九指神丐) ( ) 信誉:54 2003-3-19 13:13:09 得分:0

微软不公布SQLserver2000中的函数:

print pwdcompare('helloworld', pwdencrypt('helloworld'))

print pwdcompare('hello', pwdencrypt('world'))

Top

回复人: funboy88(司令) ( ) 信誉:121 2003-3-19 13:20:20 得分:0

pwdencrypt

密码加密?

有些什么作用,不明白

随机取出10条数据

select top 10 * from tablename order by newid()

Top

回复人: mzcih(小马过河) ( ) 信誉:110 2003-3-19 13:25:31 得分:0

看君一张贴,胜看一天书。

Top

回复人: funboy88(司令) ( ) 信誉:121 2003-3-19 13:26:48 得分:5

功能:

type vender pcs

电脑 A 1

电脑 A 1

光盘 B 2

光盘 A 2

手机 B 3

手机 C 3

select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

Top

回复人: funboy88(司令) ( ) 信誉:121 2003-3-19 13:30:27 得分:0

FUNCTION:DELELTE REPEAT RECORDS

DELETE from tablename where id not in (select max(id) from tablename group by col1,col2,...)

Top

回复人: chonboy(一只来自南方的羊) ( ) 信誉:100 2003-3-19 14:32:56 得分:0

Microsoft SQL Server是如何加密口令的?未公开的加密函数?

如果对MSSQL的用户信息有兴趣的,可能会发现master.dbo.sysxlogins里面存放着用户的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,这个口令是怎么加密的呢?

其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。

让我们来看看它是怎么做的,注意这一行select @passwd = pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下

DECLARE @ClearPWD varchar(255)

DECLARE @EncryptedPWD varbinary(255)

SELECT @ClearPWD = 'test'

SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))

SELECT @EncryptedPWD

看上去不错,确实被加密了,可是我怎么还原呢?

呵呵,这就没戏了,口令加密都是单向的,用加密后的密文来比较就可以了。

继续看看其它用户相关的sp,可以发现master.dbo.sp_password里面有口令比较的内容。

pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END))

不用去理会xstatus,这是一个状态掩码,一般我们用的时候就直接用0就可以了

DECLARE @ClearPWD varchar(255)

DECLARE @EncryptedPWD varbinary(255)

SELECT @ClearPWD = 'test'

SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))

SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0)

SELECT pwdcompare('ErrorPassword', @EncryptedPWD, 0)

这样我们就可以使用这两个函数来加密自己的密码了,怎么样,还不错吧?

[8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50]

字号: | 推荐给好友

评分:0

我来说两句