《SQL编程实用大全》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)Konrad King著;杜大鹏等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2003
  • ISBN:7508413148
  • 页数:836 页
图书介绍:本书作者以其丰富的SQL数据库工作经验,向读者介绍了从数据库概念到数据库理论,从SQL标准到各种SQL数据库产品,从数据库的编程方法到具体的语句句法,从分布式计算到Internet应用等的有关知识。

第1章 理解SQL基本知识并创建数据库文件 1

技巧1 理解数据库的定义 1

技巧2 理解平面文件 1

技巧3 理解分层的数据库模型 3

技巧4 理解网络数据库模型 5

技巧5 理解关系数据库模型 7

技巧6 理解Cood的12条关系数据库定义规则 9

技巧7 理解用于定义SQL数据库的术语 10

技巧8 理解表的组成 15

技巧9 理解表名 16

技巧10 理解列名 17

技巧11 理解视图 19

技巧12 理解架构 22

技巧13 理解SQL的系统目录 25

技巧14 理解域 26

技巧15 理解约束 27

技巧16 理解SQL的历史 28

技巧17 理解SQL和编程语言之问的差别 30

技巧18 理解数据定义语言(DDL) 31

技巧19 理解数据操作语言(DML) 34

技巧20 理解数据控制语言(DCL) 35

技巧21 理解SQL的数值整数数据类型 37

技巧22 理解SQL的浮点数值数据类型 38

技巧23 理解SQL的字符型数据类型 41

技巧24 理解使用VARCHAR数据类型的好处 43

技巧25 理解LONG(Oracle)或TEXT(MS-SQL Server)数据类型 44

技巧26 理解MS-SQL Server的IMAGE数据类型 45

技巧27 理解标准SQL的日期时间数据类型和DATEEIME数据类型 45

技巧28 理解SQL的BIT数据类型 48

技巧29 理解常数 49

技巧30 理解NULL值 50

技巧31 理解MS-SQL Selver的ISNULL()函数 51

技巧32 理解MS-SQL Server的DENTITY属性 52

技巧33 理解断言(Assertions) 54

技巧34 理解SQL DBMS的客户/服务器模型 54

技巧35 理解SQL语句的结构 56

技巧36 理解DBMS如何执行SQL语句 58

技巧37 理解SQL的关键字 59

技巧38 使用MS-SQL Server Query Analyzer执行SQL语句 60

技巧39 使用MS-SQL Server ISQL在命令行上执行SQL语句或是执行存储在ASCH文件中的语句 63

技巧40 在ISQL内使用ED命令编辑SQL语句 65

技巧41 使用CREATE DATABASE语句创建MS-SQL Server数据库和事务处理日志 66

技巧42 使用MS-SQL Server Enterprise Manager创建数据库和事务处理日志 69

技巧43 使用DROP DATABASE删除MS-SQL Server数据库和事务处理日志 71

技巧44 理解如何确定MS-SQL Server数据库及其事务处理日志的容量 71

技巧45 理解MS-SQL Server的TempDB数据库 74

第2章 使用SQL数据定义语言(DDL) 创建数据表和其他数据库对象 76

技巧46 使用CREATE TABLE语句创建表 76

技巧47 使用MS-SQL Server Enterprise Manager创建表 78

技巧48 创建MS-SQL Server的临时表 80

技巧49 使用Transact-SQL的CREATEDEFAULT语句设置列的默认值 81

技巧50 使用MS-SQL Server的存储过程sp/bindefault将用户创建的默认值绑定到表列上 83

技巧51 在CREATE TABLE语句中使用DEFAULT子句设置默认列值 83

技巧52 使用MS-SQL Server Enterprise Manager为用户定义的数据类型或表列创建默认值 85

技巧53 使用MS-SQL Server Enterprise Manager创建用户定义的数据类型 86

技巧54 使用MS-SQL Server Enterprise Manager将默认值绑定到数据类型或列表 88

技巧55 使用丁伽sact-SQL的DROP DEFAULT语句从数据库中删除默认值 91

技巧56 理解ALTER TABLE语句 92

技巧57 使用ALTER TABLE语句向表中添加列 94

技巧58 使用MS-SQe Server的ALTER TABLE、DROP COLUMN字句删除表列 95

技巧59 使用从ALER TABLE语句改变列的宽度或数据类型 96

技巧60 使用从TLTER TABLE语句改变主键和外键 97

技巧61 使用CREATE TABLE语句指定主键 99

技巧62 使用CREATE TABLE语句指定外键约束 101

技巧63 使用DROP TABLE语句从数据库中删除表 104

技巧64 使用DROP VIEW语句删除视图 104

技巧65 使用MS-SQL Server Enterprise Manager Create View Wizard创建视图 105

技巧66 理解DROP VIEW语句中的CASCADE和RESTRICT子句 108

第3章 使用SQL的数据操作语言(DML) 在SQL表内插入并操作数据 110

技巧67 使用INSERT语句向表中添加行 110

技巧68 使用INSERT语句通过视图插入行 111

技巧69 使用MS-SQL Server Enterise Manager定义或改变主控约束 113

技巧70 使用INSERT语句向行的特定列中添加数据 114

技巧71 使用SELECT语句将一个表中的行插入另一录 116

技巧72 将MS-SQL Server的SELECT/BULKCOPY数据库选项设置为TRUE以便加速从表到表的数据转移 120

技巧73 使用UPDATE语句改变列值 121

技巧74 使用带条件子句的UPDAlE语句同时改变多行中的值 122

技巧75 在UPDATE语句中使用于查询同时改变多行中的值 123

技巧76 使用UPDATE语句改变根据计算值选定行中的列值 124

