《SQL语言与数据库操作技术大全 基于SQL Server实现》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:马军,李玉林等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:7121062224
  • 页数:543 页
图书介绍:本书以应用广泛的SQL Server 2005数据库为依据,按照数据库操作的一般顺序,采用16章的篇幅,以基础介绍、数据库及表的创建、数据查询、数据操纵、数据控制、事务控制和数据库管理的顺序,由浅到深地介绍Transact-SQL语言。全书面向SQL与SQL Server的初学者,着重讲解Transact-SQL的基本和常用的使用语法,同时,结合大量的实例,并给出翔实的实例代码,便于读者实践操作,迅速掌握。另外,对一些难以理解的概念和复杂的语法,辅以翔实的理论讲解。因此,从某种意义上将,本书不仅仅是语法手册,还是学习手册。本书的特色决定了该书适用于学习SQL编程基础知识的任何读者,尤其适用于SQL新手和SQL Server数据库的初学者,对SQL Server数据库开发人员也有一定的参考价值。

第1章 数据库系统与SQL语言概述 1

1.1数据库系统与数据模型 2

1.1.1基本术语 2

1.1.2数据库技术的发展 3

1.1.3数据模型 5

1.2数据库系统的体系结构 6

1.2.1数据库系统的三级模式结构 6

1.2.2数据库管理系统(DBMS) 8

1.2.3数据库系统的工作流程 9

1.3关系数据库的简单介绍 10

1.3.1关系数据库的基本特性 10

1.3.2关系数据库的设计规范 11

1.4SQL语言概述 12

1.4.1SQL语言的发展 12

1.4.2SQL语言的功能 13

1.4.3SQL语言的执行形式 13

1.4.4SQL语句结构 14

1.4.5SQL的环境 15

1.4.6SQLDBMS的客户机/服务器模型 17

1.4.7SQL语言的扩展 18

1.5小结 19

第2章 Transact-SQL与SQLServer2005 20

2.1SQLServer2005及其简单应用 21

2.1.1SQLServer2005的版本 21

2.1.2SQLServerManagementStudio 22

2.1.3使用ManagementStudio创建数据库 23

2.1.4使用ManagementStudio创建、查看、编辑表 25

2.1.5使用ManagementStudio编辑、运行T-SQL语言 27

2.2Transact-SQL语言 28

2.2.1Transact-SQL概述 28

2.2.2Transact-SQL的标识符 29

2.2.3对象命名规则 29

2.2.4Transact-SQL的主要组成 30

2.2.5Transact-SQL的其他一些常用命令 32

2.3Transact-SQL在SQLServer中的执行 38

2.3.1解析Transact-SQL语句 38

2.3.2编译Transact-SQL语句 39

2.3.3执行Transact-SQL语句 39

2.4小结 40

第3章 数据库与表的操作 41

3.1创建、修改和删除数据库 42

3.1.1SQLServer数据库的组成 42

3.1.2创建数据库——CREATEDATABASE 43

3.1.3修改数据库——ALTERDATABASE 47

3.1.4查看数据库信息——sp_belpdb、spspaceused 49

3.1.5删除数据库——DROPDATABASE 52

3.2SQLServer中的表 52

3.2.1表的结构及设计 52

3.2.2Transact-SQL对表的要求 53

3.2.3表的类型 53

3.3SQLServer2005中的数据类型 54

3.3.1数字类型 55

3.3.2时间和日期类型 57

3.3.3字符数据类型 59

3.3.4二进制数据类型 60

3.3.5其他数据类型 60

3.3.6用户自定义数据类型 62

3.3.7数据类型同义词 63

3.4创建表(CREATETABLE) 64

3.4.1实例表设计 64

3.4.2创建基本表——CREATETABLE 65

3.4.3指定值非空——NOTNULL 67

3.4.4指定列的默认值——DEFAULT 68

3.5编辑表结构(ALTERTABLE) 70

3.5.1添加列或约束——ADD 70

3.5.2修改列的定义——ALTERCOLUMN 71

3.5.3删除列——DROPCOLUMN 72

3.6重命名、删除表 73

3.6.1改变表的名字——sp_rename 73

3.6.2删除基本表——DROPTABLE 74

3.7小结 74

第4章 基本的查询 75

4.1SELECT语句的结构与执行 76

4.1.1SELECT语句的语法结构 76

4.1.2SELECT各子句的顺序及功能 76

4.1.3SELECT语句各子句的执行 77

4.2最简单的查询 78

4.2.1向实例表中添加数据 78

4.2.2查询表中列的数据——FROM子句 79

4.2.3去除结果的重复信息——DISTINCT 80

4.2.4查询所有列——“*” 82

4.2.5进行无数据源检索 83

4.2.6返回查询的部分数据——TOP 83

4.3带有搜索条件的查询 85

4.3.1简单的选择查询——WHERE 85

4.3.2使用比较表达式 86

4.3.3使用基本的逻辑表达式——NOT、AND、OR 87

4.3.4空值(NULL)的判断——IS[NOT]NULL 93

4.3.5限定数据范围——BETWEEN 94

