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

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Konrad King著;杜大鹏等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2005
  • ISBN:7508428935
  • 页数:630 页
图书介绍:本书以技巧形式讲述了有关SQL的各个方面。作者以其丰富的SQL数据库工作经验,向读者介绍了从数据库概念到数据库理论,从SQL标准到各种SQL数据库产品,从数据库的编程方法到具体的语句句法,从分布式计算到Internet应用等的有关知识。本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQL Server的实现方式,但同时比较与其他软件的异同。本书可作为数据库软件开发,网站设计及电子商务等技术人员的参考书。

精华版序 1

译者序 1

作者简介 1

感谢 1

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

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

技巧2 理解平面文件 1

目录 1

技巧3 理解关系数据库模型 2

技巧4 理解Codd的12条关系数据库定义规则 3

技巧5 理解表 4

技巧6 理解表名 6

技巧7 理解列名 6

技巧8 理解视图 8

技巧9 理解架构 10

技巧11 理解约束 13

技巧10 理解域 13

技巧12 理解数据定义语言(DDL) 14

技巧13 理解数据操纵语言(DML) 17

技巧14 理解数据控制语言(DCL) 18

技巧15 理解标准SQL的日期时间数据类型和DATETIME数据类型 19

技巧16 理解SQL的BIT数据类型 21

技巧17 理解MS-SQL Server的IDENTITY属性 22

技巧18 理解断言(Assertions) 23

技巧19 理解SQL DBMS的客户/服务器模型 24

技巧20 理解SQL语句的结构 25

技巧21 使用MS-SQL Server Query Analyzer执行SQL语句 28

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

技巧23 在ISQL内使用ED命令编辑SQL语句 32

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

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

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

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

技巧28 理解MS-SQL Server的TempDB数据库 41

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

技巧29 使用CREATE TABLE语句创建表 43

技巧30 使用MS-SQL Server Enterprise Manager创建表 44

技巧31 创建MS-SQL Server的临时表 47

技巧32 使用Transact-SQL的CREATE DEFAULT语句设置列的默认值 47

技巧33 使用MS-SQL Server的存储过程sp_bindefault将用户创建的默认值绑定到表列上 49

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

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

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

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

技巧38 使用Transact-SQL的DROP DEFAULT语句从数据库中删除默认值 57

技巧39 使用ALTER TABLE语句向表中添加列 60

技巧40 使用MS-SQL Server的ALTER TABLE、DROP COLUMN子句删除表列 60

技巧41 使用ALTER TABLE语句改变列的宽度或数据类型 62

技巧42 使用ALTER TABLE语句改变主键和外键 63

技巧43 使用CREATE TABLE语句指定主键 65

技巧44 使用CREATE TABLE语句指定外键约束 66

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

技巧46 理解DROP VIEW语句中的CASCADE和RESTRICT子句 72

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

技巧47 使用INSERT语句向表中添加行 73

技巧48 使用INSERT语句通过视图插入行 74

技巧49 使用MS-SQL Server Enterprise Manager定义或改变主键约束 76

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

技巧51 使用INSERT语句将一个表中的行插入另一表 79

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

技巧53 使用UPDATE语句改变列值 83

技巧54 使用带条件子句的UPDATE语句同时改变多行中的值 84

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

技巧55 在UPDATE语句中使用子查询同时改变多行中的值 86

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

技巧58 使用DELETE语句从表中删除行 89

技巧59 使用TRUNCATE语句从MS-SQL Server表中删除所有行 90

技巧60 使用DELETE语句通过视图删除表行 90

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

技巧61 理解SELECT语句的结构 92

技巧62 理解处理SQL的SELECT语句所涉及的步骤 93

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

技巧64 使用SELECT语句显示列及计算值 98

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

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

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

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

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

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

技巧71 理解子查询 107

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

技巧73 理解表达式 109

技巧74 理解SQL的判式 110

技巧75 理解集合(或列)函数 111

技巧76 理解CASE表达式 112

技巧77 使用CASE表达式更新列值 115

技巧78 使用CASE表达式避免错误条件 116

技巧79 理解NULLIF表达式 117