技巧77 使用UPDATE语句根据另一表中的值改变表的值 125

技巧78 使用UPDATE语句通过视图改变表数据 126

技巧79 使用DELETE语句从表中删除行 127

技巧80 使用带条件子句的DELETE语句从表中删除多行 129

技巧81 使用带子查询的DELETE语句从表中删除多行 130

技巧82 使用TRUNCATE语句从MS-SQL Server表中删除所月汀 131

技巧83 使用DELETE语句根据计算值删除表行 131

技巧84 使用DELETE语句通过视图删除表行 132

第4章 处理查询、表达式和总计函数 134

技巧85 理解从SELECT语句中所期待的结果 134

技巧86 理解SELECT语句的结构 135

技巧87 理解处理SQL的SELECT语句所涉及的步骤 137

技巧88 使用SELECT语句从一个或多个表的行中显示列 141

技巧89 使用SELECT语句显示列及计算值 143

技巧90 使用SELECT语句显示所有的列值 144

技巧91 使用带WHERE子句的SELECT语句根据列值选择行 145

技巧92 使用带WHERE子句的SELECT语句根据计算值选择行 146

技巧93 使用带比较判式的SELECT语句选择有特定列或计算值的行 147

技巧94 在WHERE子句中使用布尔运算符OR、AND和NOT 148

技巧95 使用ORDER BY子句指定由SELECT语句返回行的顺序 150

技巧96 在WHERE子句中使用复合条件(AND、OR和NOT)根据多个列值(或计算值)选择行 152

技巧97 理解使用比较判式选择行时的NULL值 154

技巧98 使用行值表达式根据多个列值选择表中的行 154

技巧99 理解子查询 155

技巧100 使用行值子查询根据多个列值选择表中的行 156

技巧101 理解表达式 158

技巧102 理解数值表达式 159

技巧103 理解字符串值表达式 159

技巧104 理解日期时间值表达式 160

技巧105 理解SQL的判式 161

技巧106 理解SQL的逻辑连接符AND、OR和NOT 161

技巧107 理解集合(或列)函数 163

技巧108 理解CASE表达式 164

技巧109 使用CASE表达式更新列值 167

技巧110 使用CASE表达式避免错误条件 168

技巧111 理解NULLIF表达式 169

技巧112 使用COALESCE表达式代替NULL值 169

技巧113 使用COUNT(*)总计函数对表中的行数计数 170

技巧114 使用COUNT(*)总计函数对列中的数据值数计数 171

技巧115 使用COUNT(*)总计函数对列中的惟一和重复值计数 172

技巧116 使用MS-SQL Server的CUBE和ROLLUP运算符总计表的数据 174

技巧117 使用MAX()总计函数找出列中的最大值 176

技巧118 使用MIN()总计函数找出列中的最小值 177

技巧119 使用SUM()总计函数计算列值的总和 177

技巧120 使用AVG()总计函数计算列中值的平均值 178

技巧121 使用带AVG()函数的WHERE子句确定表中所选行的平均值 179

技巧122 理解SELECT语句中的总计函数如何产生单表结果 179

技巧123 理解带NULL值的列对集合函数的影响 180

技巧124 使用AND逻辑连接符对表行进行多条件选择 182

技巧125 使用NOT逻辑连接符对WHERE子句中的搜索条件求反 183

技巧126 使用OR逻辑连接符对表行进行多条件选择 184

第5章 理解SQL的事务处理和事务处理日志 186

技巧127 理解SQL的事务处理过程 186

技巧128 理解ANSI/ISO的事务处理模型 187

技巧129 理解何时使用COMMIT语句 188

技巧130 使用ROLLBACK语句取消对数据库对象所做的改变 190

技巧131 理解MS-SQL Server的事务处理模型 192

技巧132 在MS-SQL Server上使用命名的和嵌套的事务处理 194

技巧133 理解事务处理日志 196

第6章 使用数据控制语言(DCL)建立数据库安全性 198

技巧134 理解为什么及如何限制对各种数据库对象的访问 198

技巧135 理解单独的用户身份和认证 199

技巧136 理解MS-SQL Server标准和Windows NT的综合安全性 201

技巧137 使用MSSQL Server Enterprise Manager添加登录和用户 202

技巧138 使用MS-SQL Server Enterprise Manager删除登录和用户 205

技巧139 理解MS-SQL Server的安全角色和组用户安全性 206

技巧140 理解MS-SQL Server的权限 208

技巧14l 理解SQL的安全对象和权限 209

技巧142 使用MS-SQL Server Enterprise Manager创建数据库角色 210

技巧143 使用MS-SQL Server Enterpnse Manager指定数据库角色权限 212

技巧144 理解拥有权权限和GRanT语句 213

技巧145 使用GRANT语句的WITH GRANT OPTION允许用户给予其他用户以数据库对象访问权 214

技巧146 理解REVOKE语句 215

技巧147 使用带CASCADE选项的REVOKE语句删除权限 216

技巧148 使用REVOKE语句的GRANT OPTION FOR子句删除GRANT权限 217

技巧149 使用GRANT SElLECT(以及REVOKE SELECT)语句控制对数据库对象的访问 218

技巧150 理解MS-SQL Server对SELECT权限的列清单扩展 220

技巧15l 使用GRANT INSERT(以及REVOKE INSERT)语句控制对数据库对象的访问 221

技巧152 使用GRANT UPDATE(以及REVOKE UPDATE)语句控制对数据库对象的访问 222

技巧t53 使用GRANT REFERENCES(以及REVOKE REFERENCES)语句控制对数据库对象的访问 224

技巧154 使用GRANT DELETE(以及REVOKE DELETE)语句控制对数据库对象的访问 226

