SQL用于在数据库中插入和提取数据,是操纵数据库中数据的一种国际标准。本书涵盖了SQL的方方面面,包括基础知识、数据库设计、数据库的创建,以及SQL语言在各种数据库中的应用等内容。
本书提供了一些基本代码、理论、概念和技术,以及大量有用示例,使得您能够针对各种实际情况快速设计数据库并编写SQL代码。每章末的练习都有助于您巩固您所学的知识。阅读完本书后,您能够轻松处理有关SQL的多种难题
第1章 sql简介 1
1.1 数据库简史 1
1.2 结构化查询语言 5
1.2.1 sql查询简介 5
1.2.2 sql与其他编程语言的比较 5
1.2.3 理解sql标准 6
1.3 创建数据库 7
1.4 创建、更改和删除表 16
1.4.1 创建表 17
1.4.2 更改现有表 18
1.4.3 删除现有表 18
1.5 优秀的数据库设计 19
1.5.1 获得并分析数据需求 19
1.5.2 逻辑地划分数据 20
1.5.3 选择正确的数据类型 22
1.5.4 使用主键 24
1.6 创建示例数据库 25
1.7 本章小结 29
1.8 练习 30
第2章 输入信息 31
2.1 插入新数据 31
2.2 将数据插入到案例分析数据库 34
2.3 更新数据 35
2.4 删除数据 39
2.5 本章小结 39
2.6 练习 40
第3章 提取信息 41
3.1 select语句 41
3.1.1 仅返回不同的行 42
3.1.2 使用别名 43
3.1.3 利用where子句过滤结果 44
3.2 逻辑运算符和运算符优先级 49
3.2.1 运算符优先级概述 49
3.2.2 使用逻辑运算符 52
3.3 利用order by排序结果 62
3.4 从多个表中选择数据 75
3.4.1 在ms access中使用圆括号括起内部联合 84
3.4.2 sql是基于集合的 86
3.5 null数据概述 95
3.6 本章小结 97
3.7 练习 97
第4章 数据库的高级设计 98
4.1 标准化 98
4.1.1 第一范式 98
4.1.2 第二范式 100
4.1.3 第三范式 101
4.2 利用约束确保数据的有效性 103
4.2.1 not null约束 104
4.2.2 unique约束 105
4.2.3 check约束 109
4.2.4 主键和primary key约束 111
4.2.5 外键 113
4.3 利用索引加速结果查询 118
4.3.1 改进film club数据库的设计 121
4.3.2 提高数据的有效性和效率 123
4.3.3 设计更好的数据库的一些技巧 131
4.4 本章小结 132
4.5 练习 132
第5章 操作数据 133
5.1 理解sql算术 133
5.1.1 基本的数学运算 133
5.1.2 常用数学函数 135
5.1.3 舍入数值 138
5.2 字符串函数 143
5.2.1 substring( )函数 143
5.2.2 大小写转换函数 145
5.2.3 reverse( )函数 145
5.2.4 trim( )函数 146
5.2.5 length( )函数 147
5.2.6 soundex( )函数和difference( )函数 149
5.2.7 日期函数 152
5.3 不同数据类型的转换 153
5.4 再论null 154
5.4.1 null和数学 154
5.4.2 null和字符串 155
5.4.3 coalesce( )函数 156
5.5 insert into和select语句的综合使用 158
5.6 本章小结 160
5.7 练习 161
第6章 分组和聚合数据 162
6.1 分组结果 162
6.2 汇总和聚合数据 164
6.2.1 统计结果的数目 164
6.2.2 累加结果 168
6.2.3 求结果的平均值 170
6.2.4 求结果的最大值和最小值 172
6.3 综合使用having子句和group by语句 174
6.4 本章小结 176
6.5 练习 177
第7章 从不同的表中选择数据 178
7.1 再论联合 178
7.1.1 深入介绍内部联合 179
7.1.2 外部联合 188
7.2 利用union运算符组合结果集 196
7.3 本章小结 201
7.4 练习 202
第8章 子查询 203
8.1 子查询术语 203
8.2 select列表中的子查询 204
8.3 where子句中的子查询 207
8.4 子查询中的运算符 210
8.4.1 再论in运算符 210
8.4.2 使用any、some和all运算符 213
8.4.3 使用exists运算符 216
8.4.4 在having子句中使用子查询 219
8.5 相关子查询 220
8.6 用于其他语句的子查询 222
8.6.1 在insert语句中使用子查询 222
8.6.2 在update语句中使用子查询 224
8.6.3 在delete from语句中使用子查询 225..
8.7 本章小结 227
8.8 练习 228
第9章 高级查询 229
9.1 更新数据库 229
9.2 处理复杂的查询 235
9.3 高效查询的一些技巧 248
9.4 本章小结 250
9.5 练习 250
第10章 视图 252
10.1 视图概述 252
10.1.1 创建视图 253
10.1.2 视图的类型 254
10.1.3 更新视图 258
10.1.4 删除视图 262
10.2 本章小结 262
10.3 练习 263
第11章 事务 264
11.1 事务简介 264
11.1.1 示例数据 265
11.1.2 ansi事务模型 268
11.1.3 transact-sql 270
11.2 事务日志 272
11.3 锁 273
11.3.1 锁的粒度 274
11.3.2 锁的级别 275
11.3.3 设置锁的参数 276
11.4 隔离级别 278
11.4.1 set transaction语句 278
11.4.2 serializable隔离级别 278
11.4.3 repeatable read隔离级别 279
11.4.4 read committed隔离级别 279
11.4.5 read uncommitted隔离级别 279
11.4.6 版本控制 280
11.5 问题示例 280
11.5.1 更新丢失 280
11.5.2 未确认的数据 281
11.5.3 不一致的数据 281
11.5.4 幻影插入 281
11.6 重新编写示例代码 282
11.7 本章小结 284
11.8 练习 285
第12章 sql安全 286
12.1 安全的概念 286
12.1.1 用户id 287
12.1.2 组id(角色) 290
12.1.3 对象 292
12.1.4 许可权 293
12.1.5 视图和安全 294
12.1.6 授予许可权 296
12.1.7 废除许可权 299
12.2 本章小结 303
12.3 练习 303
第13章 数据库的调整 304
13.1 调整硬件 304
13.1.1 工作站 305
13.1.2 数据库文件 305
13.1.3 处理器 306
13.1.4 ghz网络或划分网络 306
13.1.5 cache 306
13.2 调整sql 309
13.2.1 sql调整意味着什么 309
13.2.2 sql调整的原因 309
13.2.3 sql调整的方法 310
13.3 一些调整技巧 314
13.4 本章小结 316
13.5 练习 316
附录a 练习题答案 317
附录b 建立并使用五个数据库系统 338
b.1 安装并使用mysql 4.1 338
b.2 安装mysql的工具 346
b.3 安装并使用ibm db2 353
b.4 使用command center工具 360
b.5 安装并使用microsoft access xp 365
b.6 安装并使用microsoft sql server 2000 369
b.7 使用sql server工具 375
b.8 安装并使用oracle 10g 381
b.9 使用oracle的sql*plus工具 383
附录c 初始数据设置 386
c.1 category表 386
c.2 memberdetails表 387
c.2.1 非oracle数据库 387
c.2.2 oracle数据库 390
c.3 location表 393
c.4 favcategory表 394
c.5 films表 397
c.6 attendence表 401
c.6.1 非oracle数据库 402
c.6.2 oracle数据库 405
《半小时漫画理财课》内容简介:作为曾经月入3000元的“月光族”,理财师八宝用5年时间攒下了人生第一个1000万元;作为从海外归来的
《数字抑郁时代》内容简介:你不经意间养成的习惯,背后都是高科技的老谋深算 慕尼黑大学心理学教授教你认清套路,看穿隐藏在数字技
《XMPP高级编程:使用JavaScript和jQuery》内容简介:XMPP是一个广泛用于即时通信、多用户聊天、语言和视频会议、协作空间、实时游
《普通语言学纲要》内容简介:普通语言学及其研究领域;语言学史,包括传统语言学、历史比较语言学和现代语言学;语言学流派及其理
《穿越世界的教育寻访》内容简介:这是一本讲述国际教育的书,是一场历时7年教育寻访的总结。作者周成刚老师从2013年发起“探寻世界
忍受各种不确定性及不间断的压力并能够获取成功的程序员有一个共通特征:他们都深度关注软件创建实践。他们都把软件看做一种工艺
本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。书中全面地介绍了程序设计
《碎片与重构:互联网思维重塑大教育》以开阔的视野、全新的思维、通俗的文笔,描绘了一幅网络时代教与学的“清明上河图”。内容
《美的找寻者:汝信传》内容简介:汝信为江苏吴江人,他14岁走进大学校门,17岁加入中共地下党,18岁参加人民解放军,在朝鲜战场的
IDAPro(交互式反汇编器专业版)是应用最广泛的静态反汇编工具,在IT领域有着举足轻重的地位,但其文档资料一直都不够完善,在ID
《零基础学Java》内容简介:本书主要介绍Java语言编程的入门知识。其中涉及的内容有网络编程技术、图形编程技术、数据库编程技术等
《通信企业市场营销》结合作者多年来从事电信企业市场营销理论研究的成果,以及我国电信企业的市场营销活动和实践,论述了市场营
本书是一本为没有艺术背景的普通人所写的平面设计指导书,作者通过图文并茂的典型案例讲解了设计的主要原则和规则,主要内容有:
《理财中的经济学》内容简介:每个人的生活都离不开金钱,管理金钱即理财。掌握好理财的技能,对于提高个人与家庭的生活质量大有帮
本书是一本全面介绍3G系统特别是通用移动通信系统(UMTS)网络的专著。本书的一大特色是详细介绍了WCDMA标准所采用的UMTS网络,包
《江山如画:中国古代山水志》内容简介:当我们经常顺口诵读《滕王阁序》《岳阳楼记》《前赤壁赋》等名篇的时候,你可曾想过彼时彼
赵鑫磊阿里巴巴集团资深Linux系统专家。自1998年开始使用Linux,曾参与国内著名的Linux社区发行版MagicLinux的开发工作,是一个土
《通信十年》内容简介:《通信十年:拥抱互联网》从人才、资源、创新三个维度,通过多年的连续新闻报道,试图阐释此前中国电信运营
地理信息系统集成原理与方法 本书特色 本书由五部分组成:**部分为系统集成的基础;第二部分为数据的集成;第三部分为应用系统的集成;第四部分为基于分布式网络环境下...
《头部主播养成计划:打造你的超级带货力》内容简介:如何定义电商和新零售?为什么直播卖货如此火爆?如何选择合适的直播带货平台