技巧80 使用COALESCE表达式代替NULL值 117

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

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

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

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

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

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

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

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

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

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

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

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

技巧92 理解SQL的事务处理过程 130

技巧93 理解ANSI/ISO的事务处理模型 131

技巧94 理解何时使用COMMIT语句 132

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

技巧96 理解MS-SQL Server的事务处理模型 136

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

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

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

技巧99 使用MS-SQL Server Enterprise Manager添加登录和用户 142

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

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

技巧102 理解MS-SQL Server的权限 148

技巧103 理解SQL的安全对象和权限 149

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

技巧105 使用MS-SQL Server Enterprise Manager指定数据库角色权限 151

技巧106 使用GRANT语句的WITH GRANT OPTION允许用户向其他用户授予对数据库对象的访问权 153

技巧107 理解REVOKE语句 154

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

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

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

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

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

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

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

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

技巧116 使用GRANTALL(以及REVOKEALL)语句授予(GRANT)或撤消(REVOKE)对数据库对象的权限 166

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

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

技巧119 使用视图扩展SQL安全性权限 169

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

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

技巧121 使用CREATE INDEX语句创建索引 172

技巧122 理解MS-SQL Server的CREATE INDEX语句选项 173

技巧123 使用MS-SQL Server Enterprise Manager创建索引 176

技巧124 使用DROP INDEX语句删除索引 178

技巧125 理解MS-SQL Server的集群索引 178

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

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

技巧127 理解单列和复合键字 185

技巧128 使用CREATE DOMAIN语句创建域 186

技巧129 使用PRIMARY KEY列约束惟一地确定表行 187

技巧130 理解引用完整性检查和外键 188

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

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

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

技巧134 理解NULL值与惟一性的相互作用 194

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

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

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

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

技巧139 使用Enterprise Manager在已有表间添加FOREIGN KEY关系 198

技巧140 使用MATCH FULL子句保持引用完整性 201

技巧141 理解MATCH FULL、MATCH PARTIAL和MATCH SIMPLE子句 202

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

技巧143 使用NOT NULL列约束防止列中的NULL值 205

技巧145 使用CHECK约束确认列值 206

技巧144 使用UNIQUE列约束防止列中的重复值 206

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

技巧147 使用Transact-SQL的CREATE RULE语句创建MS-SQL Server规则 210

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

技巧149 使用Transact-SQL的DROP RULE语句永久地从数据库中删除规则 212

技巧150 使用MS-SQL Server Enterprise Manager列出并编辑视图 213

技巧151 使用CREATE ASSERTION语句创建多表约束 214

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

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

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

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

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

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

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

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

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

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

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

技巧162 使用UNION运算符组合两条查询的结果 227

技巧163 使用ORDER BY子句对UNION运算的结果排序 228

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

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

技巧166 理解多列的UNIQUE约束 230

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

技巧167 理解实际值 232

技巧168 使用SUBSTRING函数提取部分字符串 232

技巧169 使用DISTINCT子句消除行集中的重复 233

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

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

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

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

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

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

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

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

技巧178 使用EXTRACT函数从DATETIME值中提取单个域 241

技巧179 使用CURRENT_TIME函数读取当前系统时间 242

技巧180 使用CURRENT_DATE函数读取当前系统日期 242

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

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

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

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

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

技巧186 使用NULLIF函数将列值设置为NULL 249

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

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

技巧189 理解在Select语句中如何使用修饰子句 251

第11章 使用比较判式和组合查询 253

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

技巧191 在WHERE子句中使用IN或NOT IN判式选择行 254

技巧192 在LIKE判式中使用通配符 254

技巧193 在LIKE判式中使用转义字符 255

技巧194 使用LIKE和NOT LIKE比较两个字符串 256

技巧195 理解MS-SQL Server对LIKE判式中的通配符的扩展 256

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

技巧197 理解UNIQUE判式 258

技巧198 使用OVERLAPS判式决定一个DATETIME是否与另一个重叠 259

技巧199 理解GROUP BY子句和组合查询 259

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

技巧201 使用GROUP BY子句根据多列组合行 261

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

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