技巧155 使用GRANT ALL(以及REVOKE ALL)语句授予(GRANT)或撤消(REVOKE)对数据库对象的权限 228

技巧156 使用视图将INSERT权限限制为只对表中的特定列 230

技巧t57 使用视图将SELECT权限限制为只对表中的特定列 231

技巧158 使用视图扩展SQL安全性权限 232

第7章 创建索引加快数据引用 234

技巧159 理解索引 234

技巧160 理解MS-SQL Server如何选择用于查询的索引 236

技巧161 使用CREATE INDEX语句创建索引 237

技巧162 理解MS-SQL Server的CREATE INDEX语句选项 238

技巧163 使用MS-SQL Server Enterpeise Manager创建索引 241

技巧164 使用DROP INDEX语句删除索引 243

技巧165 理解MS-SQL Server的集群索引 243

技巧166 使用MS-SQL Server Index Tuning Wizard(索引调节向导)优化数据库索引 244

第8章 使用键字和约束保持数据库的一致姓 251

技巧167 理解数据库键字的重要性 251

技巧168 理解单列和复合键字 251

技巧169 理解MS-SQL Server的规则 253

技巧170 使用CREATEDOMAIN语句创建域 254

技巧171 理解主键 255

技巧172 使用PRIMARY列约束惟一地确定表行 257

技巧173 理解外键 258

技巧174 理解引用完整性检查和外键 260

技巧175 理解引用数据完整性检查为什么会危害安全性 262

技巧176 理解引用完整性检查如何限制删除行和表的能力 263

技巧177 理解引用完整性检查的INSERT死锁及解决办法 264

技巧178 理解和保持实体完整性 266

技巧179 理解NULL值与惟一性的相互作用 267

技巧180 理解并保持域的完整性 268

技巧181 理解和保持引用完整性 269

技巧182 理解如何应用RESTRICT规则更新和删除以帮助保持引用完整性 270

技巧183 理解如何应用CASCADE规则更新和删除以帮助保持引用完整性 271

技巧184 理解如何应用SET NULL规则更新和删除以帮助保持引用完整性 272

技巧185 理解如何应用SET DEFAULT规则更新和删除以帮助保持引用完整性 272

技巧186 理解级联删除规则的危险本质 273

技巧187 使用Enerprise Manager在已有表间添加FOREIGN关系 275

技巧188 使用MATCH FULL子句保持引用完整性 278

技巧189 理解MATCH FULL、MATCH PARTLAL和MATCH SIMPLE子句 279

技巧190 理解SET NULL规则与MATCH子句的相互作用 280

技巧191 使用NOT NULL列约束防止列中的NULL值 282

技巧192 使用UNIQUE列约束防止列中的重复值 283

技巧193 使用CHECK约束确认列值 284

技巧194 使用MS-SQL Server Enterprise Manager将规则与数据类型或列绑定在一起 285

技巧195 使用Transact-SQL的CREATERULE语句创建MS-SQL Server规则 288

技巧196 使用MS-SQL Server Enterprise Manager的Rule Properties屏幕改变规则 289

技巧197 使用Transact-SQL的DROPRULE语句永久地从数据库中删除规则 290

技巧198 使用MS-SQL Server Enterprise Manager列出并编辑视区 291

技巧199 使用CREATE ASSERTlON语句创建多表约束 292

技巧200 理解数据库的正规化 293

技巧201 理解第一种正规形式(INF) 295

技巧202 理解第二种正规形式(2NF) 296

技巧203 理解第3种正规形式(3NF) 297

技巧204 解除数据库的正规化以改善性能 298

第9章 执行多表查询并创建SQL视图 300

技巧205 使用带FROM子句的SELECT语句进行多表查询 300

技巧206 使用视图显示一个或多个表或视图中的列 301

技巧207 使用视图显示一个或多个表的特定行中的列 302

技巧208 理解DBMS如何处理视图 303

技巧209 使用视图显示表达式的结果 304

技巧210 使用UPDATE语句通过视图改变多个表中的数据 305

技巧211 在CREATE VIEW语句中使用CHECK OPTION于句将视图约束应用于INSERT和UPDATE语句 306

技巧212 使用视图只允许用户看到表中的某些行 307

技巧213 使用视图只允许用户看到表中的某些列 308

技巧214 在CREATE VIEW语句中使用GROUP BY子句创建显示总结数据的视图 309

技巧215 使用CREATE VIEW语句显示组合两个或多个表的结果 310

技巧216 使用UNION运算符选择出现在任一或全部的两个或多个表中的所有行 310

技巧217 使用UNION ALL运算符选择出现在任一或全部的两个或多个表中的所有行(包括重复的行) 312

技巧218 使用UNION CORRESPONDING运算符组合来自两个或多个与UNlON不兼容的表中的行 313

技巧219 使用UNlON运算符组合两条查询的结果 314

技巧220 使用ORDER BY子句对UNION运算符的结果排序 315

技巧221 使用UNION运算符组合3个或3个以上的表 316

技巧222 理解MS-SQL Server的事务处理日志放于何处才能改善性能 317

技巧223 理解多列的UNIQUE约束 318

第10章 使用函数、参数和数据类型 320

技巧224 理解实际值 320

技巧225 理解变量 320

技巧226 理解参数 322

技巧227 理解用户/会话和日期/时间函数与变量 323

技巧228 理解列引用 324

技巧229 使用SUBSTRING函数提取部分字符串 325

技巧230 使用UPPER函数将字符串中的所有字符转化为大写 326

技巧231 使用DISTlNCT于句消除行集中的重复 327

技巧232 使用LOWER函数将字符串中的所有字符转化为小写 328