4.3.6限制检索数据的范围——IN 95

4.3.7模糊查询——LIKE 96

4.4排序查询结果 102

4.4.1基本排序——ORDERBY 102

4.4.2对多列进行排序 104

4.5小结 106

第5章 查询中表达式与函数的使用 107

5.1SQLServer中的运算符 108

5.1.1算术运算符 108

5.1.2位运算符 108

5.1.3比较运算符 109

5.1.4逻辑运算符 109

5.1.5字符串连接符 110

5.1.6赋值运算符 110

5.1.7运算符的优先级 110

5.2SELECT子句中表达式的使用 110

5.2.1使用连接符连接列——“+” 111

5.2.2操作查询的列名——“=”、“AS” 112

5.2.3对重命名列的操作 114

5.2.4算术表达式的使用 116

5.3数学函数的使用 117

5.3.1三角函数 117

5.3.2计算函数 118

5.3.3近似函数 119

5.4字符处理函数的使用 119

5.4.1SQLServer2005中的字符处理函数 120

5.4.2字符的转换处理函数 120

5.4.3字符串的提取函数 123

5.4.4其他字符串处理函数 127

5.5日期、时间处理函数的使用 129

5.5.1SQLServer2005中的日期处理函数 129

5.5.2获取当前时间——GETDATE、GETUTCDATE、CURRENTTIMESTAMP 130

5.5.3增加、减少时间——DATEADD 130

5.5.4获取时间间隔——DATEDIFF 131

5.5.5获取时间整数值——DAY、MONTH、YEAR、DATEPART 132

5.5.6获取时间的字符串——DATENAME 133

5.5.7常用的时间计算 134

5.6类型转换函数的使用 136

5.6.1类型转换——CAST 136

5.6.2类型转换——CONVERT 138

5.7小结 139

第6章 系统函数、聚合函数与分组查询 140

6.1系统函数的使用 141

6.1.1信息查询相关系统函数 141

6.1.2判断、分类系统函数 142

6.1.3统计系统函数 145

6.2聚合函数的使用 147

6.2.1聚合函数的种类 147

6.2.2计数函数——COUNT 147

6.2.3求和函数——SUM 149

6.2.4均值函数——AVG 149

6.2.5最大值/最小值函数——MAX/MIN 151

6.2.6统计函数——STDEV、STDEVP、VAR、VARP 152

6.2.7聚合函数的重值处理——ALL、DISTINCT 153

6.2.8聚合函数的执行机理 153

6.3分组查询 154

6.3.1简单分组——GROUPBY 154

6.3.2多列分组 155

6.3.3分组查询中NULL值的处理 156

6.3.4汇总数据运算符——CUBE、ROLLUP 157

6.3.5区分不同的NULL值——GROUPING 159

6.3.6筛选分组结果——HAVING 160

6.3.7多级分类汇总——COMPUTE 162

6.3.8对分组聚合结果进行聚合分析 164

6.4小结 166

第7章 数据连接与多表查询 167

7.1多表连接的基本概念与实现 168

7.1.1连接的概念 168

7.1.2连接的类型与实现 169

7.1.3创建实例表ReaderInfo 169

7.2简单多表查询的实现 171

7.2.1使用FROM子句实现多表查询 171

7.2.2使用WHERE子句指定连接条件 172

7.2.3使用别名作为表名的简写 173

7.2.4自连接表进行查询 174

7.3使用JOIN关键字实现表的连接 176

7.3.1基本连接语法 176

7.2.2内部连接——INNERJOIN 177

7.3.3外部连接——OUTERJOIN 178

7.3.4交叉连接——CROSSJOIN 183

7.3.5连接与空值 185

7.3.6表的连接与聚合分析 186

7.4集合运算 188

7.4.1关系的集合运算 188

7.4.2集合并运算——UNION 188

7.4.3多表的UNION操作 191

7.4.4UNION与JOIN的区别 192

7.4.5集合差/集合交运算——EXCEPT/INTERSECT 193

7.4.6集合运算在Transact-SQL语句中的使用原则 196

7.5小结 197

第8章 数据库数据操作 198

8.1向表中添加数据——INSERT 199

8.1.1INSERT命令的基本语法 199

8.1.2整行插入数据 200

8.1.3INSERT.操作中NULL值的处理 201

8.1.4INSERT操作中默认值的处理 202

8.1.5INSERT操作中唯一值的处理 203

8.1.6使用INSERT*SELECT插入数据 204

8.2修改和更新表中的数据——UPDATE 206

8.2.1UPDATE命令的基本语法 206

8.2.2使用UPDATE更新数据行 207

8.2.3使用FROM和WHERE子句根据多表连接更新数据 208

8.2.4大值数据类型字段值的更新 210

8.2.5使用OPENROWSET和BULK来操作大型数据对象 212

8.3删除表中的数据——DELETE 214

8.3.1DELETE命令的基本语法 214

8.3.2使用DELETE删除行 215

8.3.3使用TRUNCATETABLE删除表中的所有数据 216

8.4BLOB(text、ntext和image)数据处理 217