技巧204 使用MS-SQLTransact-SQL的COMPUTE和COMPUTE BY子句显示多级分类汇总 264

技巧205 理解GROUP BY子句如何看待NULL值 266

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

技巧207 理解在组合查询中使用HAVING子句的SQL规则 268

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

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

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

技巧210 使用FROM子句执行多表查询 272

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

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

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

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

技巧215 理解非等价联合 277

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

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

技巧218 在对非UNION兼容表的INTERSECT查询中使用CORRESPONDING关键词 281

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

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

技巧221 理解NATURAL JOIN 284

技巧222 理解条件联合 285

技巧223 使用CROSS JOIN创建笛卡尔积 286

技巧224 理解列名联合 287

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

技巧226 理解USING子句在INNER JOIN中的作用 289

技巧227 理解OUTER JOIN 290

技巧228 理解LEFT(RIGHT)OUTER JOIN 291

技巧229 理解FULL OUTER JOIN 293

技巧230 理解MS-SQL Server的OUTER JOIN记号 294

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

技巧232 理解非相等的INNER和OUTER JOIN语句 296

技巧233 理解UNION JOIN 296

技巧234 使用COALESCE表达式改善UNION JOIN的结果 298

技巧235 理解FROM子句在JOIN语句中的作用 299

技巧236 在多表JOIN中使用“*”运算符指明所有或只是某些表中的所有列 300

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

技巧238 理解表的别名 302

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

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

技巧241 理解何时使用ON子句以及何时使用WHERE子句 306

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

第13章 理解SQL子查询 310

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

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

技巧245 使用关键词IN引入子查询 311

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

技巧247 在子查询中使用总计函数返回单值 313

技巧248 理解WHERE子句中子查询的作用 313

技巧249 使用嵌套查询返回TRUE或FALSE值 314

技巧250 理解HAVING子句中子查询的作用 315

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

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

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

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

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

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

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

技巧257 GRANT语句授予某人以DELETE权限 323

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

技巧259 理解如何一起使用GRANT和REVOKE语句以便在授予权限时节省时间 325

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

技巧261 理解READ UNCOMMITTED和作废读取 327

技巧262 理解READ COMMITTED和不可重复读取 327

技巧263 理解REPEATABLE READ和幻影插入 328

技巧264 理解MS-SQL Server的锁定扩大 329

技巧265 理解死锁以及DBMS如何解决死锁 330

技巧266 理解SERIALIZABLE隔离级别 330

技巧267 理解REPEATABLE READ隔离级别 331

技巧268 理解READ COMMITTED隔离级别 332

技巧269 理解READ UNCOMMITTED隔离级别 333

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

技巧271 使用MS-SQL Server Enterprise Manager“杀死”对数据库对象保持锁定的进程 335

技巧272 理解MS-SQL Server与Oracle上的锁定和事务处理隔离 336

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

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

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

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

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

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

技巧278 向Visual Basic(VB)窗体中添加MSFlexGrid控件以显示SQL表数据 345

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

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

技巧281 使用SQLAllocEnv和SQLFreeEnv分配及释放ODBC环境资源 350

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

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

技巧284 使用SQLConnect和SQLDisconnect建立和结束DBMS会话 354

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

技巧286 使用SQLExecDirect向DBMS发送用于执行的SQL语句 357

技巧287 使用SQLFetch函数从SQL数据库中提取数据行 359

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

技巧289 理解行式和列式绑定之间的差别 362

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

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

技巧292 使用SQLSetPos函数的SQL UPDATE选项执行定位更新 365

技巧293 使用SQLSetPos函数的SQL DELETE选项执行定位删除 366

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

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

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

技巧297 在宿主程序变量中处理NULL值 370

技巧298 向Visual Basic(VB)中添加DB函数库(DBLIB)功能 371

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

技巧300 使用SqlOpenConnection()函数登录MS-SQL Server 374

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

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

技巧303 使用SqlNumCols()函数确定由查询生成的结果集中的列数 376

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

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

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

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

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

技巧309 使用SqlResults()函数提取SqlExec()发送的查询结果集 381

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

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

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

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

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