技巧233 使用TRIM函数删除前导和结尾的空格 329

技巧234 使用Transact-SQL的STUFF函数将字符串插入另一字符串 330

技巧235 使用Transact-SQL的串接运算符"+"在另一字符串尾部添加字符串 331

技巧236 理解Transact-SQL的CONVERT函数 331

技巧237 理解UNION、INTERSECT和EXCEPT运算符 334

技巧238 使用INTERSECT运算符选择出现在所有两个或多个源表中的行 335

技巧239 使用EXCEPT运算符选择出现在一个表而不出现在另一表中的行 336

技巧240 使用POSITION函数返回字母或子字符串在字符串中的位置 337

技巧241 使用CHAR_LENGTH函数返回字符串变量的长度 338

技巧242 使用OCTET_LENGTH函数决定用于保存字符串变量或实际值所需的字节数 339

技巧243 使用BIT_LENGlH函数决定用于保存字符串变量或实际值所需的位数 340

技巧244 使用EXTRACT函数从DATETIM值中提取单个域 340

技巧245 使用CURRENT_TIME函数读取当前系统时间 341

技巧246 使用CURRENT_DATE函数读取当前系统日期 342

技巧247 使用CURRENT_TIMESTAMP函数读取当前系统日期和时间 342

技巧248 理解MS-SQL Server的日期和时间函数 343

技巧249 使用CAST函数将值从一种数据类型转化为另一种 345

技巧250 使用CASE表达式根据列的值选择实际值 346

技巧251 在搜索的CASE表达式中使用子查询 347

技巧252 使用NULLF函数将列值设置为NULL 348

技巧253 使用CAST函数比较不同数据类型列中的值 349

技巧254 使用CAST函数从SQL向宿主语言中传递值 350

技巧255 理解在Select语句中如何使用修饰于句 351

第11章 使用比较判式和组台查询 353

技巧256 理解比较判式 353

技巧257 在WHERE子句中使用BETWEEN关键词选择行 354

技巧258 在WHERE子句中使用IN或NOTIN判式选择行 355

技巧259 在LIKE判式中使用通配符 356

技巧260 在LIKE判式中使用转义字符 356

技巧261 使用LIKE和NOTLIKE比较两个字符串 357

技巧262 理解MS-SQL Server对LIKE判中的通配符的扩展 358

技巧263 使用NULL判式找出所选列中有NULL值的所有行 358

技巧264 理解WHERE子句中的ALL限定符 359

技巧265 理解WHERE子句中的SOME和ANY限定符 360

技巧266 理解UNIQUE判式 361

技巧267 使用OVERLAPS判式决定一个DATEIME是否与另一个重叠 362

技巧268 理解GROUP BY子句和组合查询 363

技巧269 理解对组合查询的限制 364

技巧270 使用GROUP BY子句根据单一列值组合行 365

技巧271 使用GROUP BY子句根据多列组合行 366

技巧272 使用ORDER BY子句改变由GROUP BY子句返回的组中的行序 367

技巧273 使用MS-SQL Transact-SQL的COMPUTE子句在同一结果表中显示明细及汇总行 368

技巧274 使用MS-SQL Transact-SQL的COMPUTE和COMPUTEBY子句显示多级分类汇总 369

技巧275 理解GROUP BY子句如何看待NULL值 371

技巧276 使用HAVING子句筛选包括在组合查询结果表中的行 372

技巧277 理解WHERE子句和HAVING子句之间的差别 373

技巧278 理解在组合查询中使用HAVING于句的SQL规则 374

技巧279 理解SQL如何处理HAVING子句的NULL结果值 374

第12章 使用SQL的联合语句和其他多表查询 377

技巧280 使用来自多个MS-SQL Server数据库中的表 377

技巧281 理解笛卡尔积 378

技巧282 使用FROM子句执行多表查询 379

技巧283 理解联合和多表查询 380

技巧284 使用WHERE子句联合与单列PRIMARY/FOREIGN KEY对相关的两个表 381

技巧285 使用WHERE子句联合与复合的PRIMARY KEY/FOREIGN KEY对相关的两个表 382

技巧286 使用WHERE子句根据父/子关系联合3个或多个表 383

技巧287 使用WHERE子句根据非键字列联合表 384

技巧288 理解非等价联合 386

技巧289 在有一个或多个相同列名的联合的多个表中多表查询中使用合格的列名 387

技巧290 使用带INTERSECT运算符的ALL关键词在查询结果表中包括重复的行 388

技巧291 在对非UNlON兼容表的INTERSECT查询中使用CORRESPONDING关键词 389

技巧292 使用没有WHERE子句的多表联合生成笛卡尔积 390

技巧293 使用别名(关联名)作为表名的简写 392

技巧294 理解一对多和多对一的联合 393

技巧295 理解多对多的联合 394

技巧296 理解NATURAL JoIN 396

技巧297 理解条件联合 397

技巧298 使用CROSS JOIN创建笛卡尔积 398

技巧299 理解列名联合 399

技巧300 使用INNER JOIN选择一个表中与另一表中的行相关的所有行 400

技巧301 理解USING子句在INNER JOIN中的作用 401

技巧302 理解OUTER JOIN 401

技巧303 理解LEFT OUTER JOIN 403

技巧304 理解RIGHT OUTER JOIN 405

技巧305 理解FULL OUTER JOIN 406

技巧306 理解MS-SQL Server的OUTER JOIN记号 407

技巧307 在单一查询中联合两个以上的表 408

技巧308 理解非相等的INNER和OUTER JOIN语句 409

技巧309 理解UNION JOIN 410

技巧310 使用COALESCE表达式改善UNION JOIN的结果 411

