SQL编程实用大全
2005-5
中国水利水电出版社
金
630
917000
杜大鹏
无
本书以技巧形式讲述了有关SQL的各个方面。作者以其丰富的SQL数据库工作经验,向读者介绍了从数据库概念到数据库理论,从SQL标准到各种SQL数据库产品,从数据库的编程方法到具体的语句句法,从分布式计算到Internet应用等的有关知识。本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较与其他软件的异同。本书是SQL知识的大全。读者既可将其作为学习SQL知识的教科书,循序渐进地学习各方面的知识,也可作为手边的参考资料,在学习和工作中遇到问题时随时查阅。书中的大量示例代码具有很高的实用性,读者略加修改就可以用在自己的编程实践中。 本书可以作为从事数据库软件开发、Internet网站设计以及电子商务等技术的中高级程序员的参考书。
Konrad King是一位居住在内华达州拉斯维加斯的程序员和数据库管理员。这位美国空军学院的毕业生在实时编程、网络协议、基于Web的应用程序,以及数据库管理方面有较高的造诣。
精华版序译者序作者简介感谢第1章 理解SQL基本知识并创建数据库文件 技巧1 理解数据库的定义 技巧2 理解平面文件 技巧3 理解关系数据库模型 技巧4 理解Codd的12条关系数据库定义规则 技巧5 理解表 技巧6 理解表名 技巧7 理解列名 技巧8 理解视图 技巧9 理解架构 技巧10 理解域 技巧11 理解约束 技巧12 理解数据定义语言(DDL) 技巧13 理解数据操纵语言(DML) 技巧14 理解数据控制语言(DCL) 技巧15 理解标准SQL的日期时间数据类型和DATETIME数据类型 技巧16 理解SQL的BIT数据类型 技巧17 理解MS-SQL Server的IDENTITY属性 技巧18 理解断言(Assertions) 技巧19 理解SQL DBMS的客户/服务器模型 技巧20 理解SQL语句的结构 技巧21 使用MS-SQL Server Query Analyzer执行SQL语句 技巧22 使用MS-SQL Server ISQL在命令行上执行SQL语句或是执行存储在ASCII文件中的语句 技巧23 在ISQL内使用ED命令编辑SQL语句 技巧24 使用CREATE DATABASE语句创建MS-SQL Server数据库和事务处理日志 技巧25 使用MS-SQL Server Enterprise Manager创建数据库和事务处理日志 技巧26 使用DROP DATABASE删除MS.SQL Server数据库和事务处理日志 技巧27 理解如何确定MS-SQL Server数据库及其事务处理日志的容量 技巧28 理解MS.SQL Server的TempDB数据库第2章 使用SQL数据定义语言(DDL)创建数据表和其他数据库对象 技巧29 使用CREATE TABLE语句创建表 技巧30 使用MS-SQL Server Enterprise Manager创建表 技巧31 创建MS-SQL Server的临时表 技巧32 使用Transact-SQL的CREATE DEFAULT语句设置列的默认值 技巧33 使用MS-SQL Server的存储过程sp bindefault将用户创建的默认值绑定到表列上 技巧34 在CREATE TABLE语句中使用DEFAULT子句设置默认列值 技巧35 使用MS-SQL Server Enterprise Manager为用户定义的数据类型或表列创建默认值 技巧36 使用MS-SQL Server Enterprise Manager创建用户定义的数据类型 技巧37 使用MS-SQL Server Enterprise Manager将默认值绑定到数据类型或表列 技巧38 使用Transact-SQL的DROP DEFAULT语句从数据库中删除默认值 技巧39 使用ALTER TABLE语句向表中添加列 技巧40 使用MS-SQL Server的ALTER TABLE、DROP COLUMN子句删除表列 技巧41 使用ALTER TABLE语句改变列的宽度或数据类型 技巧42 使用ALTER TABLE语句改变主键和外键 技巧43 使用CREATE TABLE语句指定主键 技巧44 使用CREATE TABLE语句指定外键约束 技巧45 使用MS-SQL Server Enterprise Manager Create View Wizard创建视图 技巧46 理解DROP VIEW语句中的CASCADE和RESTRICT子句第3章 使用SQL的数据操纵语言(DML) 在SQL表内插入并操作数据 技巧47 使用INSERT语句向表中添加行 技巧48 使用INSERT语句通过视图插入行 技巧49 使用MS-SQL Server Enterprise Manager定义或改变主键约束 技巧50 使用INSERT语句向行的特定列中添加数据 技巧51 使用INSERT语句将一个表中的行插入另一表 技巧52 将MS-SQL Server的SELECT INTO/BULKCOPY数据库选项设置为TRUE以便加速从表到表的数据转移 技巧53 使用UPDATE语句改变列值 技巧54 使用带条件子句的UPDATE语句同时改变多行中的值 技巧55 在UPDATE语句中使用子查询同时改变多行中的值 技巧56 使用UPDATE语句根据另一表中的值改变表的值 技巧57 使用UPDATE语句通过视图改变表数据 技巧58 使用DELETE语句从表中删除行 技巧59 使用TRUNCATE语句从MS-SQL Server表中删除所有行 技巧60 使用DELETE语句通过视图删除表行第4章 处理查询、表达式和总计函数 技巧61 理解SELECT语句的结构 技巧62 理解处理SQL的SELECT语句所涉及的步骤 技巧63 使用SELECT语句从一个或多个表的行中显示列 技巧64 使用SELECT语句显示列及计算值 技巧65 使用带WHERE子句的SELECT语句根据列值选择行 技巧66 在WHERE子句中使用布尔运算符OR、AND和NOT 技巧67 使用ORDER BY子句指定由SELECT语句返回行的顺序 技巧68 在WHERE子句中使用复合条件(AND、OR和NOT)根据多个列值(或计算值)选择行 技巧69 理解使用比较判式选择行时的NULL值 技巧70 使用行值表达式根据多个列值选择表中的行 技巧71 理解子查询 技巧72 使用行值子查询根据多个列值选择表中的行 技巧73 理解表达式 技巧74 理解SQL的判式 技巧75 理解集合(或列)函数 技巧76 理解CASE表达式 技巧77 使用CASE表达式更新列值 技巧78 使用CASE表达式避免错误条件 技巧79 理解NULLIF表达式 技巧80 使用COALESCE表达式代替NULL值 技巧81 使用COUNTf+)总计函数对表中的行数计数 技巧82 使用COUNT(+)总计函数对列中的数据值数计数 技巧83 使用COUNT(+)总计函数对列中的惟一和重复值计数 技巧84 使用MS—SQL Server的CUBE和ROLLUP运算符总计表的数据 技巧85 使用MAX()总计函数找出列中的最大值 技巧86 使用SUM()总计函数计算列值的总和 技巧87 使用AVG()总计函数计算列中值的平均值 技巧88 使用带AVG()函数的WHERE子句确定表中所选行的平均值 技巧89 理解SELECT语句中的总计函数如何产生单表结果 技巧90 使用AND逻辑连接符对表行进行多条件选择 技巧91 使用OR逻辑连接符对表行进行多条件选择第5章 理解SQL的事务处理和事务处理日志 技巧92 理解SQL的事务处理过程 技巧93 理解ANSI/ISO的事务处理模型 技巧94 理解何时使用COMMIT语句 技巧95使用ROLLBACK语句取消对数据库对象所做的改变 技巧96 理解MS—SQL Server的事务处理模型 技巧97 在MS—SQL Server上使用命名的和嵌套的事务处理第6章 使用数据控制语言(DCL)建立数据库安全性 技巧98 理解MS-SQL Server标准和Windows NT的综合安全性 技巧99 使用MS-SQL Server Enterprise Manager添加登录和用户 技巧100 使用MS-SQL Server Enterprise Manager删除登录和用户 技巧101 理解MS-SQL Server的安全角色和组用户安全性 技巧102 理解MS-SQL Server的权限 技巧103 理解SQL的安全对象和权限 技巧104 使用MS-SQL Server Enterprise Manager创建数据库角色 技巧105 使用MS-SQL Server Enterprise Manager指定数据库角色权限 技巧106 使用GRANT语句的WITH GRANT OPTION允许用户向其他用户授予对数据库对象的访问权 技巧107 理解REVOKE语句 技巧108 使用带CASCADE选项的REVOKE语句删除权限 技巧109 使用REVOKE语句的GRANT OPTION FOR子句删除GRANT权限 技巧110 使用GRANT SELECT(以及REVOKE SELECT)语句控制对数据库对象的访问 技巧111 理解MS-SQL Server对SELECT权限的列清单扩展 技巧112 使用GRANT INSERT(以及REVOKE INSERT)语句控制对数据库对象的访问 技巧113 使用GRANT UPDATE(以及REVOKE UPDATE)语句控制对数据库对象的访问 技巧114 使用GRANT REFERENCES(以及REVOKE REFERENCES)语句控制对数据库对象的访问 技巧115 使用GRANT DELETE(以及REVOKE DELETE)语句控制对数据库对象的访问 技巧116 使用GRANT ALL(以及REVOKE ALL)语句授予(GRANT)或撤消(REVOKE)对数据库对象的权限 技巧117 使用视图将INSERT权限限制为只对表中的特定列 技巧118 使用视图将SELECT权限限制为只对表中的特定列 技巧119 使用视图扩展SQL安全性权限第7章 创建索引加快数据引用 技巧120 理解MS-SQL Server如何选择用于查询的索引 技巧121 使用CREATE INDEX语句创建索引 技巧122 理解MS-SQL Server的CREATE INDEX语句选项 技巧123 使用MS-SQL Server Enterprise Manager创建索引 技巧124 使用DROP INDEX语句删除索引 技巧125 理解MS-SQL Server的集群索引 技巧126 使用MS-SQL ServerIndexTuningWizard(索引调节向导)优化数据库索引第8章 使用键字和约束保持数据库的一致性 技巧127 理解单列和复合键字 技巧128 使用CREATE DOMAIN语句创建域 技巧129 使用PRIMARY KEY列约束惟一地确定表行 技巧130 理解引用完整性检查和外键 技巧131 理解引用数据完整性检查为什么会危害安全性 技巧132 理解引用完整性检查如何限制删除行和表的能力 技巧133 理解引用完整性检查的INSERT死锁及解决办法 技巧134 理解NULL值与惟一性的相互作用 技巧135 理解如何应用RESTRICT规则更新和删除以帮助保持引用完整性 技巧136 理解如何应用CASCADE规则更新和删除以帮助保持引用完整性 技巧137 理解如何应用SET NULL规则更新和删除以帮助保持引用完整性 技巧138 理解如何应用SET DEFAULT规则更新和删除以帮助保持引用完整性 技巧139 使用Enterprise Manager在已有表间添加FOREIGN KEY关系 技巧140 使用MATCH FULL子句保持引用完整性 技巧141 理解MATCH FULL、MATCH PARTIAL和MATCH SIMPLE子句 技巧142 理解SET NULL规则与MATCH子句的相互作用 技巧143 使用NOT NULL列约束防止列中的NULL值 技巧144 使用UNIQUE列约束防止列中的重复值 技巧145 使用CHECK约束确认列值 技巧146 使用MS-SQL Server Enterprise Manager将规则与数据类型或列绑定在一起 技巧147 使用Transact-SQL的CREATE RULE语句创建MS-SQL Server规则 技巧148 使用MS-SQL Server Enterprise Manager的Rule Properties屏幕改变规则 技巧149 使用Transact-SQL的DROP RULE语句永久地从数据库中删除规则 技巧150 使用MS-SQL Server Enterprise Manager列出并编辑视图 技巧151 使用CREATE ASSERTION语句创建多表约束第9章 执行多表查询并创建SQL视图 技巧152 使用带FROM子句的SELECT语句进行多表查询 技巧153 使用视图显示一个或多个表或视图中的列 技巧154 使用视图显示一个或多个表的特定行中的列 技巧155 使用UPDATE语句通过视图改变多个表中的数据 技巧156 在CREATE VIEW语句中 使用CHECK OPTION子句将视图约束应用于INSERT和UPDATE语句 技巧157 在CREATE VIEW语句中 使用GROUP BY子句创建显示总结数据的视图 技巧158 使用CREATE VIEW语句显示组合两个或多个表的结果 技巧159 使用UNION运算符选择出现在任一或全部的两个或多个表中的所有行 技巧160 使用UNION ALL运算符选择出现在任一或全部的两个或多个表中的所有行(包括重复的行) 技巧161 使用UNION CORRESPONDING运算符组合来自两个或多个与UNION不兼容的表中的行 技巧162 使用UNION运算符组合两条查询的结果 技巧163 使用ORDER BY子句对UNION运算的结果排序 技巧164 使用UNION运算符组合3个或3个以上的表 技巧165 理解MS-SQL Server的事务处理日志放于何处才能改善性能 技巧166 理解多列的UNIQUE约束第10章 使用函数、参数和数据类型 技巧167 理解实际值 技巧168 使用SUBSTRING函数提取部分字符串 技巧169 使用DISTlNCT子句消除行集中的重复 技巧170 使用Transact-SQL的STUFF函数将字符串插入另一字符串 技巧171 使用Transact-SQL的串接运算符“+”在另一字符串尾部添加字符串 技巧172 使用INTERSECT运算符选择出现在所有两个或多个源表中的行 技巧173 使用EXCEPT运算符选择出现在一个表而不出现在另一表中的行 技巧174 使用POSITION函数返回字母或子字符串在字符串中的位置 技巧175 使用CHAR LENGTH函数返回字符串变量的长度 技巧176 使用OCTET LENGTH函数决定用于保存字符串变量或实际值所需的字节数 技巧177 使用BIT LENGTH函数决定用于保存字符串变量或实际值所需的位数 技巧178 使用EXTRACT函数从DATETIME值中提取单个域 技巧179 使用CURRENT TIME函数读取当前系统时间 技巧180 使用CURRENT DATE函数读取当前系统日期 技巧181 使用CURRENT TIMESTAMP函数读取当前系统日期和时间 技巧182 理解MS-SQL Server的日期和时间函数 技巧183 使用CAST函数将值从一种数据类型转化为另一种 技巧184 使用CASE表达式根据列的值选择实际值 技巧185 在搜索的CASE表达式中 使用子查询 技巧186 使用NULLIF函数将列值设置为NULL 技巧187 使用CAST函数比较不同数据类型列中的值 技巧188 使用CAST函数从SQL向宿主语言中传递值 技巧189 理解在Select语句中如何 使用修饰子句第11章 使用比较判式和组合查询 技巧190 在WHERE子句中 使用BETWEEN关键词选择行 技巧191 在WHERE子句中 使用IN或NOT IN判式选择行 技巧192 在LIKE判式中 使用通配符 技巧193 在LIKE判式中 使用转义字符 技巧194 使用LIKE和NOT LIKE比较两个字符串 技巧195 理解MS-SQL Server对LIKE判式中的通配符的扩展 技巧196 使用NULL判式找出所选列中有NULL值的所有行 技巧197 理解UNIQUE判式 技巧198 使用OVERLAPS判式决定一个DATETIME是否与另一个重叠 技巧199 理解GROUP BY子句和组合查询 技巧200 使用GROUP BY子旬根据单一列值组合行 技巧201 使用GROUP BY子句根据多列组合行 技巧202 使用ORDER BY子句改变由GROUP BY子句返回的组中的行序 技巧203 使用MS-SQL Transact-SQL的COMPUTE子句在同一结果表中显示明细及汇总行 技巧204 使用MS-SQL Transact-SQL的COMPUTE和COMPUTE BY子句显示多级分类汇总 技巧205 理解GROUP BY子句如何看待NULL值 技巧206 使用HAVING子句筛选包括在组合查询结果表中的行 技巧207 理解在组合查询中 使用HAVING子句的SQL规则 技巧208 理解SQL如何处理HAVING子句的NULL结果值第12章 使用SQL的联合语句和其他多表查询 技巧209 使用来自多个MS-SQL Server数据库中的表 技巧210 使用FROM子句执行多表查询 技巧211 使用WHERE子句联合与单列PRIMARY KEY/FOREIGN KEY对相关的两个表 技巧212 使用WHERE子句联合与复合的PRIMARY KEY/FOREIGN KEY对相关的两个表 技巧213 使用WHERE子句根据父/子关系联合3个或多个表 技巧214 使用WHERE子句根据非键字列联合表 技巧215 理解非等价联合 技巧216 在有一个或多个相同列名的联合的多个表中多表查询中 使用合格的列名 技巧217 使用带INTERSECT运算符的ALL关键词在查询结果表中包括重复的行 技巧218 在对非UNION兼容表的INTERSECT查询中 使用CORRESPONDING关键词 技巧219 使用没有WHERE子句的多表联合生成笛卡尔积 技巧220 使用别名(关联名)作为表名的简写 技巧221 理解NATURAL JOIN 技巧222 理解条件联合 技巧223 使用CROSS JOIN创建笛卡尔积 技巧224 理解列名联合 技巧225 使用INNER JOIN选择一个表中与另一表中的行相关的所有行 技巧226 理解USING子句在INNER JOIN中的作用 技巧227 理解OUTER JOIN 技巧228 理解LEFT(RIGHT)OUTER JOIN 技巧229 理解FULL OUTER JOIN 技巧230 理解MS-SQL Server的OUTER JOIN记号 技巧231 在单一查询中联合两个以上的表 技巧232 理解非相等的INNER和OUTER JOIN语句 技巧233 理解UNION JOIN 技巧234 使用COALESCE表达式改善UNION JOIN的结果 技巧235 理解FROM子句在JOIN语句中的作用 技巧236 在多表JOIN中使用“∥’运算符指明所有或只是某些表中的所有列 技巧237 在单表JOIN(即自我JOIN)中 使用表别名 技巧238 理解表的别名 技巧239 理解ANY的模糊本质以及SQL如何使其表示s0ME 技巧240 使用EXISTS而不使用COUNT( )检查子查询是否至少返回一行 技巧241 理解何时使用ON子句以及何时 使用WHERE子句 技巧242 理解如何使用嵌套的查询同时处理多个表第13章 理解SQL子查询 技巧243 理解在子查询中引用时的主查询列的值 技巧244 在子查询中 使用EXISTS判式来决定行中是否有满足搜索标准的列值 技巧245 使用关键词IN引入子查询 技巧246 使用ALL引入返回多个值的子查询 技巧247 在子查询中 使用总计函数返回单值 技巧248 理解WHERE子句中子查询的作用 技巧249 使用嵌套查询返回TRUE或FALSE值 技巧250 理解HAVING子句中子查询的作用 技巧251 理解JOIN语句中关联的和非关联的子查询的执行顺序 技巧252 使用关键词rN引入关联子查询来确定有特定值的表列的存在性 技巧253 理解用比较运算符引入的关联子查询 技巧254 将关联子查询用作HAVING子句中的过滤器 技巧255 使用关联子查询为UPDATE语句选择行第14章 理解事务处理隔离级别和并发处理 技巧256 使用带关联子查询的INSERT语句创建快照表 技巧257 GRANT语句授予某人以DELETE权限 技巧258 理解(CASCADE和非CASCADE)取消GRANT权限的效果 技巧259 理解如何一起 使用GRANT和REVOKE语句以便在授予权限时节省时问 技巧260 理解并发事务处理问题和隔离级别 技巧261 理解READ UNCOMMITTED和作废读取 技巧262 理解READ COMMITTED和不可重复读取 技巧263 理解REPEATABLE READ和幻影插入 技巧264 理解MS-SQL Server的锁定扩大 技巧265 理解死锁以及DBMS如何解决死锁 技巧266 理解SERIALIZABLE隔离级别 技巧267 理解REPEATABLE READ隔离级别 技巧268 理解READ COMMITTED隔离级别 技巧269 理解READ UNCOMMITTED隔离级别 技巧270 使用MS-SQL Server Enterprise Manager显示阻塞和被阻塞的会话 技巧271 使用MS-SQL Server Emerprise Manager“杀死”对数据库对象保持锁定的进程 技巧272 理解MS-SQL Server与Oracle上的锁定和事务处理隔离 技巧273 使用SET TRANSACTION语句设置事务处理的隔离级别 技巧274 使用COMMIT语句使数据库更新成为永久的 技巧275 使用SET CONSTRAINTS语句在提交事务处理之前延缓DEFERRABLE约束第15章 编写外部应用程序来查询与操作数据库数据 技巧276 为开放数据库互连(ODBC)连接创建数据源名称(DSN) 技巧277 向Visual Basic(VB)窗体中添加数据控件组件以便提取SQL表数据 技巧278 向Visual Basic(VB)窗体中添加MSFlexGrid控件以显示SQL表数据 技巧279 向Visual Basic(VB)窗体中添加Text和Button控件创建向SQL Server发送查询的应用程序 技巧280 创建用于与SQL Server通讯的简单c++外壳程序 技巧281 使用SQLAllocEnv和SQLFreeEnv分配及释放ODBC环境资源 技巧282 使用SQLAllocConnect和SQLFreeConnect分配和释放连接句柄和内存资源 技巧283 使用SQLSetConnectOption为与SQL Server的ODBC连接设置会话选项 技巧284 使用SQLConnect和SQLDisconnect建立和结束DBMS会话 技巧285 使用SQLAIlocEnv和SQLFreeEnv分配及释放SQL语句句柄和内存资源 技巧286 使用SQLExecDirect向DBMS发送用于执行的SQL语句 技巧287 使用SQLFetch函数从SQL数据库中提取数据行 技巧288 使用SQLExtendedFetch函数创建可更新的游标(Cursor) 技巧289 理解行式和列式绑定之间的差别 技巧290 使用SQLSetConnectOption函数选择在执行SQL语句时 使用的数据库 技巧291 使用SQLSetPos函数设置行集中的游标位置 技巧292 使用SQLSetPos函数的SQL UPDATE选项执行定位更新 技巧293 使用SQLSetPos函数的SQL DELETE选项执行定位删除 技巧294 当ODBC驱动程序不支持定位删除时使用SQLExecDirect函数删除数据库中的行 技巧295 在ODBC驱动程序不支持定位更新时使用SQLExecDirect函数更新数据库中的列值 技巧296 使用SQLError函数提取并显示ODBC错误代码和错误消息 技巧297 在宿主程序变量中处理NULL值 技巧298 向Visual Basic(VB)中添加DB函数库(DBLIB)功能 技巧299 使用Sqllnit()函数初始化DB函数库以及 使用SqlWinExit例程释放由Sqllnit()分配的内存 技巧300 使用SqlOpenConnection()函数登录MS-SQL Server 技巧301 使用SqlClose()例程关闭单个MS-SQL Server连接或者调用SqlExit关闭所有打开的连接 技巧302 使用SqlSendCmd函数向MS-SQL Server发送用于执行的SQL语句 技巧303 使用SqlNumCols()函数确定由查询生成的结果集中的列数 技巧304 使用SqlColName()函数提取由查询生成的结果集中的列名 技巧305 使用SqlData()函数从游标中将查询结果提取到应用程序中 技巧306 使用SqlNextRow()函数在游标行中向前移动 技巧307 使用SqlCmd()函数建立SQL语句批处理 技巧308 使用SqlExec()函数将SQL语句批处理提交给MS—SOL Server执行 技巧309 使用SqlResults()函数提取SqlExecf)发送的查询结果集 技巧310 使用SqlSend()提交语句批处理而不必等待DBMS完成所有语句的执行 技巧311 使用SqlDataReady()函数确定MS-SQL Server是否完成了SQL语句批处理 技巧312 使用SqlCancel()终止发送到MS-SQL Server的语句批处理并清除批结果缓冲区 技巧313 使用SqlCanQuery()函数在当前结果集中删除剩余(未被处理的)行 技巧314 使用SqlUse()函数为MS-SQL Server连接设置当前数据库 技巧315 使用Vbsqll Error()例程显示DBLIB生成的错误消息 技巧316 使用Vbsqll Message()例程显示MS-SQL Server生成的错误消息 技巧317 使用SqlColType()函数确定列的数据类型 技巧318 使用SqlDatLen()函数确定储存在DBLIB缓冲区列中的数据的字节数 技巧319 在Visual Basic应用程序中给宿主变量指定NULL值 技巧320 使用SqlSetOpt()设置行缓冲区的大小以便用SqlGetRow()随机提取行 技巧321 使用SqlGetRow()函数在DBLIB查询结果缓冲区中选择当前行 技巧322 使用SqlClrBuff()函数在DBLIB查询结果缓冲区中为附加行腾出空间 技巧323 理解MS-SQL Server的SELECT语句中的FORBROWSE子句 技巧324 理解DBLIB为什么不支持定位UPDATE和DELETE语句 技巧325 理解DBLIB浏览模式的函数 技巧326 使用SqlQual()函数为DBLIB浏览模式的UPDATE或DELETE语句生成WHERE子句 技巧327 执行DBLIB浏览模式的DELETE语句 技巧328 执行DBLIB浏览模式的UPDATE语句 技巧329 用DBLIB API执行动态SQL查询第16章 通过游标提取和维护数据 技巧330 理解游标的目的 技巧331 使用DECLARE CURSOR语句定义游标 技巧332 使用OPEN语句创建游标 技巧333 使用ORDER BY子句改变游标中行的顺序 技巧334 在游标中包含计算好的值作为列 技巧335 使用FOR UPDATE子句指定游标可修改底层表的哪些列 技巧336 使用FETCH语句从游标中的行提取列值 技巧337 把游标的当前行指针预先定向到从当前行获取列值 技巧338 理解基于游标的定位DELETE语句 技巧339 理解基于游标的定位UPDATE语句 技巧340 使用索引改变游标中行的顺序 技巧341 使用@@FETCH STATUS利用WHILE循环处理游标中的行 技巧342 使用DEALLOCATE语句删除游标并释放其服务器资源 技巧343 理解DECLARE CURSOR语句的Transact-SQL扩展句法 技巧344 使用@@CURSOR ROWS系统变量确定游标中的行数第17章 理解触发器 技巧345 理解何时用CHECK约束代替触发器 技巧346 理解嵌套游标 技巧347 理解当前日期和时间的值是在语句开始执行时设置的 技巧348 用CREATE TRIGGER语句创建触发器 技巧349 理解INSERT触发器 技巧350 理解DELETE触发器 技巧351 理解UPDATE触发器 技巧352 用UPDATE触发器改变PRIMARY KEY/FOREIGN KEY对的值 技巧353 用触发器发送E-mail消息 技巧354 用MS-SQL Server Enterprise manager显示或修改触发器 技巧355 用ALTER VIEW语句修改视图 技巧356 用ALTER TABLE语句改变列的数据类型第18章 处理BIOS数据和文本 技巧357 理解由二进制和字符大对象(BLOB)的处理带来的挑战 技巧358 理解MS-SQL Server的BLOB(TEXT、NTEXT和IMAGE)数据处理过程 技巧359 用INSERT或UPDATE语句把数据放到BLOB数据类型的列中 技巧360 用Transact-SQL WRITETEXT语句把数据放到TEXT、NTEXT或IMAGE列中 技巧361 用Transact-SQL UPDATETEXT语句改变TEXT、NTEXT或IMAGE列的内容 技巧362 用READTEXT()函数读取TEXT、NTEXT或IMAGE列中的部分(或全部)数据 技巧363 用MS-SQL Server的TEXTVALID()函数确定文本指针是否有效 技巧364 用PATINDEX()函数返回BLOB中第一次出现的地址 技巧365 用DATALENGTH()函数返回BLOB中的字节数 技巧366 理解TEXTSIZE选项和@@TEXTSIZE()函数第19章 使用MS-SQL Server信息架构视图 技巧367 理解信息架构 技巧368 理解信息架构的CHECK CONSTRAINTS视图 技巧369 理解信息架构的COLUMN DOMAIN USAGE视图 技巧370 理解信息架构的COLUMN PRIVILEGES视图 技巧371 理解信息架构的COLUMNS视图 技巧372 理解信息架构的CONSTRAINT COLUMN USAGE视图 技巧373 理解信息架构的CONSTRAINT TABLE USAGE视图 技巧374 理解信息架构的DOMAIN CONSTRAINTS视图 技巧375 理解信息架构的DOMAINS视图 技巧376 理解信息架构的KEY COLUMN USAGE视图 技巧377 理解信息架构的PARAMETERS视图 技巧378 理解信息架构的REFERENTIAL CONSTRAINTS视图 技巧379 理解信息架构的ROUTINES视图 技巧380 理解信息架构的SCHEMATA视图 技巧381 理解信息架构的TABLE CONSTRAINTS视图 技巧382 理解信息架构的TABLE PRIVILEGES视图 技巧383 理解信息架构的TABLES视图 技巧384 理解信息架构的VIEW COLUMN USAGE视图 技巧385 理解信息架构的VIEW TABLE USAGE视图 技巧386 理解信息架构的ROUTINE COLUMNS视图 技巧387 理解信息架构的VIEWS视图 技巧388 用MS-SQL ServerEnterpriseManager查看信息架构视图的内容 技巧389 理解MS-SQL Server系统数据库表 技巧390 定义数据库的物理位置 技巧391 向已有数据库添加文件和文件组 技巧392 通过创建联接表视图简化多表查询 技巧393 理解CREATE VIEW语句中的WITH SCHEMABINDlNG子句第20章 监测及提高MS.SQL Server的性能 技巧394 理解多处理器Windows NT系统上的MS-SQL Server多任务与多线程 技巧395 用MS-SQL Server的PRIORITY BOOST配置选项把服务器线程的优先权从7增加到13 技巧396 理解NT Server的性能监视器的图表视图 技巧397 理解NT Server性能监视器的报告视图 技巧398 理解NT Server性能监视器的警报视图 技巧399 使用CREATE SCHEMA语句创建表并授予对此表的访问权限 技巧400 建立NT Server性能监视器曰志以帮助优化MS-SQL Server 技巧401 用NT性能监视器查看性能日志文件 技巧402 配置Windows NT的应用程序事件日志 技巧403 显示Windows NT应用程序事件详情并清除应用程序事件日志 技巧404 用MS-SQL Server服务管理器启动MS-SQL Server 技巧405 理解如何恢复MS-SQL Server数据库 技巧406 理解MS-SQL Server优化器提示 技巧407 用MS-SQL Server的SHOWPLAN TEXT选项显示语句的执行计划 技巧408 理解显示语句执行计划和状态的MS-SQL Server SHOWPLAN ALL选项 技巧409 使用MS-SQL Server SQL Query Analyzer的SHOWPLAN选项 技巧410 用MS-SQL Server SETUSER语句测试用户对数据库对象的访问权限第21章 使用存储过程 技巧411 理解存储过程 技巧412使用CREATE PROCEDURE语句创建存储过程 技巧413 用EXECUTE语句调用存储过程 技巧414 使用存储过程参数返回值 技巧415 用关键词RETURN从存储函数中返回一个值 技巧416 在存储过程中使用游标 技巧417 使用CREATE FUNCTION语句创建存储函数 技巧418 使用MS-SQL Server Enterprise Manager查看或修改存储过程或函数 技巧419 使用Transact-SQL关键词DECLARE和SELECT在存储过程中定义变量并为其赋初始值第22章 修理及维护MS.SQL Server数据库文件 技巧420 理解MS-SQL Server的Database Consistency Checker(DBCC,数据库一致检查器) 技巧421 理解DBCC的维护语句 技巧422 理解DBCC的杂项语句 技巧423 理解DBCC的状态语句 技巧424 理解DBCC的确认语句第23章 编写高级查询及子查询 技巧425 理解对用作比较运算符判式的子查询的限制 技巧426 使用视图允许子查询中的工作表白我联合 技巧427 使用临时表删除重复数据 技巧428 使用临时表从多表中删除行 技巧429 使用UPDATE语句根据另一个表中的值设置表中的值 技巧430 优化EXISTS判式 技巧431 使用ALL判式把两个查询合二为一 技巧432 使用EXISTS判式检查表中的重复行 技巧433 把表内容和函数结果合并 技巧434 使用视图显示汇总级别的层次 技巧435 使用带标量子查询的SELECT语句显示流水总计 技巧436 使用EXCEPT判式确定两表差异 技巧437 使用EXISTS判式生成两表的交集第24章 探索MS-SQL Server的内建存储过程 技巧438 使用sp detaeh db和sp_attach_db在MS-SQL Server上删除和添加数据库 技巧439 使用MS-SQL Server的存储过程sp_addtype和sp_droptype添加和删除用户定义的数据类型 技巧440 使用sp 显示数据库对象属性help 技巧441 使用sp helptext显示定义存储过程、用户定义函数、触发器、默认值、规则或者视图的文本 技巧442 用sp depends显示定义视图的表和(或)视图 技巧443 使用sp helpconstraint显示有关表约束的信息 技巧444 使用sp pkeys显示表的PRIMARY KEY信息 技巧445 使用sp fkeys显示关于引用表的PRIMARY KEY的外键信息 技巧446 使用sp procoption控制MS.SQL Server启动时运行的存储过程 技巧447 使用sp spaceused显示分配给数据库或单独的数据库对象的已用与未用空间量 技巧448 使用sp helptfigger显示有关表上的触发器信息 技巧449 使用sp who和KILL命令控制运行在MS.SQL Server上的进程 技巧450 使用sp lock显示数据库所掌握的锁定信息 技巧451 使用sp password改变账户密码第25章 通过Internet处理SQL数据库中的数据 技巧452 使用sp makewebtask创建生成Web页面的任务 技巧453 为MS-SQL Server查询结果创建Web页面模板 技巧454 格式化由MS-SQL Server存储过程创建的Web页面上的查询结果表 技巧455 使用sp makewebtask在链接的Web页面上显示IMAGE和TEXT数据 技巧456 使用内建的存储过程启动或删除Web任务 技巧457 使用MS-SQL Server Web Assistant Wizard创建执行存储过程的Web任务 技巧458 下载并安装PHP 技巧459 建立数据源(DSN)与SQL DBMS的连接 技巧460 下载、安装并使用MyODBC驱动程序与MySQL数据库连接 技巧461 与MS-SQL Server或MySQL DBMS建立无DSN的连接 技巧462 使用ADO Connection对象执行SELECT语句设置访问Web站点的用户名/密码 技巧463 在Web页面上的HTML表中显示查询结果 技巧464 编写可重用的PHP例程在Web页面上显示查询结果 技巧465 通过HTML表单提交SQL查询 技巧466 使用HTML表单向SQL表中插入数据 技巧467 通过HTML表单更新及删除数据库数据 技巧468 从脚本内调用存储过程 技巧469 使用VBScript处理Recordset对象 技巧470 通过Internet处理SQL的事务处理过程 技巧471 创建与MS-SQL Server的虚拟连接 技巧472 使用HTTP执行SQL语句 技巧473 使用XML架构利用HTTP提交查询并使用XSL样式表来格式化查询结果 技巧474 显示保存在SQL表内的图像数据
无
买回来单位用的,非常实用的一本书。很棒。
讲的还行,能看的懂!讲的也挺全的!!!
15天了,,还没到~~~真郁闷!
这本书还不错,比较易学,易懂。
不错哦,原理分析的比较好.....写的比较实用.
好,讲得不叫全,而且也容易看懂.
到货时书面都是刮痕很旧的样子很多书都是这样像进过水似的