8.4.1写入BLOB数据——WRITETEXT 217

8.4.2更新BLOB数据——UPDATETEXT 219

8.4.3TEXTSIZE选项和@@TEXTSIZE函数 221

8.5OUTPUT子句 221

8.5.1基本语法 222

8.5.2OUTPUT子句的使用 222

8.6表中数据的复制和导入、导出操作 226

8.6.1复制表中数据——SELECT*INTO 226

8.6.2导入、导出数据——BCP工具 228

8.7小结 229

第9章 子查询及FORXML子句的使用 230

9.1子查询基础 231

9.1.1相关子查询与非相关子查询 231

9.1.2子查询的组成 233

9.1.3子查询的使用方式及限制 233

9.2比较运算符引入返回单值的子查询 234

9.2.1比较运算符引入子查询 234

9.2.2在子查询中使用聚合函数返回单值 236

9.3IN或修改的比较运算符引入返回多值的子查询 237

9.3.1使用[NOT]IN引入子查询 237

9.3.2使用修改的比较运算符引入返回多值的子查询 240

9.4EXISTS引入的存在测试子查询 244

9.4.1使用EXISTS的子查询 244

9.4.2EXISTS子查询的使用 245

9.4.3使用EXISTS子查询检查表中的重复行 247

9.5子查询的其他应用 247

9.5.1在子查询中使用TOP关键字 248

9.5.2在SELECT子句中使用子查询 249

9.5.3在HAVING子句中使用子查询 250

9.5.4在数据操作语言(DML)中使用子查询 252

9.6FORXML子句 253

9.6.1FORXML子句的基本语法 253

9.6.2FORXMLRAW模式及使用 254

9.6.3FORXMLAUTO模式及使用 256

9.6.4FORXMLEXPLICIT模式及使用 257

9.6.5FORXMLPATH模式及使用 260

9.6.6使用TYPE指令返回xml数据类型 263

9.6.7在数据操作语言(DML)中使用FORXML子句 263

9.7小结 264

第10章 表的约束、索引与视图 265

10.1表键及其使用 266

10.1.1表约束的种类 266

10.1.2约束的创建 266

10.1.3主键约束——PRIMARYKEY 267

10.1.4外键约束——FOREIGNKEY 269

10.1.5外键与级联引用完整性约束 273

10.1.6标识符列——IDENTITY属性 276

10.1.7查看、更改标识值——DBCCCHECKIDENT 278

10.2表的约束 279

10.2.1唯一性约束——UNIQUE 279

10.2.2校验约束——CHECK 281

10.2.3约束的删除、修改和禁用 282

10.3索引及其操作 285

10.3.1索引的基本知识 285

10.3.2创建索引——CREATEINDEX 287

10.3.3非聚集索引的创建和使用——NONCLUSTERED 288

10.3.4聚集索引的创建和使用——CLUSTERED 291

10.3.5聚集索引和非聚集索引的使用 292

10.3.6查看、修改和删除索引 293

10.3.7索引的使用准则 296

10.4视图及其应用 296

10.4.1视图的基本知识 297

10.4.2创建视图——CREATEVIEW 298

10.4.3查询视图的定义和相关信息 300

10.4.4修改、更新和删除视图 301

10.4.5通过视图修改表中记录 303

10.4.6索引视图及其使用 306

10.5小结 308

第11章 存储过程与用户自定义函数 309

11.1理解存储过程 310

11.1.1存储过程的基本概念 310

11.1.2存储过程的优点 310

11.1.3存储过程的种类 311

11.2程序流控制语句 311

11.2.1SQLServer中的程序流控制语句 311

11.2.2IF*ELSE条件选择结构 312

11.2.3BEGIN*END语句块 313

11.2.4CASE结构 313

11.2.5WHILE循环结构 315

11.2.6WAITFOR等待语句 316

11.3存储过程的创建和使用 317

11.3.1系统存储过程 317

11.3.2创建存储过程——CREATEPROCEDURE 317

11.3.3存储过程的创建实例 319

11.3.4执行存储过程——EXECUTE 321

11.3.5查看、修改和删除存储过程 323

11.4用户自定义函数的创建和使用 325

11.4.1创建标量型自定义函数 326

11.4.2创建内联表值自定义函数 327

11.4.3创建多语句表值自定义函数 328

11.4.4调用用户自定义函数 330

11.4.5修改、查询和删除自定义函数 331

11.5小结 333

第12章 触发器与错误处理 334

12.1触发器的基本概念 335

12.1.1触发器简介 335

12.1.2触发器的类型 335

12.1.3触发器的作用及使用 336

12.1.4触发器的执行环境 337

12.2创建和使用DML触发器 338

12.2.1AFTERDML触发器的创建语法 338

12.2.2AFTERDML触发器的创建实例 339

12.2.3测试对指定列的UPDATE操作 342

12.2.4INSTEADOFDML触发器的创建和使用 345

12.2.5嵌套触发器 348

12.2.6递归触发器 351

12.2.7查询DML触发器的相关信息 354

12.3创建和使用DDL触发器 356