技巧311 理解取FROM子句在JOIN语句中的作用 412

技巧312 在多表JOIN中使用"*"运算符指明所有或只是某些表中的所有列 413

技巧313 在单表JOIN(即自我JOIN)中使用表别名 414

技巧314 理解表的别名 416

技巧315 理解ANY的模糊本质以及SQL如何使其表示SOME 418

技巧316 使用EXISTS而不使用COUNT(*)检查子查询是否至少返回一行 419

技巧317 理解为什么表达式NULL=NULL求值为FALSE 420

技巧318 理解何时使用ON子句以及何时使用WHERE子句 421

技巧319 理解如何使用嵌套的查询同时处理多个表 422

第13章 理解SQL子查询 424

技巧320 理解返回行集的嵌套查询 424

技巧321 理解于查询 425

技巧322 理解在子查询中引用时的主查询列的值 426

技巧323 理解子查询的比较测试 427

技巧324 在于查询中使用EXISTS判式来决定行中是否有满足搜索标准的列值 428

技巧325 理解子查询与联合之间的关系 429

技巧326 在于查询中使用关键词IN根据保存在另一表列中的值来选择行 430

技巧327 使用关键词IN引入子查询 431

技巧328 使用关键词NOT IN引入子查询 432

技巧329 使用ALL引入返回多个值的子查询 433

技巧330 使用SOME或ANY引入返回多个位的子查询 434

技巧331 在于查询中使用总计函数返回单值 435

技巧332 理解嵌套的于查询 436

技巧333 理解WHERE子句中子查询的作用 437

技巧334 使用嵌套查询返回TRUE或FALSE值 438

技巧335 理解关联子查询 439

技巧336 理解HAVING子句中子查询的作用 441

技巧337 理解JOIN语句中关联的和非关联的子查询的执行顺序 442

技巧338 使用关键词IN引入关联子查询来确定有特定值的表列的存在性 443

技巧339 理解用比较运算符引入的关联子查询 444

技巧340 将关联子查询用作HAVING子句中的过滤器 445

技巧341 使用关联子查询为UPDATE语句选择行 446

第14章 理解事务处理隔离级别和并发处理 448

技巧342 理解级联删除和更新的必要性 448

技巧343 使用带关联子查询的INSERT语句创建快照表 449

技巧344 理解数据库管理员(DBA)的作用 450

技巧345 理解数据库对象拥有者(DBOO)的作用 451

技巧346 GRJLb盯语句授予某人以DELETE权限 452

技巧347 理解对用作约束的域授予USAGE权限的安全性含义 453

技巧348 理解(CASCADE和非CASCADE)取消GRANT权限的效果 454

技巧349 理解如何一起使用GRANT和服VOKE语句以便在授予权限时节省时间 455

技巧350 理解并发事务处理问题和隔离级别 456

技巧351 理解READ UNCOMMTTED和作废读取 457

技巧352 理解READ COMMTTED和不可重复读取 458

技巧353 理解REPEATABLE READ和幻影插入 459

技巧354 理解表级、页级和行级锁定 459

技巧355 理解MS-SQL Server的锁定扩大 460

技巧356 理解死锁以及DBMS如何解决死锁 461

技巧357 理解SERIALIZABLE隔离级别 462

技巧358 理解REPEATABLEREAD隔离级别 463

技巧359 理解READ COMMITTED隔离级别 464

技巧360 理解READ UNCOMMTTED隔离级别 464

技巧361 使用MS-SQL Server Enterprise Manager显示阻塞和被阻塞的会话 465

技巧362 使用MS-SQL Server Enterprise Manager"杀死"对数据库对象保持锁定的进程 467

技巧363 理解MS-SQL Server与Orack上的锁定和事务处理隔离 468

技巧364 使用SET TRANSACTION语句设置事务处理的隔离级别 469

技巧365 使用COMMIT语句使数据库更新成为永久的 471

技巧366 理解何时约束是可延缓的以及何时不是 472

技巧367 使用SET CONSTRAINTS语句在提交事务处理之前延缓DEFERRABLE约束 473

第15章 编写外部应用程序来查询与操作数据库数据 475

技巧368 为开放数据库互连(ODBC)连接创建数据源名称(DSN) 475

技巧369 向Visual Basic(VB)窗体中添加数据控件组件以便提取SQL表数据 478

技巧370 向Visual Basic(VB)窗体中添加MSFLexGrid控件以显示SQL表数据 480

技巧371 向Visual Basic(VB)窗体中添加Text和Button控件创建向SQL Server发送查询的应用程序 481

技巧372 创建用于与SQL Server通讯的简单C++外壳程序 484

技巧373 使用SQL AllocEnv和SQLFreeEnv分配及释放ODBC环境资源 486

技巧374 使用SQLAllocConnect和SQLFreeConnect分配和释放连接句柄和内存资源 487

技巧375 使用SQLSetConnectOption为与SQL Server的ODBC连接设置会话选项 489

技巧376 使用SQLConnect和SQLDisconnect建立和结束DBMS会话 490

技巧377 使用SQLAllocEnv和SQLFreeEnv分配及释放SQL语句句柄和内存资源 492

技巧378 使用SQLExcDirect向DBMS发送用于执行的SQL语句 493

技巧379 使用SQLFetch函数从SQL数据库中提取数据行 494

技巧380 使用SQLExtendedFetch函数创建可更新的游标(Cursor) 496

技巧381 理解行式和列式绑定之间的差别 498

技巧382 使用SQLSetConnectOption函数选择在执行SQL语句时使用的数据库 500

技巧383 使用SQLSetPos函数设置行集中的游标位置 501

