SQL实用技巧:去重与收缩日志操作

0 下载量 147 浏览量 更新于2024-08-31 收藏 56KB PDF 举报
本文档提供了一些实用的SQL语句,对于数据库管理和优化工作具有参考价值。首先,关于删除重复记录的部分,SQL语句通过`SELECT DISTINCT * INTO #table_name FROM table_name` 从原始表(table_name)中选择并移除重复项,然后将不重复的记录保存到临时表`#table_name`中。接着,执行`DELETE FROM table_name` 清空原表,再用`SELECT * INTO table_name FROM #table_name`将处理过的数据回填,最后使用`DROP TABLE #table_name` 删除临时表。 另一个重要的知识点是关于收缩事务日志的操作。通过`BACKUP LOG register WITH NO_LOG` 或 `BACKUP LOG register WITH TRUNCATE_ONLY` 来管理事务日志,前者不会创建新的备份文件,后者只保留当前事务日志文件的最后一条记录。如果需要更深入地调整,可以使用`DBCC SHRINKDATABASE(register)` 命令来缩小数据库的大小。这些命令有助于减少磁盘空间占用,提高数据库性能。 此外,文档还涉及SQL语法基础,例如如何获取当前时间、日期和年份的格式化查询。例如,`SELECT CONVERT(varchar(10), GETDATE(), 8)`用于获取当前的精确到秒的时间,而`SELECT YEAR(GETDATE()) + '-' + CONVERT(varchar(10), MONTH(GETDATE()))`则返回年月的组合。 针对数值类型字段,有SQL表达式`SELECT CAST(bas_integer) AS bb FROM table1 WHERE b = '11'`,展示了如何进行数据类型转换。同时,文中演示了条件表达式的应用,如`SELECT a, CASE WHEN b = '11' THEN '细细' WHEN b = '22' THEN '呵呵' ELSE '哈哈' END as 转换, c FROM table1`,允许根据特定条件对数据进行格式化或替换。 这份文档涵盖了SQL查询的基础操作,包括去重、日志管理以及时间日期处理,适合SQL初学者和经验丰富的开发人员在日常工作中参考和实践。