12.3.1DDL触发器的创建语法 356

12.3.2DDL触发器的创建实例 357

12.3.3查询DDL触发器的相关信息 359

12.4触发器的管理 360

12.4.1使用系统存储过程查询触发器的相关信息 360

12.4.2修改触发器——ALTERTRIGGER 362

12.4.3禁用/启用触发器——DISABLE/ENABLETRIGGER 362

12.4.4设置触发器的激发顺序——sp_settriggerorder 363

12.4.5删除触发器——DROPTRIGGER 365

12.5错误的获取与处理 366

12.5.1查询错误消息——sys.messages 366

12.5.2使用用户自定义错误消息——sp_addmessage/sp_dropmessage 366

12.5.3激发错误消息——RAISERROR 368

12.5.4获取错误消息——TRY*CATCH/@@ERROR 369

12.6小结 371

第13章 安全性管理——主体、权限、安全对象 372

13.1SQLServer2005安全模式 373

13.1.1主体(Principals) 373

13.1.2安全对象(Securables) 378

13.1.3权限(Permissions) 379

13.2创建与管理Windows级别的主体 380

13.2.1创建Windows认证登录用户(组)——CREATELOGIN 380

13.2.2查看Windows认证登录用户 381

13.2.3修改Windows认证登录用户——ALTERLOGIN 382

13.2.4删除Windows认证登录用户——DROPLOGIN 383

13.3创建与管理SQLServer级别的主体 383

13.3.1创建SQLServer认证登录用户——CREATELOGIN 383

13.3.2修改SQLServer认证登录用户——ALTERLOGIN 385

13.3.3查询服务器角色信息 386

13.3.4管理服务器角色信息 387

13.4创建与管理数据库级别的主体 389

13.4.1创建数据库用户——CREATEUSER 389

13.4.2修改、删除数据库用户——ALTER/DROPUSER 391

13.4.3管理数据库用户 392

13.4.4管理固定数据库角色 394

13.4.5管理用户自定义数据库角色 396

13.4.6管理应用程序角色 397

13.5安全对象与权限 400

13.5.1SQLServer的内置权限 400

13.5.2服务器范围的安全对象及其权限管理 401

13.5.3数据库范围的安全对象及其权限管理 404

13.5.4架构范围的安全对象及其权限管理 405

13.5.5对象类安全对象及其权限管理 411

13.6主体、安全对象和权限的管理 413

13.6.1评估当前用户对安全对象的有效权限——Has_perms_by_name 414

13.6.2查询当前用户对安全对象的有效权限——fn_my_permissions 415

13.6.3创建凭据——CREATECREDENTIAL 416

13.7小结 417

第14章 事务控制和并发处理 418

14.1事务控制的基本概念 419

14.1.1事务控制的必要性 419

14.1.2事务的ACID特性及实现 419

14.1.3事务的状态 420

14.1.4Transact-SQL中事务的执行 421

14.2SQLServer中事务的实现 422

14.2.1启动事务——BEGINTRANSACTION 422

14.2.3提交事务——COMMITTRANSACTION 424

14.2.3回滚事务——ROLLBACKTRANSACTION 426

14.2.4设置事务的保存点——SAVETRANSACTION 428

14.3并发控制及其实现 430

14.3.1并发访问的问题 430

14.3.2SQLServer中的锁 432

14.3.3锁的使用 433

14.3.4显示数据库中活跃的事务和锁信息——DBCCOPENTRAN 436

14.3.5事务隔离级别 438

14.3.6设置事务隔离级别——SETTRANSATION 439

14.3.7不同事务隔离级别实现并发控制实例 440

14.3.8事务阻塞及其解决方法 448

14.3.9死锁及其预防 451

14.4小结 454

第15章 游标与全文检索 455

15.1游标的基本概念 456

15.1.1游标的概念 456

15.1.2游标的实现及应用过程 457

15.2基本游标的创建和使用 458

15.2.1创建游标——DECLARECURSOR 458

15.2.2打开游标——OPEN 459

15.2.3检索游标数据——FETCH 459

15.2.4关闭/删除游标——CLOSE/DEALLOCATE 460

15.2.5遍历游标结果集——@@FETCH_STATUS 462

15.2.6使用游标修改、删除数据 463

15.3Transact-SQL扩展游标与游标的管理 465

15.3.1Transact-SQL扩展游标语法 465

15.3.2使用游标变量 467

15.3.3事务中游标的使用 469

15.3.4游标的管理 470

15.4全文检索基础 471

15.4.1全文索引和全文目录 471

15.4.2创建全文目录——CREATEFULLTEXTCATALOG 472

15.4.3创建全文索引——CREATEFULLTEXTINDEX 473

15.5使用全文谓词和全文函数进行全文检索 474

15.5.1使用CONTAINS谓词进行全文检索 474

15.5.2使用FREETEXT谓词进行全文检索 477

15.5.3使用全文函数——CONTAINSTABLE、FREETEXTTABLE 478

15.6小结 479

第16章 服务器和数据库的配置与管理 480

16.1管理服务器配置选项 481

16.1.1查询服务器配置选项 481

