SQL语言参考大全
分類: 图书,计算机/网络,数据库,SQL,
作者: 梁冰,陈丹丹,苏宇 编著
出 版 社: 人民邮电出版社
出版时间: 2008-10-1字数: 1340000版次: 1页数: 776印刷时间: 2008/10/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115184726包装: 平装内容简介
本书是一本介绍SQL语言的综合参考手册,书中几乎囊括了使用SQL进行数据库开发和管理的各种技术,涉及当前流行的SQL Server 2000、SQL Server 2005、Oracle和MySQL 4种数据库。全书共分25章,包括数据库配置与管理、使用企业管理器管理数据库、SQL语言基础、管理数据库与数据表、添加数据、修改和删除数据、SQL基本查询、复杂查询、数据排序、数据统计分析、子查询、多表连接查询、聚合与旋转数据、视图、存储过程、自定义函数、触发器、游标、事务、索引、聚合函数、数学函数、字符串处理函数、日期时间处理函数和类型转换函数等内容。书中各部分技术既相对独立又相互联系,可以逐步引导读者深入学习并掌握SQL编程的各种知识、方法和技巧。
本书附有配套光盘。光盘提供了书中实例的全部源代码,这些源代码都经过精心调试,在Windows 2000下测试通过,保证能够正常运行。
本书内容精炼、重点突出、实例丰富,是从事数据库开发人员的必备参考书,同时也非常适合大、中专院校师生阅读。
目录
第1章数据库配置与管理1
1.1安装数据库2
1.1.1安装SQL Server数据库2
1.1.2基于Windows系统安装Oracle数据库9
1.1.3基于Linux系统安装Oracle数据库28
1.1.4基于Windows系统安装MySQL数据库31
1.1.5基于Linux系统安装MySQL数据库35
1.2配置SQL Server服务器37
1.2.1创建服务器组37
1.2.2注册服务器38
1.2.3管理SQL Server服务41
1.2.4修改SQL Server登录方式42
1.2.5配置网络连接45
1.3远程访问SQL Server45
1.3.1建立SQL Server虚拟目录45
1.3.2通过HTTP访问SQL Server48
1.3.3通过代理服务器访问SQL Server48
1.3.4客户端远程访问SQL Server49
1.4SQL Server管理工具49
1.4.1使用查询分析器49
1.4.2使用事件探查器53
1.4.3bcp实用工具54
1.4.4isql实用工具55
1.4.5isqlw实用工具57
1.4.6osql实用工具58
1.4.7scm实用工具59
1.4.8sqlservr应用程序61
1.5远程访问Oracle61
1.5.1服务器端网络配置(配置监听器)62
1.5.2客户端网络配置(配置本地命名方式)63
1.6Oracle管理工具65
1.6.1SQL*Plus工具65
1.6.2SQL*Plus Worksheet工具66
1.7配置MySQL服务器67
1.7.1启动和关闭MySQL服务器67
1.7.2管理MySQL用户账户68
1.8MySQL管理工具69
1.8.1MySQL命令行工具69
1.8.2MySQL服务器实例配置向导工具70
1.9生成和执行脚本70
1.9.1生成SQL Server数据库脚本70
1.9.2执行SQL Server数据库脚本72
1.9.3生成MySQL数据库脚本72
1.9.4执行MySQL数据库脚本73
第2章使用企业管理器管理数据库75
2.1企业管理器76
2.1.1SQL Server企业管理器76
2.1.2Oracle企业管理器76
2.2创建数据库对象77
2.2.1创建数据表77
2.2.2创建视图79
2.2.3创建存储过程81
2.2.4创建触发器81
2.3备份和恢复数据库83
2.3.1备份SQL Server数据库83
2.3.2还原SQL Server数据库85
2.3.3备份Oracle数据库86
2.3.4还原Oracle数据库89
2.4导入和导出数据91
2.4.1从SQL Server中导入数据表91
2.4.2从SQL Server中导出数据表94
2.4.3从Oracle中导出数据表95
2.4.4从Oracle中导入数据表98
第3章SQL语言基础103
3.1SQL语言概述104
3.1.1SQL概述104
3.1.2SQL语言的组成104
3.1.3SQL语句结构106
3.1.4T-SQL语句分类106
3.2数据类型107
3.2.1整数数据类型107
3.2.2浮点数据类型107
3.2.3字符数据类型108
3.2.4日期和时间数据类型109
3.2.5货币数据类型109
3.2.6二进制数据类型110
3.2.7文本和图像数据类型110
3.2.8用户自定义类型110
3.3常量112
3.3.1数值常量112
3.3.2字符串常量112
3.3.3日期和时间常量112
3.4变量112
3.4.1局部变量112
3.4.2全局变量114
3.5运算符116
3.5.1算术运算符116
3.5.2赋值运算符117
3.5.3逻辑运算符118
3.6流程控制语句119
3.6.1语句块BEGIN...END119
3.6.2IF条件选择语句121
3.6.3IF...ELSE122
3.6.4CASE分支选择语句124
3.6.5WHILE循环语句127
3.6.6WHILE...CONTINUE...BREAK循环128
3.6.7RETURN129
3.6.8GOTO130
3.6.9WAITFOR131
3.7常用命令132
3.7.1DBCC命令132
3.7.2CHECKPOINT命令134
3.7.3DECLARE命令134
3.7.4PRINT命令136
3.7.5RAISERROR命令139
3.7.6READTEXT命令139
3.7.7BACKUP命令140
3.7.8SELECT命令141
3.7.9SET命令143
3.7.10SHUTDOWN命令144
3.7.11WRITETEXT命令145
3.7.12USE命令145
第4章管理数据库与数据表147
4.1数据库管理148
4.1.1创建数据库148
4.1.2修改数据库152
4.1.3删除数据库158
4.2数据表管理159
4.2.1创建数据表160
4.2.2查看数据表167
4.2.3修改数据表169
4.2.4删除数据表177
第5章添加数据179
5.1插入单行记录180
5.1.1INSERT语句基本语法180
5.1.2插入整行数据180
5.1.3插入NULL值181
5.1.4惟一值的插入181
5.1.5特定字段数据插入182
5.1.6插入默认值184
5.1.7插入日期数据184
5.1.8通过视图插入行186
5.1.9向表中插入记录时注意指定的不同的字段顺序186
5.1.10插入的数据类型值与实际中的数据类型不匹配时,系统将输出错误提示187
5.1.11向表中插入字段的个数少于表中实际字段的个数,有时会出错188
5.2插入多行记录189
5.2.1插入多行记录的语法格式189
5.2.2使用VALUES关键字引入多行数据插入189
5.2.3使用SELECT语句插入值190
5.3表中数据的复制191
5.3.1基本语法191
5.3.2表中数据的复制应用191
5.4将SQL Server中数据导出到记事本中192
5.5将SQL Server中的数据导入/导出到Excel数据表中193
5.5.1从Excel导入数据到SQL Server中193
5.5.2从SQL Server中将数据导出到Excel数据表中194
5.6将SQL Server中的数据导入/导出到ACCESS中196
5.6.1从ACCESS导入数据到SQL Server中196
5.6.2将SQL Server中的数据导出到ACCESS中197
第6章修改和删除数据199
6.1UPDATE语句的基本语法200
6.2使用UPDATE语句更新列值202
6.3利用子查询更新行中的值205
6.3.1语法格式205
6.3.2利用子查询返回的行数不多于一行(只返回一个值)205
6.3.3利用子查询返回多行(返回多个值)206
6.3.4利用内连接查询来更新数据表中的信息207
6.4依据外表值更新数据209
6.5赋值UPDATE210
6.5.1使用UPDATE为表中所有行中的数据赋值(省略WHERE子句)210
6.5.2使用UPDATE为表中的多行数据赋值211
6.5.3使用UPDATE为表中的一行数据赋值(WHERE子句不能省)211
6.6分步更新表中的数据212
6.7修改指定字段的数据值214
6.7.1修改指定datetime类型字段内的数据214
6.7.2修改指定int类型字段内的数据215
6.7.3修改指定varchar类型字段内的数据215
6.7.4修改指定float类型字段内的数据216
6.8DELETE语句的基本语法217
6.9使用DELETE语句删除数据217
6.9.1使用DELETE语句删除所有数据(省略WHERE子句)217
6.9.2使用DELETE语句删除多行数据219
6.9.3DELETE语句删除单行数据(WHERE子句不能省)220
6.10删除重复行221
6.10.1删除完全重复行221
6.10.2删除部分重复行222
6.11使用TRUNCATE TABLE语句删除数据224
6.12使用DELETE语句中带有的TOP子句224
6.13删除指定字段数据为空的记录225
6.14通过视图更新表226
6.14.1通过视图更新表数据226
6.14.2通过视图删除表数据228
第7章SQL的基本查询229
7.1简单查询230
7.1.1SELECT语句基本结构230
7.1.2单列查询230
7.1.3多列查询231
7.1.4查询所有的列232
7.1.5别名的应用232
7.1.6使用TOP查询前若干行235
7.1.7除掉重复列237
7.2计算列查询238
7.2.1连接列值238
7.2.2查询中使用计算列238
7.2.3查询中使用表达式240
7.3条件查询242
7.3.1WHERE子句242
7.3.2使用“=”查询数据242
7.3.3使用“”查询数据243
7.3.4使用“”查询数据243
7.3.5使用“=”查询数据244
7.3.6使用“=”查询数据244
7.3.7使用“!”查询数据245
7.3.8使用“!”查询数据245
7.3.9使用“!=”和“”查询数据245
7.4范围查询(BETWEEN)246
7.4.1查询两数之间的数据246
7.4.2查询两个日期之间的数据247
7.4.3在BETWEEN中使用日期函数247
7.4.4查询不在两数之间的数据248
7.5逻辑运算符249
7.5.1使用AND运算符249
7.5.2使用OR运算符250
7.5.3使用NOT运算符251
7.5.4使用OR、AND进行查询252
7.6格式化结果集252
7.6.1格式化日期253
7.6.2格式化小数位数253
7.6.3除去空格254
第8章复杂查询257
8.1模糊查询258
8.1.1LIKE谓词258
8.1.2“%”通配符的使用259
8.1.3“_”通配符的使用259
8.1.4“[]”通配符的使用260
8.1.5“[^]”通配符的使用260
8.1.6ESCAPE转义字符261
8.2IN运算符262
8.2.1使用IN查询数据263
8.2.2在IN中使用运算263
8.2.3在IN中使用列进行查询264
8.2.4使用NOT IN查询数据264
8.2.5使用NOT IN查询后两行数据265
8.3行查询266
8.3.1随机查询一行数据266
8.3.2结果集中添加行号267
8.3.3查询隔行数据268
8.3.4查询指定范围内的所有行数据269
8.4空值(NULL)判断270
8.4.1查询空值(IS NULL)270
8.4.2查询非空值(IS NOT NULL)271
8.4.3对空值进行处理271
8.5对结果集操作273
8.5.1利用结果集创建永久表273
8.5.2利用结果集创建临时表274
8.6复杂条件查询274
8.6.1查询表中的第n行数据274
8.6.2查询考试成绩最高的分数276
8.6.3查询各部门人数277
8.6.4查询各部门基本工资最低的员工278
第9章数据排序279
9.1数值数据排序280
9.1.1按升序和降序排列280
9.1.2按列别名排序281
9.1.3在ORDER BY子句中使用表达式283
9.1.4按空值排序283
9.1.5对多列排序287
9.1.6对数据表中的指定行数进行排序289
9.2字符串排序293
9.2.1按字符串中的子串排序293
9.2.2按字符串中的数值排序298
9.3汉字排序299
9.3.1排序规则简介299
9.3.2按姓氏笔画排序300
9.3.3按拼音排序301
9.4按列的编号排序301
9.5动态排序303
9.5.1在MS SQL Server中的动态排序303
9.5.2在Oracle 9i中的动态排序304
9.6随机排序306
第10章数据统计分析307
10.1聚合函数308
10.2聚合函数的典型应用309
10.2.1求平均值309
10.2.2获取结果集行数311
10.2.3计算不包括最大值和最小值的平均值313
10.2.4对多列求和314
10.2.5在WHERE子句中使用聚合函数316
10.2.6Oracle 9i数据库NVL()函数在聚合函数中的使用316
10.2.7多个聚合函数的使用317
10.3分组统计318
10.3.1使用GROUP BY子句创建分组318
10.3.2使用GROUP BY子句创建多列分组319
10.3.3对表达式进行分组统计320
10.3.4在统计中使用ROLLUP关键字和CUBE关键字321
10.3.5在SQL查询语句中GROUP BY子句的NULL值处理323
10.3.6使用HAVING子句设置统计条件323
10.3.7使用COMPUTE子句在结果集中显示明细和汇总行325
10.3.8使用COMPUTE BY子句显示多级分类汇总327
10.3.9对统计结果排序328
10.3.10在WHERE子句中使用GROUP BY子句329
10.3.11GROUP BY子句的特殊用法329
第11章子查询331
11.1简单子查询332
11.1.1SELECT列表中的子查询333
11.1.2多列子查询333
11.1.3比较子查询334
11.1.4在子查询中使用聚合函数335
11.2多行子查询335
11.2.1使用IN操作符的多行子查询336
11.2.2使用NOT IN子查询实现差集运算336
11.2.3理解通过量词实现多行子查询337
11.2.4使用ALL操作符的多行子查询338
11.2.5使用ANY/SOME操作符的多行子查询339
11.2.6EXISTS子查询实现两表交集340
11.2.7NOT EXISTS子查询实现两表的差集343
11.2.8UNIQUE子查询344
11.3相关子查询344
11.3.1使用IN引入相关子查询345
11.3.2使用NOT IN引入相关子查询345
11.3.3在子查询中使用总计函数返回单个值347
11.3.4理解子查询在WHERE子句中的作用347
11.3.5在HAVING子句中使用相关子查询348
11.4嵌套子查询349
11.4.1嵌套子查询349
11.4.2复杂的嵌套查询350
11.4.3嵌套查询在查询统计中的应用352
11.4.4在UPDATE中使用子查询353
11.4.5在INSERT中使用子查询354
11.4.6在DELETE中使用子查询354
11.5组合查询355
11.5.1交集运算355
11.5.2差集运算355
11.5.3通过UNION合并多个结果集356
11.5.4使用UNION ALL保留重复行357
11.5.5通过UNION语句提高查询结果的可读性358
11.5.6在UNION中通过文字确定数据的来源359
11.5.7通过UNION ALL语句将数据表中的指定记录优先显示360
11.6递归查询361
11.6.1CTE361
11.6.2递归查询362
第12章多表连接365
12.1多表连接366
12.1.1笛卡尔乘积366
12.1.2通过WHERE子句连接多表367
12.1.3通过FROM子句连接多表367
12.1.4在多表连接中设置连接条件368
12.1.5在多表连接中返回某个表的所有列369
12.1.6通过设置表别名提高SQL可读性369
12.2内连接370
12.2.1等值连接370
12.2.2不等值连接371
12.2.3自然连接372
12.2.4复杂的内连接查询372
12.3外连接373
12.3.1左外连接373
12.3.2右外连接374
12.3.3全外连接375
12.3.4通过外连接进行多表联合查询376
12.4其他连接377
12.4.1自连接377
12.4.2交叉连接377
第13章聚合与旋转数据379
13.1聚合数据380
13.1.1聚合数据380
13.1.2OVER子句380
13.1.3附加属性(Tiebreakers)383
13.1.4累积聚合384
13.1.5滑动聚合386
13.1.6YTD聚合388
13.2旋转数据(交叉表)388
13.2.1结果集的简单旋转389
13.2.2将结果集旋转成一行389
13.2.3将结果集旋转后求和390
13.2.4结果集旋转后汇总重复字段392
13.2.5动态生成旋转数据393
13.2.6结果集的反向旋转394
13.3常用交叉表查询395
13.3.1Access交叉表查询395
13.3.2SQL Server 2000交叉表查询397
13.3.3SQL Server 2005交叉表查询方案398
第14章视图403
14.1视图概述404
14.2视图创建404
14.2.1使用企业管理器创建视图404
14.2.2使用CREATE VIEW语句创建视图407
14.2.3使用向导创建视图409
14.2.4创建基于视图的视图411
14.3视图重命名413
14.4视图修改413
14.4.1使用企业管理器修改视图413
14.4.2使用ALTER VIEW语句修改视图414
14.5视图定义信息查询416
14.6视图删除418
14.6.1使用企业管理器删除视图418
14.6.2使用DROP VIEW语句删除视图419
14.7视图应用420
14.7.1通过视图添加数据420
14.7.2通过视图更新数据422
14.7.3通过视图删除数据422
14.7.4通过视图简化复杂查询423
14.7.5通过视图过滤不想要的数据424
14.7.6通过视图显示表达式的结果424
14.7.7在视图中使用WITH CHECK OPTION子句426
14.8使用视图加强数据安全427
14.8.1对视图进行加密427
14.8.2对不同的用户设置权限428
14.8.3通过视图限制用户对列的访问430
14.8.4通过视图限制用户对行的访问430
第15章存储过程433
15.1存储过程概述434
15.1.1存储过程的概念434
15.1.2存储过程的作用和功能434
15.1.3存储过程的优点435
15.2创建存储过程436
15.2.1CREATE PROCEDURE语句436
15.2.2创建具有回传参数的存储过程440
15.2.3在存储过程中使用事务448
15.2.4使用Return语句从存储过程中返回值449
15.3管理存储过程450
15.3.1执行存储过程451
15.3.2执行具有回传参数的存储过程453
15.3.3查看存储过程454
15.3.4修改存储过程456
15.3.5删除存储过程459
15.3.6存储过程的重新编译460
15.3.7调试存储过程462
15.3.8执行远程存储过程463
15.3.9扩展存储过程466
15.4在Oracle数据库下创建存储过程467
15.4.1创建存储过程467
15.4.2执行存储过程469
15.4.3删除存储过程469
15.5在MySQL数据库下创建存储过程469
15.5.1创建存储过程469
15.5.2执行存储过程471
第16章自定义函数及应用473
16.1自定义函数概述474
16.1.1自定义函数的特点474
16.1.2自定义函数的类别474
16.1.3自定义函数中有效语句类型474
16.2创建函数475
16.2.1创建自定义函数475
16.2.2创建标量函数476
16.2.3创建内联表值函数479
16.2.4创建多语句表值函数480
16.3管理函数482
16.3.1调用函数482
16.3.2查看函数483
16.3.3修改函数485
16.3.4删除函数487
16.3.5函数的架构绑定488
16.4函数与存储过程的区别489
第17章触发器491
17.1触发器的优点492
17.2触发器的种类492
17.2.1SQL Server中触发器的种类492
17.2.2Oracle中触发器的种类493
17.3创建触发器493
17.3.1创建简单的触发器493
17.3.2创建具有触发条件的触发器500
17.3.3创建嵌套触发器503
17.3.4创建递归触发器506
17.3.5创建INSTEAD OF触发器508
17.3.6创建列级触发器511
17.4管理触发器513
17.4.1查看触发器513
17.4.2修改触发器515
17.4.3重命名触发器517
17.4.4禁用和启用触发器518
17.4.5删除触发器519
17.5应用触发器520
17.5.1应用触发器添加数据520
17.5.2应用触发器修改数据522
17.5.3应用触发器删除数据523
17.6在Oracle数据库下创建触发器524
17.6.1DML触发器524
17.6.2创建DDL触发器526
17.7在MySQL数据库下创建触发器527
第18章游标及应用529
18.1创建游标530
18.1.1声明游标530
18.1.2打开游标532
18.1.3读取游标中数据533
18.1.4嵌套游标536
18.1.5关闭并释放游标538
18.1.6创建参数化游标539
18.2游标属性541
18.2.1获取游标状态541
18.2.2获取游标行数543
18.3游标操作544
18.3.1基于游标定位修改数据544
18.3.2基于游标定位删除数据546
18.3.3在游标中包含计算列547
18.3.4将游标中的数据进行排序显示549
18.4动态游标550
18.4.1声明游标变量550
18.4.2使用游标变量550
18.5游标系统存储过程553
18.5.1sp_cursor_list存储过程553
18.5.2sp_describe_cursor存储过程554
18.5.3sp_describe_cursor_columns存储过程556
18.5.4sp_describe_cursor_tables存储过程558
18.6在Oracle数据库下使用游标559
18.6.1显式游标559
18.6.2隐式游标561
第19章事务563
19.1事务概述564
19.1.1显式事务与隐性事务564
19.1.2设置事务属性567
19.1.3事务的工作机制568
19.1.4编写有效的事务569
19.2事务操作570
19.2.1提交事务570
19.2.2设置事务回退点572
19.2.3回滚事务574
19.3事务并发控制575
19.3.1事务的并发问题575
19.3.2表级锁定576
19.3.3设置事务隔离层并发控制579
19.3.4死锁的产生及预防581
19.4分布事务处理582
19.4.1分布式事务简介582
19.4.2创建分布式事务583
19.4.3分布式处理协调器583
第20章索引585
20.1索引的概述586
20.1.1索引的基本概念586
20.1.2索引的分类587
20.1.3使用索引的原则587
20.2创建索引588
20.2.1创建简单的非簇索引588
20.2.2创建多字段非簇索引590
20.2.3创建惟一索引591
20.2.4创建簇索引593
20.2.5创建虚拟列索引596
20.3维护索引598
20.3.1查看是否需要维护索引598
20.3.2重构索引600
20.3.3整理索引碎片602
20.3.4删除索引603
第21章聚合函数605
21.1统计聚合函数606
21.1.1求和函数606
21.1.2最大值函数610
21.1.3最小值函数613
21.1.4平均值函数617
21.1.5标准偏差函数621
21.1.6方差函数625
21.2行聚合函数630
21.2.1SQL Server:Count()函数630
21.2.2Oracle:Count()函数631
21.2.3MySql:Count()函数632
21.3列表函数632
21.3.1列表最大值函数632
21.3.2列表最小值函数634
第22章数学函数637
22.1符号转换判断函数638
22.1.1绝对值函数638
22.1.2符号判断函数640
22.2取舍函数641
22.2.1四舍五入函数641
22.2.2向上取整函数643
22.2.3向下取整函数645
22.3三角函数646
22.3.1正弦函数647
22.3.2反正弦函数649
22.3.3余弦函数650
22.3.4正切函数652
22.3.5反正切函数654
22.3.6余切函数656
22.3.7角度/弧度函数657
22.4指数/对数函数659
22.4.1指数函数659
22.4.2对数函数665
22.5进制转换函数668
22.5.1Oracle:Hextoraw()函数668
22.5.2Oracle:Rawtohex()函数669
22.6随机函数669
22.6.1SQL Server:Rand函数670
22.6.2MySQL:Rand()函数670
第23章字符串处理函数673
23.1大小写转换函数674
23.1.1大写转换函数674
23.1.2小写转换函数676
23.2去除空格函数678
23.2.1去除左空格函数678
23.2.2去除右空格函数680
23.3连接与截取函数681
23.3.1连接函数681
23.3.2截取函数683
23.4查找\替换函数686
23.4.1查找函数686
23.4.2替换函数693
23.5其他字符处理函数697
23.5.1转换函数697
23.5.2修改函数701
23.5.3比较函数709
第24章日期时间处理函数713
24.1日期时间获取函数714
24.1.1日期获取函数714
24.1.2时间获取函数726
24.1.3星期函数729
24.2日期时间处理函数734
24.2.1日期修改函数734
24.2.2时间修改函数738
24.3日期时间比较函数741
24.3.1日期比较函数741
24.3.2时间比较函数743
24.4日期时间截取函数743
24.4.1获取日期时间各个部分743
24.4.2日期时间截取函数745
24.4.3日期时间格式化函数747
24.4.4日期时间格式化函数748
第25章数学函数753
25.1通用类型转换函数754
25.1.1SQL Server:Cast()函数754
25.1.2SQL Server:Convert()函数754
25.1.3Oracle:Convert()函数755
25.1.4Oracle:Cast()函数756
25.1.5MySQL:Convert()函数756
25.2具体类型转换函数757
25.2.1Oracle:To_Char()函数757
25.2.2Oracle:To_Data()函数757
25.2.3Oracle:AscIIStr()函数757
25.2.4Oracle:Bin_to_num()函数758
25.2.5Oracle:CharToRowID()函数758
25.2.6Oracle:Compose()函数759
25.2.7Oracle:DeCompose()函数759
25.2.8Oracle:RowIDToChar()函数760
25.2.9Oracle:To_Number()函数760
25.2.10MySQL:Str_To_Date()函数761
25.3类型判断函数761
25.3.1SQL Server:IsDate()函数761
25.3.2SQL Server:IsNull()函数762
25.3.3SQL Server:IsNumeric()函数762
25.3.4SQL Server:NullIf()函数763
实例索引765