技巧384 使用SQLSetPos函数的SQL_UPDATE选项执行位更新 501

技巧385 使用SQLSetPos函数的SQL_DELETE选项执行定位删除 502

技巧386 当ODBC驱动程序不支持定位删除时使用SQLExecDirect函数删除数据库中的行 503

技巧387 在ODBC驱动程序不支持定位更新时使用SQLExecDirect函数更新数据库中的列值 504

技巧388 使用SQLError函数提取并显示ODBC错误代码和错误消息 506

技巧389 在宿主程序变量中处理NULL值 507

技巧390 理解客户/服务器环境中A门的作用 508

技巧391 向Visual Basic(VB)中添加nB函数库(DBLIB)功能 509

技巧392 在不显示窗体的情况下启动Visual Basic(VB)程序 511

技巧393 使用SqlInit()函数初始化DB函数库以及使用SqlWinExit例程释放由Sqllnit()分配的内存 512

技巧394 使用SqlOpenConnection()函数登录MS-SQL Server 513

技巧395 使用SqlClose()例程关闭单个MS-SQL Server连接或者调用SqlExit关闭所有打开的连接 514

技巧396 使用SqlSendCmd函数向MS-SQL Server发送用于执行的SQL语句 515

技巧397 使用SqlNumCols()决定由查询生成的结果集中的列数 515

技巧398 使用SqlColName()函数提取由查询生成的结果集中的列名 516

技巧399 使用SqlData()函数从游标中将查询结果提取到应用程序中 517

技巧400 使用SqlNextRow()函数在游标行中向前移动 518

技巧401 使用SqlCmd()函数建立SQL语句批处理 519

技巧402 使用SqlExec()函数将SQL语句批处理提交给MS-SQL Server执行 520

技巧403 使用SglResults()函数提取SqlExec()发送的查询结果集 521

技巧404 使用SqlSeMd()提交语句批处理而不必等待DBMS完成所有语句的执行 522

技巧405 使用SqlDataReady()函数确定MS-SQL Server是否完成了SQL语句批处理 523

技巧406 用SqlCancel()终止发送到MS-SQL Server的语句批处理并清除批结果缓冲区 524

技巧407 用SqlCanQuery()函数在当前结果集中删除剩余(未被处理的)行 525

技巧408 用SqlUse()函数为MS-SQL Server连接设置当前数据库 526

技巧409 用Vbsq11-Error()例程显示DBLIB生成的错误消息 527

技巧410 用Vbsqll_Message()例程显示MS-SQL Server生成的错误消息 528

技巧411 用SqlColType()函数确定列的数据类型 529

技巧412 用SqlDatLen()函数确定储存在DBUB缓冲区列中的数据的字节数 530

技巧413 在Visual Basic应用程序中给宿主变量指定NULL值 531

技巧414 用SqlSetOpt()设置行缓冲区的大小以使用SqlGetRow()随机提取行 532

技巧415 理解缓冲区与游标之间的区别 533

技巧416 用SqlGetRow()函数在DBLIB查询结果缓冲区中选择当前行 534

技巧417 用SqlClrBuff()函数在DBLIB查询结果缓冲区中为附加行腾出空间 535

技巧418 理解MS-SQL Server的SELECT语句中的FOR BROWSE子句 536

技巧419 理解DBLIB为什么不支持定位UPDATE和DELETE语句 537

技巧420 理解DBLIB浏览模式的函数 537

技巧421 为执行浏览模式的UPDATE或DELETE语句准备DBLIB 538

技巧422 用SqlQual()函数为DBLIB浏览模式的UPDATE或DELETE语句生成WHERE子句 539

技巧423 执行DBLIB浏览模式的DELETE语句 540

技巧424 执行DBLIB浏览模式的UPDATE语句 541

技巧425 用DBLIB API执行动态SQL查询 542

第16章 通过游标提取和维护数据 544

技巧426 理解游标的目的 544

技巧427 用DECLARE CURSOR语句定义游标 545

技巧428 用OPEN语句创建游标 546

技巧429 用ORDER BY子句改变游标中行的顺序 546

技巧430 在游标中包含计算好的值作为列 547

技巧431 用FOR UPDATE子句指定游标可修改底层表的哪些列 547

技巧432 用FETCH语句从游标中的行提取列值 548

技巧433 把游标的当前行指针预先定向到从当前行获取列值 549

技巧434 理解基于游标的定位DELETE语句 550

技巧435 理解基于游标的定位UPDATE语句 551

技巧436 用索引改变游标中行的顺序 552

技巧437 使用@@FETCH_STATUS利用WHILE循环处理游标中的行 552

技巧438 理解如何设置游标对底层表中的改变的敏感度 553

技巧439 用CLOSE语句关闭游标 554

技巧440 用DEALLOCATE语句删除游标并释放其服务器资源 555

技巧441 理解DECLARE CURSOR语句的Transact-SQL扩展句法 555

技巧442 理解异步KEYSET游标填充 557

数巧443 用⑥@CURSOR-ROWS系统变量确定游标中的行数 557

第17章 理解触发器 559

技巧444 理解何时用CHECK约束代替触发器 559

技巧445 理解嵌套游标 559

技巧446 用⑥⑥ERROR函数确定最后执行的Transact-SQL语句的错误状态 562

技巧447 理解当前日期和时间的值是在语句开始执行时设置的 562

技巧448 理解触发器 563

技巧449 用CREATE TRIGGER语句创建触发器 564

技巧450 理解INSERT触发器 566

技巧451 理解DELETE触发器 567

技巧452 理解层叠触发器 568

技巧453 理解UPDATE触发器 569

