图书目录

目    录

 

第1章  数据库基础 1

1.1  数据库基础知识 2

1.1.1  几个数据库应用案例 2

1.1.2  相关数据库的名词 2

1.1.3  计算机数据管理 3

1.1.4  数据库系统的组成 4

1.1.5  数据库系统的特点 5

1.2  数据库发展史 6

1.2.1  第一代数据库 6

1.2.2  第二代数据库 7

1.2.3  第三代数据库 7

1.3  当今流行的数据库管理系统简介 7

第2章  设置SQL语句执行的环境 9

2.1  在Access 2003中执行SQL 10

2.1.1  Access 2003的安装与启动 10

2.1.2  通过Access的图形界面创建

数据库 10

2.1.3  在Access中执行SQL语句 11

2.2  在SQL Server中执行SQL 13

2.2.1  SQL Server 2000的安装 13

2.2.2  使用企业管理器创建数据库 13

2.2.3  使用查询分析器执行SQL语句 14

2.3  在Oracle 10g中执行SQL语句 15

2.3.1  安装Oracle 10g 15

2.3.2  使用SQL*Plus执行SQL语句 16

2.4  执行SQL脚本文件 19

2.4.1  SQL脚本文件 19

2.4.2  在SQL Server的查询分析器中

执行脚本文件 20

2.4.3  在Oracle的SQL*Plus中执行

脚本文件 21

第3章  SQL语言基础 23

3.1  SQL概述 24

3.1.1  SQL的历史 24

3.1.2  SQL的特点 24

3.1.3  SQL的功能 25

3.2  SQL语言的组成 25

3.3  探索SQL环境 27

3.3.1  了解SQL执行环境 27

3.3.2  了解SQL数据库的层次结构 27

3.3.3 在SQL环境中命名对象 28

第4章  数据表 29

4.1  数据类型 30

4.1.1  字符型数据 30

4.1.2  数字型数据 30

4.1.3  日期时间数据 30

4.1.4  二进制数据 31

4.1.5  图片、声音、视频数据 31

4.1.6  自定义数据类型 31

4.1.7  Access中的数据类型 31

4.1.8  MySQL中的数据类型 33

4.1.9  SQL Server中的数据类型 35

4.1.10  Oracle中的数据类型 37

4.2  数据表基础 38

4.2.1  记录和字段 38

4.2.2  表结构 39

4.3  表逻辑设计 39

4.3.1  E-R模型图 39

4.3.2  规范化与范式 41

4.4  表的创建(CREATE TABLE) 42

4.4.1  使用CREATE TABLE语句

创建表 42

4.4.2  创建带有主键的表 43

4.5  表结构的修改(ALTER TABLE) 44

4.5.1  ALTER TABLE语句格式 44

4.5.2  增加新字段 45

4.5.3  增加带有默认值的新字段 46

4.5.4  修改字段的类型和宽度 47

4.5.5  删除字段 48

4.5.6  删除带有默认值的字段 49

4.5.7  更改主键 50

4.6  表的删除、截断与重命名 51

4.6.1  删除表 51

4.6.2  截断表 51

4.6.3  重命名表 51

4.7  创建与删除数据库 52

4.7.1  创建数据库 52

4.7.2  删除数据库 53

4.7.3  创建本书使用的数据表 53

第5章  索引 57

5.1  索引基础 58

5.1.1  使用索引的原因 58

5.1.2  索引的种类 58

5.2  索引的创建和使用 59

5.2.1  创建索引前应当注意的内容 59

5.2.2  创建索引的SQL语句 59

5.2.3  创建和使用非聚簇索引 60

5.2.4  创建和使用唯一索引 62

5.3  索引的删除 63

第6章  查询数据——SELECT语句 65

6.1  SELECT语句的组成结构 66

6.1.1  最基本的语法格式 66

6.1.2  带有主要子句的语法格式 67

6.1.3  SELECT各子句的执行顺序 67

6.1.4  关于SELECT语句的一些说明 68

6.2  查询数据 68

6.2.1  查询单字段的方法 68

6.2.2  去除重复信息——DISTINCT 69

6.2.3  查询多字段 69

6.2.4  查询所有字段 70

6.2.5  根据现有字段值计算新字段值 71

6.2.6  命名新列(别名)——AS 72

6.2.7  将查询结果保存为新表 73

6.2.8  连接字段 74

6.3  排序数据 76

6.3.1  按单字段排序 76

6.3.2  设置排序方向 77

6.3.3  按多字段排序 77

6.3.4  按字段位置排序 78

第7章  条件查询 79

