1.按姓氏筆畫排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.數據庫加密: select encrypt('原始密碼') select pwdencrypt('原始密碼') select pwdcompare('原始密碼','加密後密碼') = 1--相同;否則不相同 3.取回表中字段: declare @list varchar(1000),@sql nvarchar(1000) select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A' set @sql='select '+right(@list,len(@list)-1)+' from 表A' exec (@sql) ……全是經典啊 ### SQL经典代码详解 #### 一、按姓氏笔画排序 在中文环境中,有时候我们需要按照汉字的笔画顺序来对数据进行排序。这在处理大量中文姓名时尤为有用。SQL Server 提供了一种特殊的方法来进行这样的排序: ```sql Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as ``` 这里的 `Collate Chinese_PRC_Stroke_ci_as` 是一个特殊的排序规则,它指示 SQL Server 按照中文字符的笔画数来进行排序。其中: - `Chinese_PRC_Stroke`: 指定了按照简体中文的笔画数排序。 - `ci`: 表示大小写不敏感(Case Insensitive)。 - `_as`: 表示按照语言的辅助排序规则进行排序。 #### 二、数据库加密 数据库中的数据安全性非常重要,尤其是涉及到用户密码等敏感信息。SQL Server 提供了几种内置函数用于数据加密: 1. **`ENCRYPT()`**: 这个函数可以用来加密字符串。但是需要注意的是,该函数在某些版本的 SQL Server 中可能不可用或已被弃用。 ```sql select encrypt('原始密码'); ``` 2. **`PWDENCRYPT()` 和 `PWDCOMPARE()`**: - `PWDENCRYPT()`: 用于将原始密码加密。 - `PWDCOMPARE()`: 用于比较两个密码是否匹配。 ```sql select pwdencrypt('原始密码'); select pwdcompare('原始密码', '加密后密码') = 1; ``` 这些函数提供了一个简单的方式来实现密码的安全存储和验证。 #### 三、取回表中字段 有时我们可能需要动态地构建SQL查询语句,例如根据表结构动态选择表中的所有字段。下面的脚本展示了如何实现这一点: ```sql declare @list varchar(1000), @sql nvarchar(1000); select @list = @list + ',' + b.name from sysobjects a, syscolumns b where a.id = b.id and a.name = '表A'; set @sql = 'select ' + right(@list, len(@list) - 1) + ' from 表A'; exec (@sql); ``` 这里通过使用 `sysobjects` 和 `syscolumns` 系统表来获取指定表的所有列名,并构建一个动态的 SELECT 语句。 #### 四、其他经典SQL代码 1. **驱动器列表**: 使用 `xp_fixeddrives` 存储过程来获取服务器上的固定磁盘驱动器列表。 ```sql EXEC master..xp_fixeddrives; ``` 2. **表数据一致性检查**: - 对比两个表 `A` 和 `B` 的数据一致性,如果两表数据一致则打印 "一致",否则打印 "不一致"。 ```sql if (select checksum_agg(binary_checksum(*)) from A) = (select checksum_agg(binary_checksum(*)) from B) print '一致'; else print '不一致'; ``` 3. **终止进程**: - 终止特定进程(如 SQL Profiler 或 SQL Monitor),可以使用 `sp_msforeach_worker` 来遍历并终止这些进程。 ```sql DECLARE kill_cursor CURSOR GLOBAL FOR SELECT 'kill' + RTRIM(spid) FROM master.dbo.sysprocesses WHERE program_name IN ('SQLprofiler', N'SQL Monitor'); EXEC sp_msforeach_worker '?'; ``` 4. **分页查询**: - 实现分页功能的一种常见方法是使用 `TOP` 关键字结合子查询。 ```sql -- 第N页 Select Top N * From ------------------------------- -- 第N到第M页 Select Top M-N * From Where ID in (Select Top M ID From) Order by ID Desc ---------------------------------- -- 最后N条记录 Select Top N * From Order by ID Desc ``` 5. **重命名数据库**: - 使用 `sp_renamedb` 存储过程来更改现有数据库的名称。 ```sql sp_renamedb 'old_name', 'new_name'; ``` 6. **列出数据库中的表**: - 获取当前数据库中所有的表名。 ```sql select Name from sysobjects where xtype = 'u' and status >= 0; ``` 7. **获取表的列信息**: - 获取指定表的所有列名和数据类型。 ```sql select column_name, data_type from information_schema.columns where table_name = '表名'; ``` 8. **查找包含特定字符串的过程**: - 查找包含特定字符串的所有存储过程。 ```sql select a.* from sysobjectsa, syscommentsb where a.id = b.id and b.text like '%关键词%'; ``` 9. **列出非 sa 用户的数据库**: - 列出除 sa 用户外的所有数据库。 ```sql select * from master..sysdatabases D where sid not in (select sid from master..syslogins where name = 'sa'); ``` 10. **列出所有非系统数据库**: - 获取除了系统数据库之外的所有数据库。 ```sql select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01; ``` 这些经典代码涵盖了 SQL Server 中的多种实用场景,可以帮助开发者更好地管理和操作数据库。
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
2.數據庫加密:
select encrypt('原始密碼')
select pwdencrypt('原始密碼')
select pwdcompare('原始密碼','加密後密碼') = 1--相同;否則不相同
3.取回表中字段:
declare @list varchar(1000),@sql nvarchar(1000)
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
set @sql='select '+right(@list,len(@list)-1)+' from 表A'
exec (@sql)
4.查看硬盤分區:
EXEC master..xp_fixeddrives
5.比較A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A)
=
(select checksum_agg(binary_checksum(*)) from B)
print '相等'
else
print '不相等'
6.殺掉所有的事件探察器進程:
DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
EXEC sp_msforeach_worker '?'
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 使用Python和Pygame实现圣诞节动画效果
- 数据分析-49-客户细分-K-Means聚类分析
- 企业可持续发展性数据集,ESG数据集,公司可持续发展性数据(可用于多种企业可持续性研究场景)
- chapter9.zip
- 使用Python和Pygame库创建新年烟花动画效果
- 国际象棋检测10-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- turbovnc-2.2.6.x86-64.rpm
- 艾利和iriver Astell&Kern SP3000 V1.30升级固件
- VirtualGL-2.6.5.x86-64.rpm
- dbeaver-ce-24.3.1-x86-64-setup.exe