技巧454 用UPDATE触发器改变PRIMARY KEY/FOREIGN KEY对的值 571

技巧455 用触发器增强引用完整性 572

技巧456 用触发器发送E-mail消息 573

技巧457 理解嵌套触发器 574

技巧458 用MS-SQL Server Enterprise manager显示或修改触发器 575

技巧459 用DROP TRIGGER语句删除触发器 577

技巧460 用ALTER VIEW语句修改视图 577

技巧461 用ALTER TABLE语句改变列的数据类型 578

第18章 处理BIobs数据和文本 580

技巧462 理解由二进制和字符大对象(BLOB)的处理带来的挑战 580

技巧463 理解MS-SQL Server的BLOB(TEXT、NTEXT和MAGE)数据处理过程 581

技巧464 用INSERT或UPDATE语句把数据放到BLOB数据类型的列中 582

技巧465 用Transact-SQL WRITEETXT语句把数据放到TEXT、NTEXT或IMAGE列中 583

技巧466 用Transact-SQL UPDATETEXT语句改变TEXT、NTEXT或IMAGE列的内容 584

技巧467 用READTEXT()函数读取TEXT、NTEXT或IAGE列中的部分(或全部)数据 585

技巧468 用MS-SQL Server的TEXTVALID()函数确定文本指针是否有效 586

技巧469 用PATINDEX()函数返回BLOB中第一次出现的地址 586

技巧470 用DATALENGTH()函数返回BLOB中的字节数 587

技巧471 理解TEXTSIZE选项和⑥⑥TEXTSIZE()函数 588

第19章 使用MS-SQL Server信息架构视图 589

技巧472 理解信息架构 589

技巧473 理解信息架构的CHECK_CONSTRAINTS视图 589

技巧474 理解信息架构的COLUMN_DOMAIN_USAGE视图 590

技巧475 理解信息架构的COLUMN_PRIVILEGES视图 591

技巧476 理解信息架构的COLUMNS视图 591

技巧477 理解信息架构的CONSTRAINT_COLUMN_USAGE视图 593

技巧478 理解信息架构的CONSTRINT_TABLE_USAGE视图 594

技巧479 理解信息架构的DOMAIN_CONSTRAINTS视图 595

技巧480 理解信息架构的DOMAINS视图 596

技巧481 理解信息架构的KEY_COLUMN_USAGE视图 597

技巧482 理解信息架构的PARAMETERS视图 597

技巧483 理解信息架构的REFERENTIAL_CONSTRAINTS视图 599

技巧484 理解信息架构的ROUTNES视图 600

技巧485 理解信息架构的SCHEMATA视图 603

技巧486 理解信息架构的TABLE_CONSTRAINTS视图 603

技巧487 理解信息架构的TABLE_PRIVILEGES视图 604

技巧488 理解信息架构的TABLES视图 605

技巧489 理解信息架构的VIEW_COLUMN_USAGE视图 606

技巧490 理解信息架构的VIEW_TABLE_USAGE视图 606

技巧491 理解信息架构的ROUTINE_COLUMNS视图 607

技巧492 理解信息架构的VIEWS视图 608

技巧493 用MS-SQL Server Enterprise Manager查看信息架构视图的内容 609

技巧494 理解MS-SQL Server系统数据库表 611

技巧495 定义数据库的物理位置 612

技巧496 向已有数据库添加文件和文件组 614

技巧497 用MS-SQL Server Enterprise Manager向已有数据库添加文件和文件组 615

技巧498 理解使用单或多数据库结构的优点与缺点 616

技巧499 通过创建联接表视图简化多表查询 618

技巧500 理解CREATE VIEW语句中的WITH SCHEMABING子句 619

第20章 监测及提高MS-SQLServer的性能 621

技巧501 理解多处理器Windows NT系统上的MS-SQLServer多任务与多线程 621

技巧502 用MS-SQL Server的PRIORTY BOOST配置选项把服务器线程的优先权从7增加到13 622

技巧503 理解NT Server的性能监视器图表视图 623

技巧504 理解NT Server性能监视器的报告视图 625

技巧505 理解NT Server性能监视器的警报视图 626

技巧506 用CREATE SCHEMA语句创建表并授予对此表的访问权限 628

技巧507 建立NT Server性能监视器日志以帮助优化MS-SQL Server 629

技巧508 用NT性能监视器查看性能日志文件 631

技巧509 配置WindowsNT的应用程序事件日志 632

技巧510 显示Windows NT应用程序事件详情并清除应用程序事件日志 633

技巧511 用MS-SQL Server服务管理器启动MS-SQL Server 635

技巧512 从命令提示符启动MS-SQL Server 636

技巧513 用Windows控制面板使MS-SQL Server自动启动 636

技巧514 理解MS-SQL Server的客户软件 638

技巧515 安装MS-SQL Server客户软件 639

技巧516 理解MS-SQL Server系统目录 640

技巧517 理解SQL Server备份 643

技巧518 创建MS-SQL Server备份(转储)设备 644

技巧519 执行MS-SQL Server数据库的手工备份 646

技巧520 安排MS-SQL Server自动备份的时间 649

技巧521 理解如何恢复MS-SQL Server数据库 651

技巧522 理解MS-SQL Server优化器提示 657

技巧523 用MS-SQL Server的SHOWPLAN_TEXT选项显示语句的执行计划 658

技巧524 理解显示语句执行计划和状态的MS-SQL Server SHOWPLAN_ALL选项 660

技巧525 使用MS-SQL Server SQL Query Analyzer的SHOWPLAN选项 661

技巧526 理解MS-SQL Server 2000的硬件和操作系统需求 663

技巧527 安装MS-SQL Server 664