7.1  条件表达式 80

7.1.1  指针与字段变量的概念 80

7.1.2  条件表达式 80

7.2  使用WHERE关键字设置查询

条件 83

7.2.1  WHERE子句用法 83

7.2.2  查询数值数据 84

7.2.3  查询字符型数据 85

7.2.4  查询日期数据 87

7.2.5  按范围查询数据(BETWEEN) 88

7.2.6  查询空值 89

7.3  排序条件查询的结果 90

7.4  TOP与ROWNUM的使用 90

第8章  高级条件查询 93

8.1  组合WHERE子句 94

8.1.1  AND运算符 94

8.1.2  OR运算符 95

8.1.3  AND与OR的优先顺序问题 96

8.2  使用IN运算符 97

8.2.1  使用IN运算符 97

8.2.2  使用IN运算符的优点 99

8.3  NOT运算符 100

8.4  实现模糊查询 102

8.4.1  LIKE运算符 102

8.4.2  “%”通配符 103

8.4.3  使用“%”通配符查询日期型数据 105

8.4.4  “_”通配符 106

8.4.5  “[]”通配符 108

8.4.6  SQL Server、Access和Oracle

中的通配符比较 109

8.4.7  定义转义字符 109

第9章  SQL函数的使用 111

9.1  SQL函数的说明 112

9.2  SQL Server的函数 112

9.2.1  类型转换函数 112

9.2.2  日期函数 115

9.2.3  数学函数 118

9.2.4  字符函数 119

9.3  Oracle的函数 123

9.3.1  类型转换函数 123

9.3.2  日期函数 127

9.3.3  数值函数 130

9.3.4  字符函数 131

9.4  将NULL更改为其他值的函数 132

9.4.1  SQL Server的ISNULL函数 132

9.4.2  Oracle的NVL函数 133

9.5  IF…ELSE逻辑函数 133

9.5.1  DECODE函数 133

9.5.2  CASE函数 134

第10章  聚合函数与分组数据 137

10.1  聚合函数 138

10.1.1  使用COUNT函数求记录个数 138

10.1.2  使用SUM函数求某字段的和 140

10.1.3  使用AVG函数求某字段的

平均值 141

10.1.4  使用MAX、MIN函数求最大、

最小值 142

10.1.5  统计汇总相异值(不同值)记录 143

10.1.6  聚合函数对NULL值的处理 144

10.2  数据分组 146

10.2.1  将表内容按列分组 146

10.2.2  聚合函数与分组配合使用 147

10.2.3  查询数据的直方图 148

10.2.4  排序分组结果 149

10.2.5  反转查询结果 149

10.2.6  使用HAVING子句设置

分组查询条件 151

10.2.7  HAVING子句与WHERE子句的

区别 151

第11章  多表连接查询 153

11.1  将数据存储在多个不同表的

原因 154

11.2  范式 155

11.3  连接查询 156

11.3.1  连接两表的方法 156

11.3.2  使用笛卡儿积解决录入难题 158

11.3.3  使用两表连接查询数据 161

11.3.4  多表连接查询 162

11.3.5  使用表别名简化语句 163

11.3.6  使用INNER JOIN连接查询 164

11.4  高级连接查询 165

11.4.1  自连接查询 165

11.4.2  内连接查询 168

11.4.3  外连接查询 169

11.4.4  交叉连接查询 172

11.4.5  连接查询中使用聚合函数 174

11.5  组合查询 176

11.5.1  使用组合查询 176

11.5.2  使用UNION的规则 178

11.5.3  使用UNION解决不支持全外

连接的问题 179

11.5.4  使用UNION得到复杂的统计

汇总样式 180

11.5.5  排序组合查询的结果 180

第12章  子查询 185

12.1  返回单值的子查询 186

12.1.1  使用返回单值的子查询 186

12.1.2  子查询与聚合函数的配合使用 187

12.2  返回一列值的子查询 189

12.2.1  使用IN的子查询 190

12.2.2  使用NOT IN的子查询 191

12.3  相关子查询 192

第13章  视图 195

13.1  视图基础 196

13.1.1  视图引例 196

13.1.2  使用视图的原因以及注意问题 198

13.1.3  视图的规则和限制 199

13.2  视图的创建 200

13.2.1  创建视图的SQL语句 200

13.2.2  利用视图提高数据安全性 202

13.2.3  利用视图得到汇总数据 203

13.2.4  利用视图简化计算字段的使用 204

13.2.5  利用视图简化多表连接 206

13.3  视图的删除 207

第14章  插入数据 209

14.1  直接向表插入数据 210

