求一sql语句:数据库里有400条记录,能不能查询显示360—380之间的20条记录(Sql Server)

blackhero 2005-07-18 10:12:05
求一sql语句:数据库里有400条记录,能不能查询显示360—380之间的20条记录(Sql Server)

select top 20 from table .......


Thank You!!!

-------------------------blackhero-----------------------------------------------
...全文
190 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Toti 2005-07-18
  • 打赏
  • 举报
回复
select top 20 * from select * from table where id<= 380 as table order by id desc
Toti 2005-07-18
  • 打赏
  • 举报
回复
select top 20 * from select * from table where id<= 400 as table order by id desc
看看这个能不能实现,以前我用这个实现了取到20--30里面的数据
blackhero 2005-07-18
  • 打赏
  • 举报
回复
ID是唯一主键:

不一定是 0-400 (数字)

不过也谢谢了
ieooo 2005-07-18
  • 打赏
  • 举报
回复
稍微修改一下 leocool(金属外壳) 的方法:
SELECT *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 360 id
FROM TestTable
ORDER BY id) AS T) AND ID < 380)
ORDER BY ID
这样不管你的Id是否连续都可以查出Id值在360与380之间的记录。
zogae 2005-07-18
  • 打赏
  • 举报
回复
上上上上楼的大哥, 为什么要加 ORDER BY ID呢?
chxuxu 2005-07-18
  • 打赏
  • 举报
回复
如果你数据库里有递增字段这样就可以了吧:
SELECT Top 20 *
FROM TableName
WHERE 递增字段>360
layueer 2005-07-18
  • 打赏
  • 举报
回复
这是分页问题啊
xvhaijun 2005-07-18
  • 打赏
  • 举报
回复
学习……
ppzhlmt 2005-07-18
  • 打赏
  • 举报
回复
严重同意楼上观点
SELECT Top 20 *
FROM TableName
WHERE id Not In (
SELECT TOP 360 Id
FROM tablename
ORDER BY Id
)
OEDER BY Id
egonzou 2005-07-18
  • 打赏
  • 举报
回复
select top 20 * from tablename where id not in (select top 360 id from tablename order by id asc) order by is asc
jimu8130 2005-07-18
  • 打赏
  • 举报
回复
对,就是最后一个值
jimu8130 2005-07-18
  • 打赏
  • 举报
回复
学习
blackhero 2005-07-18
  • 打赏
  • 举报
回复
MAX(id)

是不是
(SELECT TOP 360 id
FROM TestTable
ORDER BY id) AS T))的最后一个id的值呀
leocool 2005-07-18
  • 打赏
  • 举报
回复
SELECT TOP 20 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 360 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID

《C#程序开发范例宝典》(09章)的源码 第9章 数据库技术 355   9.1 连接Access数据库 356   实例254 连接Access数据库 356   实例255 连接加密的Access数据库 357   实例256 自动识别Access 2000数据库路径 358   实例257 连接网络上共享的Access 2000数据库 360   9.2 连接SQL Server数据库 361   实例258 使用ODBC DSN连接SQL Server数据库 361   实例259 使用ODBC非DSN连接SQL Server数据库 364   实例260 使用OLE DB连接SQL Server数据库 365   实例261 建立SQL Server数据库连接 366   9.3 连接其他数据库 367   实例262 连接Excel 367   实例263 连接Oracle数据库 368   9.4 数据库结构的读取与修改 369   实例264 读取SQL Server数据库结构 369   实例265 修改SQL Server数据库结构 372   9.5 数据录入 374   实例266 利用数据绑定控件录入数据 374   实例267 使用ADO NET对象录入数据 376   实例268 利用SQL语句录入数据 379   实例269 利用存储过程录入数据 380   9.6 图片存取技术 383   实例270 使用存取文件名的方法存取图片 383   实例271 使用ADO NET对象向SQL Server数据库存入图片 384   9.7 数据修改 387   实例272 利用数据绑定控件修改数据 387   实例273 利用数据对象修改数据 390   实例274 利用SQL语句修改数据 391   实例275 利用存储过程修改数据 393   9.8 数据保存前判断 395   实例276 判断输入数据是否符合要求 395   实例277 通过存储过程实现自动编号 398   9.9 数据删除 401   实例278 删除表格中指定的记录 401   实例279 利用SQL语句删除数据 402   9.10 数据记录 403   实例280 分页显示信息 403   实例281 移动记录 404   9.11 数据维护 406   实例282 在C#中分离SQL Server数据库 406   实例283 在C#中附加SQL Server数据库 407   实例284 在C#中附加单文件SQL Server数据库 409   9.12 数据备份恢复 410   实例285 备份SQL Server数据库 410   实例286 还原SQL Server数据库 413   9.13 管理系统开发相关 415   实例287 开启SQL Server数据库 415   实例288 断开SQL Server数据库与其他应用程序的连接 417   实例289 带图像列表的系统登录程序 419   实例290 利用SQL语句执行外围命令 420   实例291 系统初始化 421
书名: SQLServer2008查询性能优化 作者: 弗奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所需要的工具。建立、维护数据库数据库服务器可能是个困难的工作。当服务器的运行越来越慢时,这个工作就变得更加困难。来自用户的愤怒的电话以及站在你办公桌周围的管理人员都使你很不快活。在开发代码的同时,如果你花费时间和精力来开发一个性能故障排错的方法。那么你就能避免这种情况——至少可以快速而有效地做出反应。《SQL Server 2008查询性能优化》指出的性能要点之一是数据库随着用户和数据的日益增多而进行扩展的必要性。你需要理解性能低下的起因。以及识别并修复它们的方法。《SQL Server 2008查询性能优化》将帮助你: 使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的地方。以及解决瓶颈的方法 识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL Server 2008查询性能优化》不是理论书籍,它的目的是帮助你避免数据库出现性能低下的状况,它还能帮助你保住你的工作。 内容提要 《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计以及数据库管理等,贯穿了数据库系统知识的各个方面。最后以一个实际的工作负载将所有技巧联系起来,并且提供了“宝典”式的最佳实践列表。 《SQL Server 2008查询性能优化》适合于关心数据库应用系统性能的开发人员和数据库管理人员阅读。通过阅读《SQL Server 2008查询性能优化》,不仅可以学习到数据库性能管理的许多知识和技巧,还有助于养成良好的编程习惯,为实现高性能的数据库应用系统打下基础。 目录 第1章 SQL查询性能调整 1 1.1 性能调整过程 2 1.1.1 核心过程 2 1.1.2 迭代过程 4 1.2 性能vs.价格 7 1.2.1 性能目标 7 1.2.2 “足够好”的调整 7 1.3 性能基线 8 1.4 工作的重点 9 1.5 SQL Server性能杀手 10 1.5.1 低质量的索引 10 1.5.2 不精确的统计 11 1.5.3 过多的阻塞和死锁 11 1.5.4 不基于数据集的操作 11 1.5.5 低质量的查询设计 12 1.5.6 低质量的数据库设计 12 1.5.7 过多的碎片 12 1.5.8 不可重用的执行计划 13 1.5.9 低质量的执行计划 13 1.5.10 频繁重编译计划 13 1.5.11 游标的错误使用 13 1.5.12 错误配置数据库日志 14 1.5.13 过多使用或者错误配置tempdb 14 1.6 小结 14 第2章 系统性能分析 15 2.1 性能监视器工具 15 2.2 动态管理视图 17 2.3 硬件资源瓶颈 18 2.3.1 识别瓶颈 18 2.3.2 瓶颈解决方案 19 2.4 内存瓶颈分析 19 2.4.1 SQL Server内存管理 20 2.4.2 Available Bytes 23 2.4.3 Pages/sec和Page Faults/sec计数器 23 2.4.4 Buffer Cache Hit Ratio 24 2.4.5 Page Life Expectancy 24 2.4.6 Checkpoint Pages/sec 24 2.4.7 Lazy writes/sec 24 2.4.8 Memory Grants Pending 25 2.4.9 Target Server Memory(KB)和Total Server Memory(KB) 25 2.5 内存瓶颈解决方案 25 2.5.1 优化应用程序工作负载 26 2.5.2 为SQL Server分配更多内存 27 2.5.3 增加系统内存 27 2.5.4 更换32位处理器为64位处理器 27 2.5.5 启用3GB进程空间 28 2.5.6 在32位SQL Server中使用4GB以上内存 28 2.6 磁盘瓶颈分析 29 2.6.1 磁盘计数器 30 2.6.2 % Disk Time 30 2.6.3 Current Disk Queue Length 31 2.6.4 Disk Transfers/sec 31 2.6.5 Disk Bytes/sec 32 2.6.6 Avg. Disk Sec/Read和Avg. Disk Sec/Write 32 2.7 磁盘瓶颈解决方案 32 2.7.1 优化应用程序工作负载 33 2.7.2 使用更快的磁盘驱动器 33 2.7.3 使用一个RAID阵列 33 2.7.4 使用SAN系统 35 2.7.5 恰当地对齐磁盘 35 2.7.6 使用电池后备的控制器缓存 36 2.7.7 添加系统内存 36 2.7.8 创建多个文件和文件组 36 2.7.9 将表和索引放在不同的磁盘上 39 2.7.10 将日志文件保存到独立的物理磁盘 39 2.7.11 表的分区 40 2.8 处理器瓶颈分析 40 2.8.1 % Processor Time 41 2.8.2 % Privileged Time 41 2.8.3 Processor Queue Length 42 2.8.4 Context Switches/sec 42 2.8.5 Batch Requests/sec 42 2.8.6 SQL Compilations/sec 42 2.8.7 SQL Recompilations/sec 43 2.9 处理器瓶颈解决方案 43 2.9.1 优化应用程序工作负载 43 2.9.2 消除过多的编译/重编译 43 2.9.3 使用更多或更快的处理器 44 2.9.4 使用大的二级(L2)/三级(L3)缓存 44 2.9.5 运行更高效的控制器/驱动程序 44 2.9.6 不运行不必要的软件 45 2.10 网络瓶颈分析 45 2.10.1 Bytes Total/sec 45 2.10.2 % Net Utilization 46 2.11 网络瓶颈解决方案 46 2.11.1 优化应用程序工作负载 46 2.11.2 增加网络适配器 47 2.11.3 节制和避免中断 47 2.12 SQL Server总体性能 47 2.12.1 丢失索引 48 2.12.2 数据库阻塞 49 2.12.3 不可重用的执行计划 50 2.12.4 总体表现 50 2.13 创建一个基线 51 2.13.1 创建性能计数器的一个可重用列表 51 2.13.2 使用性能计数器列表创建一个计数器日志 54 2.13.3 最小化性能监视器开销 55 2.14 以基线为标准的系统状态分析 56 2.15 小结 57 第3章 SQL查询性能分析 58 3.1 SQL Profiler工具 58 3.1.1 Profiler跟踪 59 3.1.2 事件 60 3.1.3 数据列 62 3.1.4 过滤器 64 3.1.5 跟踪模板 65 3.1.6 跟踪数据 65 3.2 跟踪的自动化 66 3.2.1 使用GUI捕捉跟踪 66 3.2.2 使用存储过程捕捉跟踪 67 3.3 结合跟踪和性能监视器输出 68 3.4 SQL Profiler建议 69 3.4.1 限制事件和数据列 69 3.4.2 丢弃性能分析所用的启动事件 70 3.4.3 限制跟踪输出大小 70 3.4.4 避免在线数据列排序 71 3.4.5 远程运行Profiler 71 3.4.6 限制使用某些事件 71 3.5 没有Profiler情况下的查询性能度量 71 3.6 开销较大的查询 72 3.6.1 识别开销较大的查询 73 3.6.2 识别运行缓慢的查询 77 3.7 执行计划 78 3.7.1 分析查询执行计划 80 3.7.2 识别执行计划中开销较大的步骤 82 3.7.3 分析索引有效性 83 3.7.4 分析连接有效性 84 3.7.5 实际执行计划vs.估算执行计划 88 3.7.6 计划缓存 89 3.8 查询开销 90 3.8.1 客户统计 90 3.8.2 执行时间 91 3.8.3 STATISTICS IO 92 3.9 小结 94 第4章 索引分析 95 4.1 什么是索引 95 4.1.1 索引的好处 97 4.1.2 索引开销 98 4.2 索引设计建议 100 4.2.1 检查WHERE子句和连接件列 100 4.2.2 使用窄索引 102 4.2.3 检查列的唯一性 103 4.2.4 检查列数据类型 106 4.2.5 考虑列顺序 107 4.2.6 考虑索引类型 109 4.3 聚簇索引 109 4.3.1 堆表 110 4.3.2 与非聚簇索引的关系 110 4.3.3 聚簇索引建议 112 4.4 非聚簇索引 117 4.4.1 非聚簇索引维护 117 4.4.2 定义书签查找 117 4.4.3 非聚簇索引建议 118 4.5 聚簇索引vs.非聚簇索引 118 4.5.1 聚簇索引相对于非聚簇索引的好处 119 4.5.2 非聚簇索引相对于聚簇索引的好处 120 4.6 高级索引技术 121 4.6.1 覆盖索引 122 4.6.2 索引交叉 124 4.6.3 索引连接 125 4.6.4 过滤索引 126 4.6.5 索引视图 128 4.6.6 索引压缩 132 4.7 特殊索引类型 134 4.7.1 全文索引 134 4.7.2 空间索引 135 4.7.3 XML 135 4.8 索引的附加特性 135 4.8.1 不同的列排序顺序 135 4.8.2 在计算列上的索引 136 4.8.3 BIT数据类型列上的索引 136 4.8.4 作为一个查询处理的CREATE INDEX语句 136 4.8.5 并行索引创建 136 4.8.6 在线索引创建 137 4.8.7 考虑数据库引擎调整顾问 137 4.9 小结 137 第5章 数据库引擎调整顾问 139 5.1 数据库引擎调整顾问机制 139 5.2 数据库引擎调整顾问实例 143 5.2.1 调整一个查询 143 5.2.2 调整一个跟踪工作负载 146 5.3 数据库引擎调整顾问的局限性 148 5.4 小结 149 第6章 书签查找分析 150 6.1 书签查找的目的 150 6.2 书签查找的缺点 152 6.3 分析书签查找的起因 153 6.4 解决书签查找 155 6.4.1 使用一个聚簇索引 155 6.4.2 使用一个覆盖索引 155 6.4.3 使用索引连接 158 6.5 小结 160 第7章 统计分析 161 7.1 统计在查询优化中的角色 161 7.2 索引列上的统计 162 7.2.1 更新统计的好处 162 7.2.2 过时统计的缺点 164 7.3 在非索引列上的统计 165 7.3.1 在非索引列上统计的好处 166 7.3.2 丢失非索引列上的统计的缺点 169 7.4 分析统计 172 7.4.1 密度 174 7.4.2 多列索引上的统计 174 7.4.3 过滤索引上的统计 175 7.5 统计维护 176 7.5.1 自动维护 177 7.5.2 人工维护 179 7.5.3 统计维护状态 181 7.6 为查询分析统计的有效性 182 7.6.1 解决丢失统计问题 182 7.6.2 解决过时统计问题 184 7.7 建议 186 7.7.1 统计的向后兼容性 186 7.7.2 自动创建统计 186 7.7.3 自动更新统计 187 7.7.4 自动异步更新统计 189 7.7.5 收集统计的采样数量 189 7.8 小结 190 第8章 碎片分析 191 8.1 碎片的成因 191 8.1.1 UPDATE语句引起的页面分割 193 8.1.2 INSERT语句引起的页面分割 196 8.2 碎片开销 197 8.3 分析碎片数量 200 8.4 碎片解决方案 204 8.4.1 卸载并重建索引 204 8.4.2 使用DROP_EXISTING子句重建索引 205 8.4.3 执行ALTER INDEX REBUILD语句 205 8.4.4 执行ALTER INDEX REORGANIZE语句 207 8.5 填充因子的重要性 209 8.6 自动维护 212 8.7 小结 217 第9章 执行计划缓冲分析 218 9.1 执行计划生成 218 9.1.1 解析器 219 9.1.2 代数化器 220 9.1.3 优化 221 9.2 执行计划缓冲 227 9.3 执行计划组件 227 9.3.1 查询计划 227 9.3.2 执行上下文 227 9.4 执行计划的老化 228 9.5 分析执行计划缓冲 228 9.6 执行计划重用 229 9.6.1 即席工作负载 230 9.6.2 预定义工作负载 231 9.6.3 即席工作负载的计划可重用性 231 9.6.4 预定义工作负载的计划可重用性 239 9.7 查询计划Hash和查询Hash 248 9.8 执行计划缓冲建议 251 9.8.1 明确地参数化查询的可变部分 252 9.8.2 使用存储过程实现业务功能 252 9.8.3 使用sp_executesql编程以避免存储过程维护 252 9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 9.9 小结 254 第10章 存储过程重编译 256 10.1 重编译的好处和缺点 256 10.2 确认导致重编译的语句 258 10.3 分析重编译起因 260 10.3.1 架构或绑定变化 261 10.3.2 统计变化 261 10.3.3 延迟对象解析 264 10.3.4 SET选项变化 266 10.3.5 执行计划老化 266 10.3.6 显式调用sp_recompile 267 10.3.7 显式使用RECOMPILE子句 268 10.4 避免重编译 269 10.4.1 不要交替使用DDL和DML语句 270 10.4.2 避免统计变化引起的重编译 271 10.4.3 使用表变量 273 10.4.4 避免在存储过程中修改SET选项 275 10.4.5 使用OPTIMIZE FOR查询提示 276 10.4.6 使用计划指南 277 10.5 小结 281 第11章 查询设计分析 282 11.1 查询设计建议 282 11.2 在小结果集上操作 283 11.2.1 限制选择列表中的列数 283 11.2.2 使用高选择性的WHERE子句 284 11.3 有效地使用索引 284 11.3.1 避免不可参数化的搜索件 285 11.3.2 避免WHERE子句列上的算术运算符 289 11.3.3 避免WHERE子句列上的函数 290 11.4 避免优化器提示 292 11.4.1 连接提示 293 11.4.2 索引提示 295 11.5 使用域和参照完整性 296 11.5.1 非空约束 297 11.5.2 声明参照完整性 299 11.6 避免资源密集型查询 301 11.6.1 避免数据类型转换 301 11.6.2 使用EXISTS代替COUNT(*)验证数据存在 303 11.6.3 使用UNION ALL代替UNION 304 11.6.4 为聚合和排序操作使用索引 305 11.6.5 避免在批查询中的局部变量 306 11.6.6 小心地命名存储过程 309 11.7 减少网络传输数量 311 11.7.1 同时执行多个查询 311 11.7.2 使用SET NOCOUNT 311 11.8 降低事务开销 312 11.8.1 减少日志开销 312 11.8.2 减少锁开销 314 11.9 小结 315 第12章 阻塞分析 316 12.1 阻塞基础知识 316 12.2 理解阻塞 317 12.2.1 原子性 317 12.2.2 一致性 320 12.2.3 隔离性 320 12.2.4 持久性 321 12.3 数据库锁 321 12.3.1 锁粒度 322 12.3.2 锁升级 325 12.3.3 锁模式 326 12.3.4 锁兼容性 332 12.4 隔离级别 332 12.4.1 未提交读 333 12.4.2 已提交读 333 12.4.3 可重复读 335 12.4.4 可序列化(Serializable) 338 12.4.5 快照(Snapshot) 343 12.5 索引对锁的作用 343 12.5.1 非聚簇索引的作用 344 12.5.2 聚簇索引的作用 346 12.5.3 索引在可序列化隔离级别上的作用 346 12.6 捕捉阻塞信息 347 12.6.1 使用SQL捕捉阻塞信息 347 12.6.2 Profiler跟踪和被阻塞进程报告事件 349 12.7 阻塞解决方案 351 12.7.1 优化查询 352 12.7.2 降低隔离级别 352 12.7.3 分区争用的数据 353 12.7.4 争用数据上的覆盖索引 354 12.8 减少阻塞的建议 354 12.9 自动化侦测和收集阻塞信息 355 12.10 小结 359 第13章 死锁分析 360 13.1 死锁基础知识 360 13.2 使用错误处理来捕捉死锁 361 13.3 死锁分析 362 13.3.1 收集死锁信息 362 13.3.2 分析死锁 364 13.4 避免死锁 368 13.4.1 按照相同的时间顺序访问资源 368 13.4.2 减少被访问资源的数量 369 13.4.3 最小化锁的争用 369 13.5 小结 370 第14章 游标开销分析 372 14.1 游标基础知识 372 14.1.1 游标位置 373 14.1.2 游标并发性 374 14.1.3 游标类型 376 14.2 游标开销比较 378 14.2.1 游标位置的开销比较 378 14.2.2 游标并发性上的开销比较 380 14.2.3 在游标类型上的开销比较 381 14.3 默认结果集 383 14.3.1 好处 384 14.3.2 缺点 384 14.4 分析SQL Server游标开销 386 14.5 游标建议 390 14.6 小结 392 第15章 数据库工作负载优化 393 15.1 工作负载优化基础知识 393 15.2 工作负载优化步骤 394 15.3 捕捉工作负载 397 15.4 分析工作负载 399 15.5 识别开销最大的查询 400 15.6 确定开销最大的查询的基线资源使用 402 15.6.1 总体资源使用 402 15.6.2 详细资源使用 402 15.7 分析和优化外部因素 405 15.7.1 分析应用程序使用的批级别选项 405 15.7.2 分析统计有效性 406 15.7.3 分析碎片整理需求 406 15.8 分析开销最大的查询的内部行为 410 15.8.1 分析查询执行计划 410 15.8.2 识别执行计划中开销较大的步骤 412 15.8.3 分析处理策略的效率 412 15.9 优化代价最大的查询 412 15.9.1 修改现有索引 413 15.9.2 分析连接提示的应用 415 15.9.3 避免聚簇索引扫描操作 417 15.9.4 修改过程 418 15.10 分析对数据库工作负载的影响 420 15.11 迭代各个优化阶段 421 15.12 小结 424 第16章 SQL Server优化检查列表 425 16.1 数据库设计 425 16.1.1 平衡不足和过多的规范化 426 16.1.2 从实体完整性约束中得利 427 16.1.3 从域和参照完整性约束中得利 428 16.1.4 采用索引设计最佳实践 430 16.1.5 避免在存储过程名称中使用sp_前缀 431 16.1.6 最小化触发器的使用 431 16.2 查询设计 432 16.2.1 使用SET NOCOUNT ON命令 432 16.2.2 显式定义对象所有者 432 16.2.3 避免不可参数化的搜索件 432 16.2.4 避免WHERE子句列上的算术运算符 433 16.2.5 避免优化器提示 434 16.2.6 远离嵌套视图 434 16.2.7 确保没有隐含的数据类型转换 435 16.2.8 最小化日志开销 435 16.2.9 采用重用执行计划的最佳实践 435 16.2.10 采用数据库事务最佳实践 436 16.2.11 消除或减少数据库游标开销 437 16.3 配置设置 437 16.3.1 Affinity Mask 437 16.3.2 内存配置选项 437 16.3.3 并行性开销阈值 438 16.3.4 最大并行度 438 16.3.5 优化即席工作负载 438 16.3.6 查询调控器开销限制 439 16.3.7 填充因子(%) 439 16.3.8 被阻塞过程阈值 439 16.3.9 数据库文件布局 439 16.3.10 数据库压缩 440 16.4 数据库管理 440 16.4.1 保持统计最新 440 16.4.2 保持最小数量的索引碎片数量 441 16.4.3 循环使用SQL错误日志文件 441 16.4.4 避免像AUTO_CLOSE或AUTO_SHRINK这样的自动化数据库功能 441 16.4.5 最小化SQL跟踪开销 442 16.5 数据库备份 442 16.5.1 增量和事务日志备份频率 442 16.5.2 备份分布 443 16.5.3 备份压缩 444 16.6 小结 444 作者介绍 作者:(美国)弗奇(Grant Fritchey) (美国)达姆(Sajal Dam) 译者:姚军 弗奇(Grant Fritchey),为FM Global(一家行业领先的工程和保险公司)工作,担任首席DBA。他使用各种语言(如VB、C#和Java等)开发了许多大规模的应用程序,从版本6.0开始使用SQL Server。他曾经为3家失败的.com公司担任财务和咨询工作,还是Dissecting SQL Server Execution Plans一书的作者。 达姆(Sajal Dam),拥有位于印度班加罗尔的印度理工学院的计算机科学技术硕士学位,并且使用微软技术超过16年。他已经在设计数据库应用和管理软件开发方面拥有了很广泛的背景。Saial还在从前端网页到后端数据库的基于微软技术的应用程序上,具备了故障定位和性能优化的大量经验。他有许多为《财富》500强公司设计可伸缩的数据库解决方案和最大化数据库环境性能的经验。
标准中文版的pdf和实例数据脚本,分享给大家 《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决方案。 作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL Server 2008技术内幕:T-SQL查询》内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性很强,可以把它们作为解决实际问题的标准模式。阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 目录 -------------------------------------------------------------------------------- 序言 I 致谢III 前言 V 第1章 逻辑查询处理1 1.1 逻辑查询处理的各个阶段2 1.1.1 逻辑查询处理阶段简介2 1.2 客户/订单场景下的查询示例4 1.3 逻辑查询处理阶段详解5 1.3.1 步骤1:FROM阶段5 1.3.2 步骤2:WHERE阶段9 1.3.3 步骤3:GROUP BY阶段10 1.3.4 步骤4:HAVING阶段11 1.3.5 步骤5:SELECT阶段12 1.3.6 步骤6:排序用的ORDER BY阶段13 1.4 逻辑查询处理的深入内容16 1.4.1 表运算符16 1.4.2 OVER子句23 1.4.3 集合运算符25 1.5 总结26 第2章 集合论和谓词逻辑27 2.1 自然语言表述到数学表示的转换27 2.1.1 严格定义(well-Definedness)28 2.1.2 相等、恒等和同一性30 2.1.3 数学命名约定30 2.1.4 数字31 2.1.5 上下文32 2.1.6 函数、参数和变量33 2.1.7 指令和算法34 2.2 集合论34 2.2.1 集合的标记方法35 2.2.2 集合的严格定义36 2.2.3 论域36 2.2.4 真实性38 2.2.5 罗素悖论(Russell s Paradox)40 2.2.6 有序对、元组和笛卡尔积41 2.2.7 空集42 2.2.8 集合的特征函数43 2.2.9 集合的基数(Cardinality)43 2.2.10 顺序44 2.2.11 集合运算符47 2.2.12 集合论的推广50 2.3 谓词逻辑50 2.3.1 编程语言中的逻辑功能50 2.3.2 命题和谓词51 2.3.3 排中律53 2.3.4 与、或、非运算53 2.3.5 逻辑等价55 2.3.6 逻辑蕴含55 2.3.7 量化(Quantification)56 2.3.8 替代和推广58 2.4 关系59 2.4.1 自反性、对称性和传递性59 2.5 一个实际的应用60 2.6 总结63 第3章 关系模型65 3.1 关系模型简介65 3.1.1 关系、元组和类型65 3.1.2 关系模型:快速摘要70 3.2 关系代数和关系计算70 3.2.1 基本运算符71 3.2.2 关系代数71 3.2.3 Codd提出的8个原始关系运算符72 3.2.4 关系演算79 T-SQL支持80 3.3 数据完整性81 3.3.1 声明式约束82 3.3.2 实施完整性的其他方法84 3.4 数据库正规化和其他设计主题86 3.4.1 解决函数依赖的范式87 3.4.2 更高级的范式92 3.4.3 反规范化(Denormalization)95 3.4.4 一般化和特殊化96 3.5 总结98 第4章 查询优化99 4.1 本章用到的样本数据99 4.2 优化方法论102 4.2.1 分析实例级别的等待104 4.2.2 关联等待和队列111 4.2.3 确定行动方案112 4.2.4 细化到数据库/文件级别113 4.2.5 细化到进程级别115 4.2.6
(本书由4部分组成,需下载完4个文件之后,放在同一文件目录下才能正常解压) 基本信息   作者:(美国)(William R.Stanek)斯坦克 译者:贾洪峰   出版社:清华大学出版社   页码:583 页   出版日期:2009年   ISBN:9787302192671   装帧:平装   开本:16   丛书名:微软技术丛书   定价:69.00 编辑本段 作者简介   William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其中包括Microsoft Windows Server 2008 InsideOut。他也是“管理员必备指南”系列丛书的编辑。 编辑本段 编辑推荐   《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!   这本实用指南讲述了SQL Server 2008日常管理的工作。使用快速参考表、指令和列表聚焦核心的支持与维护任务。无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。   《SQL Server 2008管理员必备指南》重要主题:   规划、部署和配置SQL Server 2008   管理服务器,管理外围安全、访问及网络配置   导入、导出、转换和复制数据   使用SQL Server Management Studio执行主要的管理任务   操作架构、表、索引和视图   进行自动化维护和实现基于策略的管理   监视服务器活动并优化性能   管理日志传送和数据库镜像   执行备份和还原   《微软技术丛书》包括以下几个子系列   从入门到精通   适舍新手程序员的实用教程   侧重于基础技术和特征   提供范例文件   技术内幕   权威必备的参考大全   包含丰富、实用的范例代码   帮助读者熟练掌握微软技术   高级编程   侧重于高级特性、技术和解决问题   包含丰富适用性强的范倒代码   帮助读者精通微软技术   精通&宝典   着重剖析应用技巧以帮助提高工作效率   主题包括办公应用和开发工具   认证考试教材   完全根据考试要求来阐述每一个知识点   提供可供搜索的Ebook(英文版)和训练题   提供实际场景案例分析和故障诊断实验   SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录   第Ⅰ部分 SQL Server 2008管理基础   第1章 SQL Server 2008管理概况 3   1.1 SQL Server 2008与硬件 4   1.2 SQL Server 2008的版本 6   1.3 SQL Server和Windows 8   1.3.1 SQL Server的服务 8   1.3.2 SQL Server登录和身份验证 9   1.3.3 SQL Server的服务帐户 10   1.4 使用图形化管理工具 11   1.5 使用命令行工具 14   1.5.1 BCP 15   1.5.2 SQLCMD 15   1.5.3 其他命令行工具 17   1.6 使用SQL Server PowerShell 18   1.6.1 运行和使用cmdlet 18   1.6.2 运行和使用SQL Server PowerShell 19   1.6.3 使用SQL Server cmdlet 20   第2章 部署SQL Server 2008 22   2.1 SQL Server集成角色 22   2.1.1 使用SQL Server集成服务 22   2.1.2 使用SQL Server 2008的关系数据仓库 23   2.1.3 使用SQL Server 2008的多维数据库和数据挖掘 25   2.1.4 使用SQL Server 2008管理报表 26   2.2 规划SQL Server 2008的部署 27   2.2.1 建立服务器的性能系统 27   2.2.2 配置I/O子系统 28   2.2.3 确保可用性和可伸缩性 30   2.2.4 确保连接性和数据访问 31   2.2.5 管理SQL Server配置和安全性 32   2.3 运行安装程序和修改SQL Server安装 33   2.3.1 创建新的SQL Server实例 33   2.3.2 添加组件和实例 44   2.3.3 修复SQL Server 2008安装 44   2.3.4 升级SQL Server 2008版本 45   2.3.5 卸载SQL Server 45   第3章 管理外围安全、访问以及网络配置 46   3.1 管理SQL Server的组件功能 46   3.2 配置SQL Server服务 49   3.2.1 管理服务配置 50   3.2.2 管理服务的状态和启动模式 53   3.2.3 设置启动的服务帐户 54   3.2.4 配置文件流 56   3.2.5 配置服务转储目录、错误报告和客户反馈报告 58   3.3 管理网络和SQL本地客户端配置 59   3.3.1 管理连接配置 60   3.3.2 配置Shared Memory网络配置 62   3.3.3 配置Named Pipes网络配置 62   3.3.4 配置TCP/IP网络配置 62   3.3.5 配置本地客户端配置的安全性 65   3.3.6 配置本地客户端协议的顺序 65   3.3.7 设置共享内存的本地客户端配置 66   3.3.8 设置命名管道的本地客户端配置 66   3.3.9 设置TCP/IP本地客户端配置 67   第4章 配置和优化SQL Server 2008 68   4.1 访问SQL Server的配置数据 69   4.1.1 使用系统目录和目录视图 70   4.1.2 使用系统存储过程 75   4.2 管理SQL Server配置选项的技巧 82   4.2.1 设置配置选项 82   4.2.2 使用SET选项 83   4.2.3 使用服务器选项 85   4.2.4 使用数据库选项 86   4.2.5 管理数据库的兼容性 87   4.3 通过存储过程配置SQL Server 88   4.3.1 使用SQL Server Management Studio查询 88   4.3.2 执行查询和改变设置 90   4.3.3 检查和设置配置参数 91   4.3.4 使用ALTER DATABASE改变设置 95   第Ⅱ部分 SQL Server 2008的系统管理   第5章 管理企业 101   5.1 使用SQL Server Management Studio 101   5.1.1 开始使用SQL Server Management Studio 101   5.1.2 连接到特定的服务器实例 103   5.1.3 连接到特定数据库 103   5.2 管理SQL Server组 104   5.2.1 介绍SQL Server组 104   5.2.2 创建服务器组 106   5.2.3 删除服务器组 106   5.2.4 编辑和移动服务器组 107   5.2.5 添加SQL Server到一个组 107   5.3 管理服务器 107   5.3.1 注册已连接服务器 108   5.3.2 在“已注册的服务器”视图中注册新的服务器 109   5.3.3 注册以前注册的SQL Server 2000服务器 109   5.3.4 更新本地服务器注册 110   5.3.5 将服务器组和注册信息复制到另一台计算机 110   5.3.6 编辑注册属性 112   5.3.7 连接到服务器 113   5.3.8 从服务器断开连接 113   5.3.9 移动服务器到新的组 113   5.3.10 删除服务器注册 113   5.4 启动、停止和配置SQL Server代理 114   5.5 启动、停止和配置Microsoft分布式事务处理协调器 114   5.6 管理SQL Server启动 115   5.6.1 启用或防止SQL Server的自动启动 115   5.6.2 设置数据库引擎的启动参数 116   5.6.3 从命令行管理服务 118   5.6.4 管理SQL Server命令行的可执行文件 119   5.7 管理服务器活动 120   5.7.1 检查进程信息 120   5.7.2 跟踪资源等待和阻塞 122   5.7.3 检测修复死锁和阻塞连接 125   5.7.4 在SQL Server中跟踪命令的执行 126   5.7.5 终止服务器进程 127   第6章 使用SQL Server Management Studio配置SQL Server 128   6.1 使用SQL Server Management Studio管理配置 128   6.2 确定系统和服务器信息 130   6.3 配置身份验证和审核 130   6.3.1 设置身份验证模式 131   6.3.2 设置审核级别 132   6.3.3 启用或禁用C2审核登录 132   6.3.4 启用或禁用“符合公共标准” 133   6.4 调节内存的使用 133   6.4.1 动态配置内存 135   6.4.2 使用固定内存 136   6.4.3 启用AWE内存的支持 136   6.4.4 为索引优化内存 137   6.4.5 为查询分配内存 138   6.5 配置处理器和并行处理 138   6.5.1 优化CPU的使用 139   6.5.2 设置并行处理 141   6.6 配置线程、优先级和纤程 142   6.7 配置用户和远程连接 143   6.7.1 设置最大用户连接 144   6.7.2 设置默认连接选项 145   6.7.3 配置远程服务器连接 146   6.8 管理服务器设置 147   6.8.1 启用或禁用文件流 148   6.8.2 设置SQL Server的默认语言 148   6.8.3 允许和禁止嵌套触发器 149   6.8.4 控制查询的执行 149   6.8.5 配置2000年的支持 150   6.9 管理数据库设置 150   6.9.1 设置索引填充 151   6.9.2 配置备份和还原超时选项 152   6.9.3 配置备份和还原保持选项 153   6.9.4 用检查点清空缓存 153   6.9.5 压缩备份媒体 153   6.10 添加和删除活动目录的信息 154   6.11 修复配置故障 154   6.11.1 从损坏的配置中恢复 154   6.11.2 更改排序规则和重新生成master数据库 155   第7章 数据库管理的核心任务 157   7.1 数据库文件和日志 157   7.2 数据库管理基础 161   7.2.1 在SQL Server Management Studio中查看数据库的信息 161   7.2.2 使用T-SQL查看数据库信息 163   7.2.3 检查系统和示例数据库 164   7.2.4 检查数据库对象 164   7.3 创建数据库 166   7.3.1 在SQL Server Management Studio中创建数据库 167   7.3.2 使用T-SQL创建数据库 170   7.4 修改数据库及其选项 171   7.4.1 在SQL Server Management Studio中设置数据库选项 171   7.4.2 使用ALTER DATABASE修改数据库 172   7.4.3 配置自动选项 176   7.4.4 在数据库级别上控制ASNI的兼容性 177   7.4.5 配置参数化 179   7.4.6 配置游标选项 181   7.4.7 控制用户访问和数据库状态 182   7.4.8 设置联机、脱机或紧急模式 183   7.4.9 管理跨数据库链接和外部访问选项 183   7.4.10 配置恢复、日志记录和磁盘I/O错误检查选项 184   7.4.11 查看、更改和覆盖数据库选项 186   7.5 管理数据库和日志大小 186   7.5.1 配置SQL Server自动管理文件大小 186   7.5.2 手动扩展数据库和日志 187   7.5.3 手动压缩和收缩数据库 187   7.6 操作数据库 191   7.6.1 重命名数据库 191   7.6.2 清除和删除数据库 192   7.6.3 附加和分离数据库 193   7.7 提示和技巧 195   7.7.1 复制和移动数据库 195   7.7.2 移动数据库 199   7.7.3 移动tempdb和改变tempdb的大小 200   7.7.4 创建辅助数据和日志文件 201   7.7.5 防止事务日志错误 201   7.7.6 防止文件组充满的错误 202   7.7.7 创建新的数据库模板 202   7.7.8 配置数据库加密 202   第8章 全文搜索的管理 204   8.1 全文目录和索引 204   8.2 管理全文目录 207   8.2.1 查看目录属性 207   8.2.2 创建目录 209   8.2.3 启用表和视图的索引 210   8.2.4 编辑表和视图的索引 212   8.2.5 从表或视图中禁用和删除全文索引 212   8.2.6 填充全文目录 213   8.2.7 重新生成当前目录 216   8.2.8 清除旧的目录 217   8.2.9 删除目录 217   8.3 管理全文搜索 218   8.3.1 设置全文搜索的默认语言 218   8.3.2 使用非索引字表 219   8.3.3 创建非索引字表 220   8.3.4 管理非索引字表 222   8.3.5 创建和使用同义词库文件 223   第9章 管理SQL Server 2008的安全性 227   9.1 SQL Server 2008安全性概况 227   9.1.1 使用安全主体和安全对象 228   9.1.2 理解安全对象的权限 229   9.1.3 检查授予安全对象的权限 231   9.2 SQL Server 2008的身份验证模式 234   9.2.1 Windows身份验证 234   9.2.2 混合模式和SQL Server登录 234   9.3 特殊目的的登录和用户 235   9.3.1 使用管理员组 235   9.3.2 使用管理员用户帐户 236   9.3.3 使用sa登录 236   9.3.4 使用NETWORK SERVICE和SYSTEM登录 236   9.3.5 使用guest用户 236   9.3.6 使用dbo用户 237   9.3.7 使用sys和INFORMATION_SCHEMA用户 238   9.4 权限 238   9.4.1 对象权限 238   9.4.2 语句权限 243   9.4.3 隐含权限 243   9.5 角色 243   9.5.1 服务器角色 244   9.5.2 数据库角色 245   9.6 管理服务器登录 247   9.6.1 查看和编辑现有的登录 247   9.6.2 创建登录 249   9.6.3 用T-SQL编辑登录 251   9.6.4 允许或拒绝访问服务器 252   9.6.5 启用、禁用和解锁登录 253   9.6.6 删除登录 254   9.6.7 更改密码 254   9.7 配置服务器角色 255   9.7.1 为登录分配角色 255   9.7.2 为多个登录分配角色 256   9.7.3 撤销服务器登录的访问权限和授予的角色 257   9.8 控制数据库访问和管理 258   9.8.1 为登录分配访问权限和角色 258   9.8.2 为多个登录分配角色 259   9.8.3 创建标准的数据库角色 260   9.8.4 创建应用程序数据库角色 261   9.8.5 删除数据库用户的角色成员关系 262   9.8.6 删除用户定义的角色 262   9.8.7 管理访问和角色的Transact-SQL命令 263   9.9 管理数据库权限 264   9.9.1 为语句分配数据库权限 264   9.9.2 登录的对象权限 269   9.9.3 多个登录的对象权限 270   第Ⅲ部分 SQL Server 2008的数据管理   第10章 操作架构、表、索引和视图 275   10.1 处理架构 275   10.1.1 创建架构 276   10.1.2 修改架构 278   10.1.3 将对象移动到新架构 279   10.1.4 删除架构 280   10.2 表的概况 280   10.3 表的实质 281   10.3.1 了解数据页 281   10.3.2 了解区 282   10.3.3 了解表的分区 283   10.4 处理表 283   10.4.1 创建表 284   10.4.2 修改现有的表 288   10.4.3 查看表的行和大小的信息 290   10.4.4 显示表属性和权限 291   10.4.5 显示表中当前的值 291   10.4.6 复制表 292   10.4.7 重命名和删除表 292   10.4.8 在一个表中添加和删除列 293   10.4.9 编写表脚本 294   10.5 管理表的值 294   10.5.1 使用原始数据类型 294   10.5.2 使用固定长度、可变长度   和最大长度的字段 298   10.5.3 使用用户定义的数据类型 299   10.5.4 允许和不允许Null值 301   10.5.5 使用默认值 302   10.5.6 使用稀疏列 302   10.5.7 使用标识和全局唯一标识符 303   10.5.8 使用用户定义的表类型 304   10.6 使用视图 307   10.6.1 操作视图 307   10.6.2 创建视图 308   10.6.3 修改视图 311   10.6.4 使用可更新视图 312   10.6.5 管理视图 312   10.7 创建和管理索引 313   10.7.1 了解索引 313   10.7.2 使用聚集索引 315   10.7.3 使用非聚集索引 315   10.7.4 使用XML索引 315   10.7.5 使用筛选索引 316   10.7.6 确定应当索引哪些列 317   10.7.7 索引计算列和视图 318   10.7.8 查看索引属性 318   10.7.9 创建索引 320   10.7.10 管理索引 324   10.7.11 使用数据库引擎优化顾问 326   10.8 列约束和规则 329   10.8.1 使用约束 329   10.8.2 使用规则 333   10.9 创建已分区表和索引 334   10.9.1 创建分区函数 334   10.9.2 创建分区方案 335   10.9.3 创建分区 335   10.9.4 查看和管理分区 337   10.10 压缩表、索引和分区 338   10.10.1 使用行和页压缩 338   10.10.2 设置或改变压缩设置 339   第11章 数据的导入和导出及转换 341   11.1 使用集成服务 341   11.1.1 集成服务简介 341   11.1.2 集成服务工具 342   11.1.3 集成服务和数据提供程序 344   11.1.4 集成服务包 344   11.2 使用SQL Server导入和导出向导创建包 345   11.2.1 阶段1:数据源和目标的配置 346   11.2.2 阶段2:复制或查询 353   11.2.3 阶段3:格式化和转换 357   11.2.4 阶段4:保存和执行 360   11.3 了解BCP 363   11.3.1 BCP 基础 363   11.3.2 BCP 语法 363   11.3.3 BCP 权限和模式 366   11.3.4 使用BCP导入数据 366   11.3.5 使用BCP导出数据 368   11.4 BCP脚本 368   11.5 使用BULK INSERT 命令 369   第12章 链接服务器与分布式事务 371   12.1 使用链接服务器和分布式数据 371   12.1.1 使用分布式查询 372   12.1.2 使用分布式事务 374   12.1.3 运行分布式事务处理协调器服务 375   12.2 管理链接服务器 375   12.2.1 添加链接服务器 376   12.2.2 配置链接服务器的安全性 379   12.2.3 设置远程和链接服务器的服务器选项 381   12.2.4 删除链接服务器 382   第13章 实施快照、合并和事务复制 384   13.1 复制的概况 384   13.1.1 复制组件 385   13.1.2 复制代理和作业 386   13.1.3 复制的类型 387   13.2 复制的计划 389   13.2.1 复制模式 389   13.2.2 复制的预备任务 390   13.3 分发服务器的管理 392   13.3.1 设置新的分发服务器 392   13.3.2 更新分发服务器 396   13.3.3 创建分发数据库 398   13.3.4 启用和更新发布服务器 399   13.3.5 启用发布数据库 399   13.3.6 删除分发数据库 400   13.3.7 禁用发布和分发 400   13.4 创建和管理发布 401   13.4.1 创建发布 401   13.4.2 查看和更新发布 407   13.4.3 设置发布属性 408   13.4.4 设置代理安全性和进程帐户 409   13.4.5 控制订阅访问发布 410   13.4.6 为发布创建脚本 410   13.4.7 删除发布 411   13.5 订阅发布 411   13.5.1 订阅的实质 411   13.5.2 创建订阅 412   13.5.3 查看订阅属性 415   13.5.4 更新、维护和删除订阅 416   13.5.5 验证订阅 416   13.5.6 重新初始化订阅 417   第Ⅳ部分 SQL Server 2008的优化与维护   第14章 分析和监视SQL Server 2008 421   14.1 监视服务器的性能和活动 421   14.1.1 监视SQL Server的原因 421   14.1.2 为监视做准备 422   14.1.3 监视工具和资源 423   14.2 使用复制监视器 425   14.2.1 启动并使用复制监视器 425   14.2.2 添加发布服务器和发布服务器组 426   14.3 使用事件日志 427   14.3.1 检查应用程序日志 428   14.3.2 检查SQL Server事件日志 430   14.3.3 检查SQL Server代理事件日志 432   14.4 监视SQL Server的性能 433   14.4.1 选择要监视的计数器 433   14.4.2 创建性能日志 435   14.4.3 查看数据收集器报告 439   14.4.4 配置性能计数器警报 440   14.5 配置管理数据仓库 441   14.5.1 了解管理数据仓库 441   14.5.2 创建管理数据仓库 441   14.5.3 设置数据收集 442   14.5.4 管理收集和生成报表 442   14.6 使用事件探查器解决性能问题 442   14.6.1 使用事件探查器 443   14.6.2 新建跟踪 444   14.6.3 使用跟踪 447   14.6.4 保存跟踪 447   14.6.5 重播跟踪 448   第15章 备份和还原SQL Server 2008 452   15.1 创建备份和还原计划 452   15.1.1 开始备份和还原计划 452   15.1.2 规划镜像与镜像数据库的备份 456   15.1.3 规划被复制数据库的备份 456   15.1.4 规划大型数据库的备份 458   15.1.5 规划备份压缩 458   15.2 选择备份设备和媒体 459   15.3 使用备份策略 461   15.4 创建备份设备 462   15.5 执行备份 464   15.5.1 在SQL Server Management Studio中创建备份 464   15.5.2 使用多个设备的带   备份 468   15.5.3 使用Transact-SQL备份 469   15.5.4 执行事务日志备份 472   15.6 还原数据库 473   15.6.1 数据库损坏及解决方法 473   15.6.2 从正常备份还原数据库 475   15.6.3 还原文件和文件组 479   15.6.4 将数据库还原到不同位置 481   15.6.5 还原丢失的数据 481   15.6.6 创建备用服务器 482   15.6.7 使用Transact-SQL还原命令 483   15.7 还原master数据库 487   第16章 数据库自动化和维护 489   16.1 数据库自动化和维护概述 489   16.2 使用数据库邮件 490   16.2.1 执行初始数据库邮件配置 490   16.2.2 管理数据库邮件配置文件和帐户 495   16.2.3 查看和更改数据库邮件系统参数 496   16.3 使用SQL Server代理 497   16.3.1 访问警报、操作员和作业 497   16.3.2 配置SQL Server代理服务 497   16.3.3 设置SQL Server代理邮件配置文件 498   16.3.4 使用SQL Server代理重新启动服务 499   16.4 管理警报 499   16.4.1 使用默认警报 499   16.4.2 创建错误消息警报 500   16.4.3 处理警报响应 501   16.4.4 删除、启用和禁用警报 503   16.5 管理操作员 503   16.5.1 注册操作员 503   16.5.2 删除和禁用对操作员的通知 504   16.5.3 配置防故障操作员 505   16.6 计划作业 505   16.6.1 创建作业 506   16.6.2 指定或更改作业定义 506   16.6.3 设置执行步骤 508   16.6.4 配置作业计划 511   16.6.5 处理作业警报 514   16.6.6 处理通知消息 514   16.6.7 管理现有作业 515   16.6.8 管理作业类别 516   16.7 自动完成服务器到服务器的 日常管理任务 517   16.7.1 在数据库之间复制用户、表、视图和其他对象 517   16.7.2 在数据库之间复制警报、操作员和计划作业 519   16.8 多服务器管理 519   16.8.1 事件转发 520   16.8.2 多服务器作业计划 521   16.9 数据库维护 523   16.9.1 数据库维护清单 523   16.9.2 使用维护计划 524   16.9.3 检查和维护数据库完整性 529   第17章 管理日志传送与数据库镜像 534   17.1 日志传送 534   17.1.1 日志传送:如何工作 534   17.1.2 为日志传送做准备 536   17.1.3 将SQL Server 2000 日志传送升级到 SQL Server 2008日志传送 37   17.1.4 在主数据库上启用日志传送 537   17.1.5 添加日志传送辅助数据库 541   17.1.6 改变事务日志备份的时间间隔 544   17.1.7 改变复制和还原的时间间隔 545   17.1.8 监视日志传送 545   17.1.9 故障转移到辅助数据库 546   17.1.10 禁用和删除日志传送 548   17.2 数据库镜像 548   17.2.1 数据库镜像基础知识 548   17.2.2 配置数据库镜像 549   17.2.3 管理和监视镜像 553   17.2.4 使用故障转移进行恢复 556   17.2.5 删除数据库镜像 557   17.3 使用镜像和日志传送 557   第18章 实施基于策略的管理 559   18.1 基于策略的管理简介 559   18.2 使用基于策略的管理 561   18.3 在整个企业内管理策略 566   18.3.1 导入和导出策略 566   18.3.2 配置中央管理服务器 568   18.3.3 针对多个服务器执行语句 571   18.3.4 配置和管理策略方面 571   18.3.5 创建和管理策略件 573   18.3.6 创建和管理策略 575   18.3.7 管理策略目标和托管策略 578   18.3.8 评估策略 580   18.3.9 基于策略的管理策略疑难解答 582   ……
第1章 数据库sql基础 1 1.1 数据库的基本概念 1 1.1.1 数据库的由来 1 1.1.2 数据库系统的概念 3 1.2 数据库系统的结构、组成及工作流程 3 1.2.1 数据库的体系结构 3 1.2.2 数据库系统的组成 4 1.2.3 数据库的工作流程 5 1.3 数据库的发展 6 1.3.1 第一代数据库 7 1.3.2 第二代数据库 7 1.3.3 新一代数据库技术的研究和发展 7 1.4 关系数据库 8 1.4.1 关系模型 8 1.4.2 codd十二法则 9 1.4.3 范式 10 1.5 sql语言基础 11 1.5.1 sql的历史 11 1.5.2 sql语言的组成 12 1.5.3 sql语句的结构 13 .1.5.4 sql的优点 13 1.5.5 sql的执行 14 1.6 sql环境 15 1.6.1 环境 15 1.6.2 sql的层次结构 15 1.6.3 客户程序和服务程序系统 17 1.6.4 sql环境中对象的命名规则 18 第2章 主要的关系数据库sql 21 2.1 sql server 21 2.1.1 sql server的结构 21 2.1.2 数据库访问标准化接口—odbc 22 2.1.3 使用查询分析器执行sql语句 22 2.2 transact-sql 24 2.2.1 transact-sql 概述 24 2.2.2 transact-sql的主要组成 25 2.2.3 transact-sql的一些重要命令 26 2.3 oracle数据库 29 2.3.1 oracle数据库软件组成 29 2.3.2 oracle数据库体系结构 29 2.3.3 oracle数据库系统结构 30 2.3.4 使用sql*plus执行sql语句 31 2.4 pl/sql简介 32 2.4.1 pl/sql的特点 32 2.4.2 pl/sql程序结构 33 第3章 创建、修改和删除表 37 3.1 表的基础知识 37 3.1.1 表的基本结构 37 3.1.2 表的种类 38 3.2 sql数据类型 39 3.2.1 字符型数据 39 3.2.2 数字型数据 40 3.2.3 日期数据类型 41 3.2.4 二进制数据类型 43 3.2.5 文本和图形数据类型 44 3.2.6 自定义数据类型 44 3.3 表的创建(create) 46 3.3.1 创建基本表 46 3.3.2 非空约束 47 3.3.3 default指定缺省值 49 3.4 表的修改 50 3.4.1 增加新列 50 3.4.2 删除列 51 3.4.3 修改列 53 3.5 表的删除与重命名 55 3.5.1 重命名表 55 3.5.2 删除表 56 3.6 创建、删除数据库 56 3.6.1 数据库的创建 56 3.6.2 sql server数据库的创建 57 3.6.3 删除数据库 58 第4章 索引与视图的创建 61 4.1 索引的基础知识 61 4.1.1 索引的概念 61 4.1.2 索引的结构 61 4.2 索引的创建与销毁 63 4.2.1 基本创建语法 63 4.2.2 本章实例用到的实例表 64 4.2.3 创建简单的非簇索引 66 4.2.4 多字段非簇索引的创建 69 4.2.5 使用unique关键字创建惟一索引 70 4.2.6 使用clusterde关键字创建簇索引 71 4.2.7 索引的销毁 73 4.2.8 使用索引的几点原则 73 4.3 视图的基础知识 74 4.3.1 视图简介 74 4.3.2 视图的优缺点 74 4.4 视图的创建与销毁 75 4.4.1 基本创建语法 75 4.4.2 创建简单的视图 75 4.4.3 利用视图简化表的复杂连接 78 4.4.4 利用视图简化复杂查询 79 4.4.5 视图的销毁 81 4.4.6 使用视图的几点原则 82 第5章 简单的查询 83 5.1 查询的基本结构 83 5.1.1 select语句的结构 83 5.1.2 select语句的执行步骤 84 5.2 列的查询 84 5.2.1 本章用到的实例表 85 5.2.2 单列查询 85 5.2.3 使用distinct去除重复信息 86 5.2.4 多列查询 87 5.2.5 查询所有的列 88 5.3 排序查询结果 89 5.3.1 单列排序 89 5.3.2 多列排序 90 5.3.3 采用序号进行多列排序 91 5.3.4 反向排序 92 5.4 使用where子句定义搜索查询 93 5.4.1 where子句单查询 93 5.4.2 单值比较运算符 94 5.4.3 between运算符范围筛选 96 5.4.4 null值的判断 97 第6章 复杂搜索查询 99 6.1 本章用到的实例表 99 6.2 组合查询件 100 6.2.1 and运算符 100 6.2.2 or运算符 101 6.2.3 and、or运算符的组合使用 103 6.3 in运算符 104 6.3.1 in运算符的使用 104 6.3.2 in运算符与or运算符 105 6.4 not运算符 106 6.4.1 使用not运算符 106 6.4.2 not运算符与[]运算符 108 6.5 使用like进行模糊查询 109 6.5.1 like运算符 109 6.5.2 “%”通配符 110 6.5.3 “_”通配符 112 6.5.4 “[]”通配符 114 6.5.5 使用escape定义转义符 115 第7章 连接符、数值运算与函数 117 7.1 本章实例用到的表 117 7.2 连接符 118 7.2.1 连接符的应用 118 7.2.2 使用别名 119 7.3 数值运算 121 7.3.1 数学运算符的种类 121 7.3.2 数学运算符的运用 122 7.3.3 使用cast表达式转换数据类型 123 7.3.4 使用case表达式 124 7.4 函数 126 7.4.1 有关函数的说明 126 7.4.2 字符处理函数 126 7.4.3 算术运算函数 131 7.4.4 日期时间函数 133 7.4.5 convert()函数转换日期、时间 136 第8章 聚合分析与分组 139 8.1 聚合分析的基本概念 139 8.1.1 聚合分析 139 8.1.2 聚合函数 139 8.2 聚合函数的应用 140 8.2.1 求和函数—sum() 140 8.2.2 计数函数—count() 140 8.2.3 最大/最小值函数—max()/min() 143 8.2.4 均值函数—avg() 145 8.2.5 聚合分析的重值处理 147 8.2.6 聚合函数的组合使用 148 8.3 组合查询 148 8.3.1 group by子句创建分组 149 8.3.2 group by子句根据多列组合行 150 8.3.3 rollup运算符和cube运算符 151 8.3.4 group by子句中的null值处理 153 8.3.5 having子句 153 8.3.6 having子句与where子句 154 8.3.7 select语句各查询子句总结 156 第9章 多表查询 157 9.1 本章用到的实例表 157 9.2 表的基本连接 158 9.2.1 连接表的目的 158 9.2.2 简单的二表连接 159 9.2.3 多表连接 161 9.2.4 使用表别名 162 9.2.5 采用join关键字建立连接 163 9.3 表的连接类型 163 9.3.1 自连接 163 9.3.2 自然连接(natural join) 166 9.3.3 内连接(inner join) 167 9.3.4 外连接(outer join) 170 9.3.5 交叉连接(cross join) 176 9.4 union与union join 177 9.4.1 关系的集合运算 177 9.4.2 union运算符 178 9.4.3 order by子句排序union运算结果 180 9.4.4 对多表进行union运算 181 9.4.5 union join 连接表 183 9.5 表连接的其他应用及注意问题 183 9.5.1 连接表进行聚合运算 183 9.5.2 多表连接的综合运用 185 9.5.3 多表连接注意事项 186 第10章 子查询 187 10.1 创建和使用返回单值的子查询 187 10.1.1 在多表查询中使用子查询 187 10.1.2 在子查询中使用聚合函数 188 10.2 创建和使用返回多行的子查询 190 10.2.1 in子查询 190 10.2.2 in子查询实现集合交和集合差运算 191 10.2.3 exists子查询 192 10.2.4 exists子查询实现两表交集 194 10.2.5 some/all子查询 195 10.2.6 unique子查询 197 10.3 相关子查询 198 10.3.1 使用in引入相关子查询 198 10.3.2 比较运算符引入相关子查询 200 10.3.3 在having子句中使用相关子查询 201 10.4 嵌套子查询 203 10.5 使用子查询创建视图 204 10.6 树查询 205 第11章 数据插入操作 209 11.1 插入单行记录 209 11.1.1 基本语法 209 11.1.2 整行插入 209 11.1.3 null值的插入 211 11.1.4 惟一值的插入 212 11.1.5 特定字段数据插入 213 11.1.6 通过视图插入行 214 11.2 插入多行记录 216 11.2.1 由values关键字引入多行数据插入 217 11.2.2 使用select语句插入值 217 11.3 表中数据的复制 220 11.3.1 基本语法 221 11.3.2 应用实例 221 11.4 从外部数据源导入、导出数据 222 11.4.1 access数据库数据的导出 223 11.4.2 access数据库数据的导入 225 11.4.3 sql server数据库数据导出 227 11.4.4 sql server数据库数据导入 230 第12章 数据的更新和删除 233 12.1 更新表中的数据 233 12.1.1 update语句的基本语法 233 12.1.2 update语句更新列值 234 12.1.3 利用子查询更新多行的值 237 12.1.4 依据外表值更新数据 238 12.1.5 分步更新表 239 12.2 删除表中的数据 240 12.2.1 delete语句基本语法 240 12.2.2 delete语句删除单行数据 240 12.2.3 delete语句删除多行数据 241 12.2.4 delete语句删除所有行 242 12.2.5 truncate table语句 242 12.3 通过视图更新表 243 12.3.1 可更新视图的约束 243 12.3.2 通过视图更新表数据 243 12.3.3 通过视图删除表数据 245 第13章 安全性控制 249 13.1 sql安全模式 249 13.1.1 授权id 249 13.1.2 sql的安全对象和权限 250 13.1.3 授权图 251 13.2 角色管理 251 13.2.1 create语句创建角色 252 13.2.2 drop语句删除角色 252 13.2.3 grant语句授予角色 252 13.2.4 revoke语句取消角色 253 13.3 权限管理 254 13.3.1 grant语句授予权限 254 13.3.2 revoke语句取消权限 255 13.3.3 select权限控制 256 13.3.4 insert权限控制 258 13.3.5 update权限控制 258 13.3.6 delete权限控制 259 13.4 sql server安全管理 260 13.4.1 sql server登录认证 260 13.4.2 sql server用户id的管理 261 13.4.3 sql server权限管理 263 13.4.4 sql server角色管理 266 13.5 oracle安全管理 268 13.5.1 oracle中用户、资源、概要文件、模式的概念 269 13.5.2 oracle中的用户管理 269 13.5.3 oracle中的资源管理 274 13.5.4 oracle中的权限管理 277 13.5.5 oracle中的角色管理 278 第14章 完整性控制 281 14.1 完整性约束简介 281 14.1.1 数据的完整性 281 14.1.2 完整性约束的类型 281 14.2 与表有关的约束 282 14.2.1 列约束与表约束的创建 282 14.2.2 not null(非空)约束 282 14.2.3 unique(惟一)约束 284 14.2.4 primary key(主键)约束 285 14.2.5 foreign key(外键)约束 287 14.2.6 check(校验)约束 289 14.3 深入探讨外键与完整性检查 290 14.3.1 引用完整性检查 290 14.3.2 match子句 291 14.3.3 更新、删除操作规则 293 14.4 域约束与断言 295 14.4.1 域与域约束 295 14.4.2 利用断言创建多表约束 296 14.5 sql server中的完整性控制 296 14.5.1 创建规则(rule) 297 14.5.2 规则的绑定与松绑 298 14.5.3 创建缺省值(default) 299 14.5.4 缺省值的绑定与松绑 300 第15章 存储过程与函数 303 15.1 sql中的存储过程与函数 303 15.2 sql server 中的流控制语句 304 15.2.1 begin…end语句 304 15.2.2 if…else语句 304 15.2.3 while、break和continue语句 304 15.2.4 declare语句 306 15.2.5 goto label语句 306 15.2.6 return语句 307 15.2.7 waitfor语句 307 15.2.8 print语句 308 15.2.9 注释 308 15.3 sql server中的存储过程和函数 308 15.3.1 系统存储过程 308 15.3.2 使用create procedure创建存储过程 309 15.3.3 使用execute语句调用存储过程 310 15.3.4 使用create function创建函数 312 15.3.5 使用enterprise manager创建存储过程和函数 315 15.3.6 修改和删除存储过程和函数 317 15.4 oracle中的流控制语句 319 15.4.1 件语句 319 15.4.2 循环语句 320 15.4.3 标号和goto 322 15.5 oracle数据库中的存储过程 322 15.5.1 存储过程的创建与调用 322 15.5.2 oracle中存储过程和函数的管理 324 第16章 sql触发器 325 16.1 触发器的基本概念 325 16.1.1 触发器简介 325 16.1.2 触发器执行环境 325 16.2 sql server中的触发器 326 16.2.1 sql server触发器的种类 326 16.2.2 使用create trigger命令创建触发器 326 16.2.3 insert触发器 328 16.2.4 delete触发器 329 16.2.5 update触发器 330 16.2.6 instead of触发器 332 16.2.7 嵌套触发器 334 16.2.8 递归触发器 336 16.2.9 sql server中触发器的管理 338 16.3 oracle数据库中触发器的操作 340 16.3.1 oracle触发器类型 340 16.3.2 触发器的创建 341 16.3.3 创建系统触发器 342 16.3.4 触发器的触发次序和触发谓词的使用 343 16.3.5 oracle触发器的管理 346 第17章 sql中游标的使用 349 17.1 sql游标的基本概念 349 17.1.1 游标的概念 349 17.1.2 游标的作用及其应用 350 17.2 sql游标的使用 351 17.2.1 使用declare cursor语句创建游标 351 17.2.2 使用open/close语句打开/关闭游标 352 17.2.3 使用fetch语句检索数据 352 17.2.4 基于游标的定位delete语句 354 17.2.5 基于游标的定位update语句 356 17.3 sql server中游标的扩展 357 17.3.1 transact_sql扩展declare cursor语法 357 17.3.2 @@cursor_rows全局变量确定游标的行数 359 17.3.3 @@fetch_status全局变量检测fetch操作的状态 360 17.3.4 游标的关闭与释放 361 17.3.5 游标变量 362 17.3.6 使用系统过程管理游标 363 17.4 oracle中游标的使用 365 17.4.1 显式游标与隐式游标 365 17.4.2 游标的属性 366 17.4.3 %type、%rowtype定义记录变量 367 17.4.4 参数化游标 368 17.4.5 游标中的循环 369 17.4.6 游标变量 371 17.5 小结 372 第18章 事务控制与并发处理 373 18.1 sql事务控制 373 18.1.1 事务控制的引入 373 18.1.2 事务的特性 373 18.1.3 sql中与事务有关的语句 374 18.2 事务控制的具体实现 376 18.2.1 开始事务 376 18.2.2 set constraints语句设置约束的延期执行 377 18.2.3 终止事务 378 18.3 并发控制 380 18.3.1 并发操作的问题 381 18.3.2 事务隔离级别 382 18.3.3 set transaction设置事务属性 383 18.4 sql server中的并发事务控制 384 18.4.1 锁的分类 384 18.4.2 sql server中表级锁的使用 385 18.4.3 设置隔离级别实现并发控制 387 18.4.4 死锁及其预防 391 18.5 oracle中的并发事务控制 393 18.5.1 通过加锁避免写数据丢失 393 18.5.2 设置只读事务(read only) 394 18.5.3 oracle中的隔离级别 395 第19章 嵌入式sql 397 19.1 sql的调用 397 19.1.1 直接调用sql 397 19.1.2 嵌入式sql 398 19.1.3 sql调用层接口(cli) 399 19.2 嵌入式sql的使用 401 19.2.1 创建嵌入式sql语句 401 19.2.2 sql通信区 402 19.2.3 主变量 404 19.2.4 嵌入式sql中使用游标 406 19.3 检索、操作sql数据 407 19.3.1 不需要游标的sql dml操作 407 19.3.2 使用游标的sql dml操作 410 19.3.3 动态sql技术 412 19.4 sql server中嵌入式sql的编译运行 413 19.4.1 嵌入式sql代码 413 19.4.2 预编译文件 415 19.4.3 设置visual c++ 6.0连接 417 19.4.4 编译运行程序 419 19.5 oracle中嵌入式sql的编译运行 420 19.5.1 嵌入式sql代码 420 19.5.2 预编译文件 421 19.5.3 设置visual c++ 6.0编译环境 423 19.5.4 编译运行程序 424 附录a sql保留字 427 附录b 常用的sql命令 431 附录c 关于运行环境的说明 435 c.1 sql server 2000 435 c.1.1 直接访问 435 c.1.2 从企业管理器访问 436 c.2 oracle系统 436

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