16.1.2更改服务器配置选项 483

16.2管理数据库配置选项 484

16.2.1查询数据库信息 484

16.2.2自动选项及其设置 485

16.2.3ANSISQL选项及其设置 487

16.2.4外部数据源对数据库的访问选项 488

16.2.5游标选项及其设置 489

16.2.6数据库恢复选项和磁盘I/O错误检查 490

16.2.7控制数据库的状态和属性 491

16.2.8数据库磁盘空间管理 493

16.3数据库的维护 497

16.3.1检查磁盘空间分配结构的一致性——DBCCCHECKALLOC 497

16.3.2检查数据库对象的结构和逻辑完整性——DBCCCHECKDB 498

16.3.3检查文件组分配和结构完整性——DBCCCHECKFILEGROUP 500

16.3.4检查页和结构的完整性——DBCCCHECKTABLE 501

16.3.5检查约束的完整性——DBCCCHECKCONSTRAINTS 502

16.4数据库的备份与恢复 504

16.4.1数据库备份与恢复的基本概念 504

16.4.2备份操作相关的Transact-SQL语句 506

16.4.3完整备份——BACKUPDATABASE 507

16.4.4创建逻辑备份设备——sp_addumpdevice 510

16.4.5事务日志备份——BACKUPLOG 511

16.4.6差异备份——DIFFERENTIAL 513

16.4.7文件备份 514

16.4.8部分备份——READ_WRITE_FILEGROUPS 516

16.4.9查询备份集的元数据 517

16.4.10数据库还原——RESTOREDATABASE 519

16.5信息架构视图 524

16.5.1信息架构视图简介 524

16.5.2TABLES信息架构视图 525

16.5.3VIEWS信息架构视图 526

16.5.4COLUMNS信息架构视图 527

16.5.5ROUTINES信息架构视图 529

16.6小结 530

附录A标准的SQL语句 531

附录BSQLServer的全局变量 533

附录CSET语句及功能 540

第2章 Transact-SQL与SQL 20

实例1使用PRINT命令显示信息 33

实例2使用READTEXT命令读取指定的字节数 34

实例3使用SETSTATISTICSIO命令 35

实例4使用SETSTATISTICSTIME命令 36

实例5使用SETROWCOUNT命令控制查询记录数量 37

第3章 数据库与表的操作 41

实例1使用CREATEDATABASE创建数据库 45

实例2向数据库中添加由两个文件组成的文件组 48

实例3修改数据库文件 48

实例4查看Library数据库的信息 49

实例5查看服务器中的所有数据库的信息 50

实例6查看数据库表的磁盘空间信息 50

实例7查看数据库的磁盘空间信息 51

实例8使用货币数据类型 55

实例9使用SETDATEFORMAT更改日期的输入格式 58

实例10使用sp_addtype自定义数据类型 62

实例11创建简单的BookInfo表 66

实例12创建BookInfo表,指定数据的长度和精度 67

实例13创建BookInfo表,指定数据的长度和精度 68

实例14创建BookInfo表,指定默认值 69

实例15修改BookInfo表,添加新列 70

实例16修改Booklnfo表中列的定义 71

实例17删除BookInfo表中的某列 72

实例18重命名数据库表和其中的列 73

第4章 基本的查询 75

实例1查询单列数据 79

实例2查询多列数据 80

实例3查询BookInfo表中所有的图书名称(去除重复值) 81

实例4DISTINCT对NULL值的处理 81

实例5查询BookInfo表中所有列的记录 82

实例6使用SELECT语句查看常量 83

实例7使用SELECT语句查看全局变量 83

实例8查询BookInfo表的前6行记录 84

实例9查询BookInfo表的bookname、bookid、price的前60%条记录 84

实例10查询BookInfo表中publish列科学出版社的记录 85

实例11查询BookInfo表中价格不超过50元的图书记录 86

实例12使用比较运算符,比较字符串 86

实例13不等于运算符“<>”的使用 87

实例14使用AND运算符进行多条件查询 88

实例15使用OR运算符进行多条件查询 89

实例16使用NOT运算符进行多条件查询 90

实例17NOT运算符对NULL值的处理 91

实例18逻辑运算符的优先级 92

实例19使用IS[NOT]NULL判别式处理NULL值 93

实例20使用BETWEEN限定数据范围查询 94

实例21使用BETWEEN运算符限定时间范围查询 95

实例22使用IN限定检索数据的范围 96

实例23使用“%”通配符进行模糊查询 97

实例24使用“%”通配符实现头、尾匹配 97

实例25使用“%”通配符实现排除查询 98

实例26使用“_”通配符实现模糊查询 98

实例27使用“_”通配符实现固定数目字符查询 99

实例28使用“[]”通配符实现模糊查询 100

实例29使用“[^]”通配符实现模糊查询 101

实例30基本排序操作 102

实例31降序排序操作 103

实例32使用查询列之外的列,进行排序操作 104

实例33对多列进行排序操作 104

实例34使用序号对多列进行排序操作 105

第5章 查询中表达式与函数的使用 107