14.1.1  插入完整的行 210

14.1.2  向日期时间型字段插入数据 211

14.1.3  将数据插入到指定字段 212

14.1.4  将查询结果插入表 214

14.1.5  INSERT SELECT与SELECT INTO

的区别 215

14.2  通过视图插入数据 216

14.2.1  通过视图插入数据 216

14.2.2  使用带有WITH CHECK OPTION

选项的视图 218

第15章  更新和删除数据 221

15.1  更新表中的数据 222

15.1.1  更新单个字段的数据 222

15.1.2  更新多个字段的数据 223

15.1.3  使用子查询更新数据 224

15.1.4  使用表连接更新数据 225

15.1.5  使用UPDATE语句删除指定

字段的数据 225

15.2  删除表中的数据 227

15.2.1  使用DELETE语句删除

指定记录 227

15.2.2  在DELETE语句中使用

多表连接 228

15.2.3  使用DELETE语句删除

所有记录 230

15.2.4  使用TRUNCATE语句删除

所有记录 230

15.3  通过视图更新表 231

15.3.1  不能用于更新的视图 231

15.3.2  通过视图更新表数据 232

15.3.3  通过视图删除表数据 233

第16章  管理数据库的安全 235

16.1  用户 236

16.1.1  创建用户 236

16.1.2  修改用户 237

16.1.3  为用户授予CREATE SESSION

权限 238

16.1.4  为用户授予SELECT权限 239

16.1.5  为用户授予INSERT、UPDATE

和DELETE权限 241

16.1.6  为用户授予系统权限 244

16.1.7  为所有用户授予权限 245

16.1.8  查看用户拥有的权限 246

16.1.9  取消用户的指定权限 247

16.1.10  删除用户 247

16.2  角色 247

16.2.1  角色的概念 247

16.2.2  创建角色——CREATE ROLE 248

16.2.3  为角色授权——GRANT 249

16.2.4  将角色授予用户——GRANT 250

16.2.5  查看角色的权限 252

16.2.6  取消角色——REVOKE 253

16.2.7  删除角色——DROP ROLE 253

16.2.8  Oracle中系统预定义的角色 253

16.3  SQL Server安全管理 254

16.3.1  SQL Server的安全认证模式 254

16.3.2  向SQL Server添加安全账户 256

16.3.3  从SQL Server中删除安全账户 259

16.3.4  SQL Server权限管理 260

16.3.5  SQL Server角色管理 263

第17章  完整性控制 267

17.1  了解完整性约束 268

17.1.1  数据的完整性 268

17.1.2  完整性约束的类型 268

17.2  与表有关的约束 269

17.2.1  字段约束与表约束的创建 269

17.2.2  非空约束——NOT NULL 270

17.2.3  唯一约束——UNIQUE 271

17.2.4  主键约束——PRIMARY KEY 274

17.2.5  外键约束——FOREIGN KEY 276

17.2.6  校验约束——CHECK 278

17.3  扩展外键约束的内容 280

17.3.1  引用完整性检查 280

17.3.2  MATCH子句 282

17.4  扩展校验约束的内容 284

17.4.1  定义断言 284

17.4.2  创建域和域约束 285

17.5  SQL Server中的完整性控制 286

17.5.1  创建规则(Rule) 286

17.5.2  规则的绑定与松绑 287

17.5.3  创建默认值(Default) 289

17.5.4  默认值的绑定与松绑 291

第18章  存储过程和函数 295

18.1  存储过程简介 296

18.1.1  存储过程基础 296

18.1.2  存储过程的优点 297

18.2  在SQL Server中创建和使用

存储过程 297

18.2.1  SQL Server的系统存储过程 297

18.2.2  创建存储过程的语法 298

18.2.3  调用语句EXECUTE的语法 300

18.2.4  创建简单存储过程 300

18.2.5  创建带输入参数的存储过程 301

18.2.6  给输入参数设置默认值 302

18.2.7  创建带输出参数的存储过程 303

18.2.8  创建有多条SQL语句的存储

过程 304

18.2.9  删除存储过程 305

18.3  在SQL Server中创建和使用

函数 307

18.3.1  标量函数 307

18.3.2  表值函数 308

18.3.3  删除用户定义函数 311

18.4  几个系统存储过程的使用 311

18.4.1  使用sp_rename重命名对象 311

18.4.2  使用sp_depends显示引用对象 311

18.4.3  使用sp_help显示对象信息 312

18.4.4  使用sp_helptext显示对象的

源码 312

18.5  Oracle中的存储过程和函数 313

18.5.1  在Oracle中使用存储过程 313

