T-SQL与SQL Server数据库深度学习笔记

需积分: 12 6 下载量 164 浏览量 更新于2024-07-19 1 收藏 18.39MB DOCX 举报
"Tsql和sqlserver数据库知识笔记" 在学习T-SQL和SQL Server数据库时,掌握以下几个关键知识点至关重要: 1. **数据库分离与管理**: - 用户数据库与系统数据库的分离是为了确保系统的稳定性和安全性,用户数据库存放应用程序数据,而系统数据库则存储SQL Server的元数据和系统信息。 - 文件分组(Filegroups)允许你将数据文件组织到不同的逻辑组,便于管理和扩展。 - 垂直分表(Partitioning)是根据列值对表进行划分,用于优化大型表的查询性能。 - 水平分表(Sharding)涉及将数据分散到多个物理表,通常用于分布式数据库系统,以处理大量并发和数据量。 2. **查询语句和条件表达式**: - BETWEEN运算符用于检查一个值是否在指定范围内,例如`TraineeResult BETWEEN 0 AND 100`等效于`TraineeResult >= 0 AND TraineeResult <= 100`。 - SQL Server中的默认日期函数`getdate()`用于获取当前系统日期和时间。 3. **权限管理与角色**: - 使用`sp_setapprole`系统存储过程可以激活特定的角色,例如`exec sp_setapprole 'myrole', '123'`会赋予用户'myrole'的角色权限。 4. **数据查询**: - `SELECT * FROM Result WHERE TraineeNo <= 10000` 是一个基本的查询示例,用于获取TraineeNo小于或等于10000的所有记录。 - 当遇到无法查询的问题时,可能需要更改数据库所有者,例如`EXEC sp_changedbowner 'sa'`。 5. **数据库维护**: - `DBCC DROPCLEANBUFFERS`命令清除缓冲池中的所有数据页,模拟从内存中移除数据,用于测试查询性能。 - `DBCC FREEPROCCACHE`清空存储过程的缓存,用于观察执行计划的影响。 6. **元数据查看**: - `sp_helptext`存储过程用于查看对象的原始定义,如`Sp_helptext 'Borrow_Insert'`显示'Borrow_Insert'的定义代码。 7. **数据导入与导出**: - Excel数据导入数据库时,需注意数据类型,特别是长文本数据应转化为正确的格式。 - 使用SQL Server Management Studio的“任务”功能可方便地导入和导出数据,确保正确设置源和目标表。 - 导入顺序遵循先导入基础表,再导入有外键依赖的表的规则。 8. **代码生成**: - 可通过Visio的ER图生成SQL代码,安装VisioForwardEngineer插件来实现这一功能,尤其适用于生成数据库结构的SQL脚本。 这些知识点构成了SQL Server数据库开发的基础,通过深入理解和实践,可以有效地管理、查询和优化数据库系统。