实例1使用“+”连接符连接列 111

实例2NULL字段的连接 112

实例3使用ANSI规则的标准方法重命名列 112

实例4使用“=”为列重命名 113

实例5使用AS为列重命名 114

实例6使用别名对列进行排序 114

实例7在查询中使用算术运算 116

实例8三角函数的使用 118

实例9计算函数的使用 118

实例10近似函数的使用 119

实例11使用ASCII函数获取ASCII码值 121

实例12使用CHAR函数将ASCII值转换为字符 121

实例13使用UPPER函数将字符串的英文字符转换为大写 122

实例14使用STR函数转换数字数据后实现多列连接 123

实例15使用SUBSTRING函数提取字符串 124

实例16使用LTRIM和RTRIM函数去除字符串中的前、后向空格 124

实例17使用CHARINDEX函数查找指定串的位置 125

实例18使用PATINDEX函数实现模糊查询 126

实例19使用REPLACE函数替换指定的串 126

实例20使用LEN函数获取指定串的字符数 127

实例21使用REVERSE函数反向输出字符串 128

实例22使用SOUNDEX和DIFFERENCE函数判断字符串的相似性 128

实例23获取当前时间 130

实例24使用DATEADD函数增加、减少时间 131

实例25使用DATEDIFF函数获取时间间隔 132

实例26提取指定时间的年、月、日的整数值 132

实例27使用DATEPART函数获取当前时间星期几、小时、分钟的整数值 133

实例28使用DATENAME函数获取日期指定部分的字符串 133

实例29获取当前月的第一天的日期 134

实例30判断本周的星期一的日期 135

实例31判断上个月的最后一天日期 135

实例32使用CAST函数转换数据类型 137

实例33使用CAST函数转换日期时间类型为字符串 137

实例34使用CONVERT函数转换日期时间类型 139

第6章 系统函数、聚合函数与分组查询 140

实例1查询当前服务器和数据库的相关信息 141

实例2使用APPNAME判断当前会话的应用程序 142

实例3判断列中的数据是否为日期、数值类型 143

实例4使用ISNULL函数替换表中的空值 144

实例5判断列名、列的定义长度和表中字段数据的字节数 145

实例6使用统计系统函数统计数据库服务的相关信息 146

实例7使用COUNT函数获取表中记录的数目 148

实例8使用COUNT函数实现对满足某种条件的记录计数 148

实例9使用SUM函数进行求和计算 149

实例t0使用AVG函数进行求均值计算 150

实例11AVG函数用作子查询 150

实例12MAX和MIN函数的使用 151

实例13获取拥有极值的记录 151

实例14获取记录的标准偏差 152

实例15聚合函数的重值处理 153

实例16简单的分组 154

实例17根据多列进行分组 156

实例18GROUPBY子句对NULL值的处理 157

实例19使用CUBE运算符进行数据汇总 157

实例20使用ROLLUP运算符进行数据汇总 158

实例21使用GROUPING函数判断NULL值 159

实例22使用HAVING子句筛选分组结果 161

实例23使用不带BY子句的COMPUTE子句汇总数据 162

实例24使用带有BY子句的COMPUTE子句汇总数据 163

实例25使用全局临时表实现对分组聚合结果进行聚合分析 165

实例26使用视图实现对分组聚合结果进行聚合分析 165

第7章 数据连接与多表查询 167

实例1典型的二表连接演示 168

实例2使用FROM子句直接实现二表连接 171

实例3使用WHERE子句指定连接表的连接条件 172

实例4使用表别名简化表的连接 173

实例5表的自连接的使用 174

实例6分步实现实例5 175

实例7采用子查询的方法实现实例5 175

实例8使用INNERJOIN实现同等连接 177

实例9使用INNERJOIN实现自连接 178

实例10使用LEFTOUTERJOIN实现左外部连接表 179

实例11使用RIGHTOUTERJOIN实现右外部连接表 181

实例12使用FULLOUTERJOIN实现全外部连接表 183

实例13使用CROSSJOIN实现交叉连接表 184

实例14表连接中,NULL值的匹配 185

实例15外部连接NULL值的判断 186

实例16连接表并对其数据进行聚合分析 186

实例17使用UNION运算符执行集合并的运算 189

实例18使用UNION运算符连接常量和变量结果集 190

实例19典型的二表记录的UNION运算 192

实例20使用EXCEPT运算符实现集合差运算 194

实例21使用INTERSECT运算符实现集合交运算 195

实例22EXCEPT和INTERSECT运算符的优先级 195

实例23使用ORDERBY子句对集合运算结果排序 196

第8章 数据库数据操作 198

实例1使用INSERT命令向Books表中添加记录 200

实例2INSERT插入带有空值的记录 201

实例3INSERT插入采用默认值的记录 202

实例4带有唯一值(UNIQUE)的记录的插入 203

实例5使用INSERT...SELECT向表中添加数据 204

实例6使用INSERT...SELECT实现查找表 205

实例7使用UPDATE更新表中的一行数据 207

实例8使用UPDATE更新表中的多行数据 208

实例9在UPDATE语句中使用FROM子句进行更新操作 209