18.5.2  在Oracle中使用函数 314

18.5.3  在Oracle中使用user_source

获取信息 315

第19章  SQL触发器 317

19.1  SQL触发器基础 318

19.2  在SQL Server中创建和使用

触发器 318

19.2.1  创建触发器的语法 318

19.2.2  使用INSERT触发器 320

19.2.3  使用DELETE触发器 321

19.2.4  使用UPDATE触发器 323

19.2.5  使用INSTEAD OF触发器 325

19.2.6  使用条件插入触发器 326

19.2.7  删除触发器 329

19.3  在Oracle中创建和使用触发器 329

19.3.1  创建触发器的语法 329

19.3.2  行级触发器 330

19.3.3  语句级触发器 331

19.3.4  判断所执行的数据修改操作 332

19.3.5  系统触发器 332

19.3.6  追踪数据库启动与关闭信息 333

19.3.7  追踪用户DDL操作信息 335

19.3.8  禁用和删除触发器 338

19.3.9  从user_triggers中查询触发器

信息 339

第20章  控制流语句 341

20.1  Transact_SQL的控制流语句 342

20.1.1  BEGIN…END语句 342

20.1.2  IF…ELSE语句 342

20.1.3  WHILE语句 343

20.1.4  BREAK命令 344

20.1.5  CONTINUE命令 344

20.1.6  WAITFOR语句 345

20.2  PL/SQL的控制流语句 345

20.2.1  IF…THEN…ELSE语句 346

20.2.2  IF…THEN…ELSIF语句 346

20.2.3  LOOP语句 346

20.2.4  WHILE语句 347

20.2.5  FOR语句 347

20.3  控制流语句的几个应用 348

20.3.1  判断数据库对象是否存在 348

20.3.2  向日志表循环插入日期数据 351

20.3.3  使用游标和循环提取数据 353

第21章  事务处理 357

21.1  事务基础 358

21.1.1  事务的概念 358

21.1.2  事务的案例 358

21.1.3  事务的ACID特性 359

21.2  控制事务处理 359

21.2.1  开始事务处理 359

21.2.2  使用ROLLBACK撤销事务 360

21.2.3  使用COMMIT提交事务 362

21.2.4  根据判断提交或撤销事务 364

21.2.5  Oracle的语句级事务处理 366

21.2.6  使用保存点 367

21.3  并发事务 369

21.3.1  并发事务 369

21.3.2  事务锁 371

21.3.3  事务隔离级别 371

第22章  Visual Basic中使用SQL语句 373

22.1  ADO简介 374

22.1.1  ADO基础知识 374

22.1.2  ADO的优点 374

22.1.3  ADO的核心对象 375

22.2  连接数据库 375

22.2.1  在工程中引用ADO 375

22.2.2  连接Access数据库 376

22.2.3  连接SQL Server和Oracle

数据库 377

22.2.4  连接ODBC数据源 379

22.3  执行SQL语句操作数据库 381

22.3.1  使用Connection对象执行CREATE 

TABLE语句 381

22.3.2  使用Connection对象执行INSERT

语句 384

22.3.3  使用Connection对象执行UPDATE

语句 385

22.3.4  使用Connection对象执行DELETE

语句 385

22.3.5  使用RecordSet对象执行Select

语句 386

第23章  Visual C++中使用SQL语句 389

23.1  在项目中引用ADO 390

23.2  连接数据库 391

23.2.1  连接SQL Server数据库 391

23.2.2  连接Access和Oracle数据库 393

23.2.3  连接ODBC数据源 395

23.3  执行SQL语句操作数据库 395

23.3.1  使用Recordset对象执行CREATE

TABLE语句 395

23.3.2  使用Connection对象执行INSERT

语句 399

23.3.3  使用Connection对象执行UPDATE

语句 401

 

23.3.4  使用Connection对象执行DELETE

语句 403

23.3.5  使用RecordSet对象执行Select

语句 404

第24章  Visual C#中使用SQL语句 409

24.1  连接数据库 410

24.1.1  在项目中添加引用语句 410

24.1.2  连接SQL Server数据库 410

24.1.3  连接Access和Oracle数据库 412

24.2  执行SQL语句操作数据库 415

24.2.1  使用SqlCommand对象执行CREATE 

TABLE语句 415

24.2.2  使用SqlCommand对象执行INSERT

语句 418

24.2.3  使用SqlCommand对象执行UPDATE

语句 419

24.2.4  使用SqlCommand对象执行DELETE

语句 421

24.2.5  使用SqlCommand对象执行Select

语句 423