技巧315 使用Vbsql1_Error()例程显示DBLIB生成的错误消息 387

技巧316 使用Vbsql1_Message()例程显示MS-SQL Server生成的错误消息 388

技巧317 使用SqlColType()函数确定列的数据类型 389

技巧318 使用SqlDatLen()函数确定储存在DBLIB缓冲区列中的数据的字节数 390

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

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

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

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

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

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

技巧325 理解DBLIB浏览模式的函数 396

技巧327 执行DBLIB浏览模式的DELETE语句 397

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

技巧328 执行DBLIB浏览模式的UPDATE语句 398

技巧329 用DBLIB API执行动态SQL查询 399

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

技巧330 理解游标的目的 402

技巧331 使用DECLARE CURSOR语句定义游标 402

技巧332 使用OPEN语句创建游标 403

技巧333 使用ORDER BY子句改变游标中行的顺序 404

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

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

技巧336 使用FETCH语句从游标中的行提取列值 406

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

技巧338 理解基于游标的定位DELETE语句 408

技巧339 理解基于游标的定位UPDATE语句 409

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

技巧340 使用索引改变游标中行的顺序 410

技巧342 使用DEALLOCATE语句删除游标并释放其服务器资源 411

技巧343 理解DECLARE CURSOR语句的Transact-SQL扩展句法 412

技巧344 使用@@CURSOR_ROWS系统变量确定游标中的行数 413

第17章 理解触发器 415

技巧345 理解何时用CHECK约束代替触发器 415

技巧346 理解嵌套游标 415

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

技巧348 用CREATE TRIGGER语句创建触发器 418

技巧349 理解INSERT触发器 420

技巧350 理解DELETE触发器 421

技巧351 理解UPDATE触发器 422

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

技巧353 用触发器发送E-mail消息 425

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

技巧355 用ALTER VIEW语句修改视图 427

技巧356 用ALTER TABLE语句改变列的数据类型 428

第18章 处理Blobs数据和文本 429

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

技巧358 理解MS-SQL Server的BLOB(TEXT、NTEXT和IMAGE)数据处理过程 430

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

技巧360 用Transact-SQL WRITETEXT语句把数据放到TEXT、NTEXT或IMAGE列中 432

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

技巧362 用READTEXT()函数读取TEXT、NTEXT或IMAGE列中的部分(或全部)数据 434

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

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

技巧365 用DATALENGTH()函数返回BLOB中的字节数 436

技巧366 理解TEXTSIZE选项和@@TEXTSIZE()函数 437

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

技巧367 理解信息架构 438

技巧368 理解信息架构的CHECK_CONSTRAINTS视图 438

技巧369 理解信息架构的COLUMN_DOMAIN_USAGE视图 439

技巧370 理解信息架构的COLUMN_PRIVILEGES视图 440

技巧371 理解信息架构的COLUMNS视图 440

技巧372 理解信息架构的CONSTRAINT_COLUMN USAGE视图 442

技巧373 理解信息架构的CONSTRAINT_TABLE_USAGE视图 443

技巧374 理解信息架构的DOMAIN_CONSTRAINTS视图 444

技巧375 理解信息架构的DOMAINS视图 444

技巧376 理解信息架构的KEY_COLUMN_USAGE视图 445

技巧377 理解信息架构的PARAMETERS视图 446

技巧378 理解信息架构的REFERENTIAL_CONSTRAINTS视图 447

技巧379 理解信息架构的ROUTINES视图 449

技巧380 理解信息架构的SCHEMATA视图 451

技巧381 理解信息架构的TABLE_CONSTRAINTS视图 451

技巧382 理解信息架构的TABLE_PRIVILEGES视图 452

技巧383 理解信息架构的TABLES视图 453

技巧385 理解信息架构的VIEW_TABLE_USAGE视图 454

技巧384 理解信息架构的VIEW_COLUMN_USAGE视图 454

技巧386 理解信息架构的ROUTINE_COLUMNS视图 455

技巧387 理解信息架构的VIEWS视图 456

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

技巧389 理解MS-SQL Server系统数据库表 459