实例10大值数据类型的操作 210

实例11使用OPENROWSET和BULK实现图像文件的操作 213

实例12使用DELETE删除表中的行 215

实例13在DELETE语句中使用FROM子句进行删除操作 215

实例14使用TRUNCATETABLE语句删除表中的所有数据 216

实例15使用WRITETEXT语句写入BLOB数据 218

实例16使用UPDATETEXT语句更新BLOB数据 220

实例17使用SETTEXTSIZE命令设置显示BLOB的字节数 221

实例18将OUTPUT子句用于INSERT语句 223

实例19将OUTPUT子句用于DELETE语句 224

实例20将OUTPUT子句用于UPDATE语句 225

实例21使用OUTPUT子句返回表达式 226

实例22用SELECT...INTO语句实现表的复制 227

第9章 子查询及FOR XML子句的使用 230

实例1非相关子查询的使用实例 231

实例2相关子查询的使用实例 232

实例3由比较运算符引入子查询 235

实例4由比较运算符引入带有聚合函数的子查询 236

实例5比较运算符两边均使用聚合函数的子查询 236

实例6使用IN引入子查询实现表的连接 238

实例7使用IN引入子查询实现集合交操作 239

实例8使用NOTIN引入子查询实现集合差操作 240

实例9使用>ANY引入返回多值的子查询 241

实例10<>ANY、<>ALL与NOTIN的使用 243

实例11使用EXISTS引入存在测试子查询 245

实例12EXISTS子查询中使用NULL仍然返回结果集 246

实例13使用EXISTS引入子查询实现集合交操作 246

实例14使用EXISTS进行唯一性测试 247

实例15在子查询中使用TOP关键字 248

实例16在SELECT子句中使用子查询 249

实例17在HAVING子句中使用相关子查询 250

实例18在UPDATE语句中使用子查询 252

实例19使用FORXMLRAW模式返回XML结果 254

实例20使用FORXMLAUTO模式返回XML结果 256

实例21使用FORXMLEXPLICIT模式返回XML结果 258

实例22使用FORXMLPATH模式返回XML结果 260

实例23使用TYPE指令返回XML数据 263

实例24在INSERT语句的子查询中使用FORXML子句 263

第10章 表的约束、索引与视图 265

实例1为列创建PRIMARYKEY约束 267

实例2为多列创建联合PRIMARYKEY约束 269

实例3FOREIGNKEY约束的创建与使用 270

实例4组合外键约束的使用 271

实例5级联引用完整性约束的使用 275

实例6使用IDENTITY属性指定标识列 277

实例7使用DBCCCHECKIDENT语句查看、更改标识值 278

实例8UNIQUE约束的创建与使用 280

实例9CHECK约束的创建与使用 281

实例10为已有表添加PRIMARYKEY 282

实例11删除表中的约束 283

实例12禁用表中的CHECK约束 283

实例13创建唯一非聚集索引 288

实例14强制使用非聚集索引 290

实例15创建唯一聚集索引 291

实例16查看ReaderInfo3表中的索引信息 293

实例17重命名ReaderInfo3表中的索引INDreaderid 294

实例18使用ALTERINDEX语句禁用索引 295

实例19使用CREATEVIEW语句创建标准视图 299

实例20从sys.sql_modules目录视图查询视图的定义 300

实例21查询当前数据库的所有视图及包含的列 300

实例22使用sphelp查询视图的特征 301

实例23使用ALTERVIEW修改视图 302

实例24通过视图向表中添加数据 303

实例25通过视图修改表中的数据 304

实例26通过视图删除表中的数据 305

实例27索引视图的创建和使用 307

第11章 存储过程与用户自定义函数 309

实例1IF...ELSE语句的使用 312

实例2简单CASE表达式的使用 313

实例3搜索CASE表达式的使用 314

实例4WHILE循环结构的使用 315

实例5创建不带任何参数的存储过程 319

实例6创建带有输入参数的存储过程 319

实例7创建带有输出参数的存储过程 320

实例8使用EXECUTE执行存储过程 321

实例9查询数据库中所有存储过程的信息 323

实例10使用ALTERPROCEDURE命令修改存储过程 324

实例11创建标量型自定义函数 327

实例12创建内联表值自定义函数 328

实例13创建多语句表值自定义函数 329

实例14返回标量值的用户自定义函数的调用 330

实例15查询当前数据库中所有用户自定义函数的相关信息 332

第12章 触发器与错误处理 334

实例1创建AFTERDML触发器 339

实例2创建AFTERDML触发器保证数据的完整性 341

实例3在触发器中使用UPDATE()测试特定列的更新 343

实例4在触发器中使用COLUMNS_UPDATED测试特定列的更新 344

实例5为视图创建INSTEADOF触发器 345

实例6创建和使用嵌套DML触发器 348

实例7创建和使用递归DML触发器 352

实例8从系统目录视图sys.triggers查询DML触发器的信息 354

实例9从系统目录视图sys.sql_modules查询DML触发器的定义文本 355

实例10创建数据库作用域的DDL触发器 357