技巧528 用MS-SQL Server SETUSER语句测试用户对数据库对象的访问权限 670

技巧529 理解MS-SQL Server的MODEL数据库 670

第21章 使用存储过程 672

技巧530 理解存储过程 672

技巧531 使用CREATE PROCEDURE语句创建存储过程 674

技巧532 用EXECUTE语句调用存储过程 675

技巧533 理解如何在存储过程中声明变量 676

技巧534 使用存储过程参数返回值 677

技巧535 用关键词RETURN从存储函数中返回一个值 679

技巧536 在存储过程中使用游标 682

技巧537 使用CREATE FUNCTION语句创建存储函数 684

技巧538 使用MS-SQL Server Enterprise Manager查看或修改存储过程或函数 688

技巧539 使用Transact-SQL关键词DECLARE和SELECT在存储过程中定义变量并为其赋初始值 689

技巧540 使用DROP语句从数据库中删除存储过程或用户定义的函数 691

第22章 修理及维护MS-SQL Server数据库文件 693

技巧541 理解MS-SQL Server的Database Consistency Checker (DBCC,数据库一致检查器) 693

技巧542 理解DBCC的维护语句 694

技巧543 理解DBCC的杂项语句 698

技巧544 理解DBCC状态语句 700

技巧545 理解DBCC确认语句 705

第23章 编写高级查询及子查询 711

技巧546 理解对用作比较运算符判式的子查询的限制 711

技巧547 使用视图允许子查询中的工作表自我联合 712

技巧548 使用临时表删除重复数据 713

技巧549 使用临时表从多表中删除行 715

技巧550 使用UPDATE语句根据另一个表中的值设置表中的值 716

技巧551 优化EXISTS判式 718

技巧552 使用ALL判式把两个查询合二为一 720

技巧553 用EXISTS判式检查表中的重复行 721

技巧554 把表内容和函数结果合并 722

技巧555 使用视图显示汇总级别的层次 723

技巧556 理解MS-SQL Server的TOP n运算符 724

技巧557 在没有TOP n运算符的DBMS内构建Top n 或Botton n查询 726

技巧558 使用带标量子查询的SELECT语句显示流水总计 728

技巧559 使用EXCEPT判式确定两表差异 729

技巧560 使用EXISTS判式生成两表的交集 730

第24章 探索MS-SQL-Server的内建存储过程 731

技巧561 使用sp_detach_db和sp_attach_db在Ms-sQL server上删除和添加数据库 731

技巧562 使用Ms-sQL server的存储过程sp-addtype和sp_droptype添加和删除用户定义的数据类型 732

技巧563 使用sp-help显示数据库对象属性 734

技巧564 使用sp-helptext显示定义存储过程、用户定义函数、触发器、默认值、规则或者视图的文本 735

技巧565 用sp-depends显示定义视图的表和(或)视图 735

技巧566 使用sp_helpconstraint显示有关表约束的信息 736

技巧567 使用sp_pkeys显示表的PRIMARY KEY信息 738

技巧568 使用sP_fkeys显示关于引用表的PRINARY KEY的外键信息 739

技巧569 使用sp_procoption控制MS-SQL server启动时运行的存储过程 741

技巧570 用sp-helpdb显示数据库文件的尺寸和物理位置 743

技巧571 使用sp-spaceused显示分配给数据库或单独的数据库对象的已用与未用空间量 744

技巧572 使用sp-helptrigger显示有关表上的触发器信息 745

技巧573 使用sp-who和KILL命令控制运行在MS-SQL Server上的进程 746

技巧574 使用sp_lock显示数据库所掌握的锁定信息 748

技巧575 使用sp_password改变账户密码 750

技巧576 使用内建存储过程管理MS-SQL Server用户账户 751

第25章 通过Internet处理SQL数据库中的数据 755

技巧577 使用sp_makewebtask创建生成Web页面的任务 755

技巧578 为MS-SQL Server查询结果创建Web页面模板 761

技巧579 格式化由MS-SQL Server存储过程创建的Web页面上的查询结果表 763

技巧580 使用sp-makewebtask在链接的Web页面上显示IMAGE和TEXT数据 766

技巧581 使用内建的存储过程启动或删除Web任务 768

技巧582 使用MS-SQL Server Web Assistant Wizard创建执行存储过程的Web任务 770

技巧583 理解Active Server Pages(ASP,活动服务器页面)和ActiveX Data Objects(ADO,ActiveX数据对象) 776

技巧584 下载并安装PHP 778

技巧585 理解开放数据库连接(ODBC)和数据源名(DSNs) 779

技巧586 建立数据源(DSN)与SQL DBMS的连接 785

技巧587 下载、安装并使用MyODBC驱动程序与MySQL数据库连接 788

技巧588 与MS-SQL Server或MySQL DBMS建立无DSN的连接 791

技巧589 使用ADO Connection对象执行SELECT语句设置访问Web站点的用户名/密码 793

技巧590 在Web页面上的HTML表中显示查询结果 795

技巧591 编写可重用的PHP例程在Web页面上显示查询结果 796

技巧592 通过HTML表单提交SQL查询 802

技巧593 使用HTML表单向SQL表中插入数据 806

技巧594 通过HTML表单更新及删除数据库数据 808

技巧595 从脚本内调用存储过程 812

技巧596 使用VBScript处理Recordset对象 813

技巧597 通过Internet处理SQL的事务处理过程 817

技巧598 创建与MS-SQL Server的虚拟连接 819

技巧599 使用HTTP执行SQL语句 826

技巧600 使用XML架构利用HTTP提交查询并使用xsL样式表来格式化查询结果 827

技巧601 显示保存在SQL表内的图像数据 832