技巧390 定义数据库的物理位置 460

技巧391 向已有数据库添加文件和文件组 461

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

技巧393 理解CREATE VIEW语句中的WITH SCHEMABINDING子句 463

第20章 监测及提高MS-SQL Server的性能 465

技巧394 理解多处理器Windows NT系统上的MS-SQL Server多任务与多线程 465

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

技巧396 理解NT Server的性能监视器的图表视图 467

技巧397 理解NT Server性能监视器的报告视图 468

技巧398 理解NT Server性能监视器的警报视图 470

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

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

技巧401 用NT性能监视器查看性能日志文件 474

技巧402 配置Windows NT的应用程序事件日志 476

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

技巧404 用MS-SQL Server服务管理器启动MS-SQL Server 478

技巧405 理解如何恢复MS-SQLServer数据库 479

技巧406 理解MS-SQLServer优化器提示 484

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

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

技巧409 使用MS-SQL Server SQL Query Analyzer的SHOWPLAN选项 488

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

第21章 使用存储过程 491

技巧411 理解存储过程 491

技巧412 使用CREATE PROCEDURE语句创建存储过程 492

技巧413 用EXECUTE语句调用存储过程 494

技巧414 使用存储过程参数返回值 495

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

技巧416 在存储过程中使用游标 499

技巧417 使用CREATE FUNCTION语句创建存储函数 502

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

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

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

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

技巧421 理解DBCC的维护语句 510

技巧422 理解DBCC的杂项语句 514

技巧423 理解DBCC的状态语句 515

技巧424 理解DBCC的确认语句 520

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

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

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

技巧427 使用临时表删除重复数据 528

技巧428 使用临时表从多表中删除行 529

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

技巧430 优化EXISTS判式 532

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

技巧432 使用EXISTS判式检查表中的重复行 535

技巧433 把表内容和函数结果合并 536

技巧434 使用视图显示汇总级别的层次 537

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

技巧436 使用EXCEPT判式确定两表差异 539

技巧437 使用EXISTS判式生成两表的交集 540

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

技巧438 使用sp_detach_db和sp_attach_db在MS-SQL Server上删除和添加数据库 542

技巧439 使用MS-SQL Server的存储过程sp_addtype和sp_droptype添加和删除用户定义的数据类型 543

技巧440 使用sp_help显示数据库对象属性 544

技巧441 使用sp_helptext显示定义存储过程、用户定义函数、触发器、默认值、规则或者视图的文本 546

技巧442 用sp_depends显示定义视图的表和(或)视图 546

技巧443 使用sp_helpconstraint显示有关表约束的信息 547

技巧444 使用sp_pkeys显示表的PRIMARY KEY信息 549

技巧445 使用sp_fkeys显示关于引用表的PRIMARY KEY的外键信息 550

技巧446 使用sp_procoption控制MS-SQL Server启动时运行的存储过程 552

技巧447 使用sp_spaceused显示分配给数据库或单独的数据库对象的已用与未用空间量 553

技巧448 使用sp_helptrigger显示有关表上的触发器信息 554

技巧449 使用sp_who和KILL命令控制运行在MS-SQL Server上的进程 556

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

技巧451 使用sp_password改变账户密码 559

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

技巧452 使用sp_makewebtask创建生成Web页面的任务 561

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

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

技巧455 使用sp_makewebtask在链接的Web页面上显示IMAGE和TEXT数据 571

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

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

技巧458 下载并安装PHP 580

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

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

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

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

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

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

技巧465 通过HTML表单提交SQL查询 598

技巧466 使用HTML表单向SQL表中插入数据 602

技巧467 通过HTML表单更新及删除数据库数据 604

技巧468 从脚本内调用存储过程 608

技巧469 使用VBScript处理Recordset对象 609

技巧470 通过Internet处理SQL的事务处理过程 613

技巧471 创建与MS-SQL Server的虚拟连接 615

技巧472 使用HTTP执行SQL语句 619

技巧473 使用XML架构利用HTTP提交查询并使用XSL样式表来格式化查询结果 621

技巧474 显示保存在SQL表内的图像数据 626