实例11创建服务器作用域的DDL触发器 358

实例12查询Library数据库中的所有数据库作用域的DDL触发器 359

实例13查询所有服务器作用域的DDL触发器的信息 360

实例14使用sphelp查询触发器的基本信息 361

实例15使用sp_helptext查看触发器的定义文本 361

实例16使用sp_depends查询指定触发器引用的表 362

实例17使用sp_settriggerorder设定触发器的激发顺序 364

实例18从系统目录视图sys.messages中查询错误消息 366

实例19使用sp_addmessage创建自定义错误消息 367

实例20使用TRY.CATCH结构获取错误信息 370

实例21使用@@ERROR检测一个特定错误 371

第13章 安全性管理——主体、权限、安全对象 372

实例1使用CREATELOGIN创建Windows认证登录用户 381

实例2查询当前服务器的Windows认证登录用户(组)信息 382

实例3使用CREATELOGIN创建SQLServer认证登录用户 384

实例4使用ALTERLOGIN修改SQLServer用户 385

实例5在目录视图sys.server_pnncipals中,查询固定服务器角色 386

实例6将登录名添加到固定服务器角色 388

实例7查询服务器角色中的成员信息 388

实例8使用CREATEUSER语句创建数据库用户 390

实例9查询登录用户及其对应的数据库用户 393

实例10使用sp_change_users_login链接数据库用户与登录用户 394

实例11使用sp_helpdbfixedrole查询数据库角色的名称及其描述信息 395

实例12使用CREATEROLE创建自定义数据库角色 396

实例13向角色授予权限并添加角色成员 397

实例14创建应用程序角色并授予权限 398

实例15使用sp_setapprole激活应用程序角色 399

实例16使用sys.fnbuiltin_permissions查询内置权限 400

实例17架构的创建和使用 407

实例18查询数据库中的架构及其拥有者 410

实例19数据库对象权限管理 412

实例20使用Has_perms_by_name评估当前用户对安全对象的有效权限 414

实例21使用fn_my_permissions查询用户对安全对象的所有操作权限 415

第14章 事务控制和并发处理 418

实例1使用SETIMPLICIT_TRANSACTIONS开启隐式事务 423

实例2嵌套事务的提交与@@TRANCOUNT值 425

实例3嵌套事务的回滚与@@TRANCOUNT值 427

实例4在事务中使用保存点 429

实例5使用表级锁进行并发控制 434

实例6查询数据库中活跃的事务和锁的信息 437

实例7READUNCOMMITTED隔离级别下的并发访问 441

实例8READCOMMITTED隔离级别下的并发访问 443

实例9REPEATABLEREAD隔离级别下的并发访问 445

实例10SERIALIZABLE隔离级别下的并发访问 446

实例11阻塞的产生 448

实例12死锁的产生 451

第15章 游标与全文检索 455

实例1游标的基本概念 456

实例2基本游标的创建及其使用 461

实例3遍历游标的结果集 462

实例4使用游标更新数据 464

实例5使用游标变量作为存储过程的输出参数 468

实例6事务中游标的使用 469

实例7使用sp_cursorlist查询当前服务器游标的属性 470

实例8创建全文索引 473

实例9使用CONTAINS谓词进行全文检索 475

实例10使用CONTAINSTABLE函数进行全文检索 478

第16章 服务器和数据库的配置与管理 480

实例1使用sp_configure查询服务器的配置选项 481

实例2使用sp_configure更改服务器的配置选项 483

实例3使用sys.databases查询数据库配置信息 485

实例4设置数据库的自动选项 486

实例5设置数据库的ANSISQL选项 488

实例6查询数据库的恢复模式 490

实例7查询数据库的I/O错误检查模式 491

实例8查询数据库的工作状态 492

实例9查询用户对数据库的访问属性 493

实例10查询所有数据库中使用事务日志空间的统计信息 494

实例11使用DBCCSHRINKDATABASE语句收缩数据库 495

实例12使用DBCCCHECKALLOC检查数据库空间的一致性 498

实例13使用DBCCCHECKDB检查数据库对象的分配、结构和逻辑完整性 499

实例14使用DBCCCHECKFILEGROUP检查文件组的完整性 500

实例15使用DBCCCHECKTABLE检查页和结构的完整性 502

实例16使用DBCCCHECKCONSTRAINTS检查表约束的完整性 503

实例17使用BACKUPDATABASE完整备份数据库 508

实例18通过逻辑备份设备完整备份数据库 510

实例19完整备份数据库和日志 513

实例20对数据库TestDB实现完整差异备份 514

实例21进行数据库文件备份 515

实例22对数据库进行部分备份 516

实例23查询备份集的元数据信息 518

实例24在完整恢复模式下完整备份和还原数据库 521

实例25从TABLES视图中查询当前用户可访问的Library数据库表信息 526

实例26从VIEWS视图中查询当前用户可访问的Library数据库视图信息 527

实例27从COLUMNS视图中查询Library.dbo.BookInfo表中的列信息 528

实例28从ROUTINES视图中查询Library数据库中存储过程和函数信息 530