图书介绍

零基础学SQLpdf电子书版本下载

零基础学SQL
  • 孙浏毅等编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111291985
  • 出版时间:2010
  • 标注页数:452页
  • 文件大小:215MB
  • 文件页数:476页
  • 主题词:关系数据库-数据库管理系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

零基础学SQLPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一篇 关系数据库与SQL语言 1

第1章 关系数据库介绍 1

1.1 数据模型 1

1.1.1 概念模型 1

1.1.2 关系数据模型 3

1.2 关系模式 3

1.3 常用关系数据库 4

1.3.1 Oracle数据库 4

1.3.2 Microsoft SQL Server数据库 4

1.3.3 MySQL数据库 4

1.3.4 PostgreSQL数据库 5

1.4 安装与使用MySQL 5.0数据库 5

1.4.1 安装MySQL 5.0 5

1.4.2 安装用户图形界面 7

1.4.3 运行MySQL 5.0 8

1.5 小结 9

第2章 SQL语言概述 10

2.1 SQL语言介绍 10

2.2 SQL语句的分类 11

2.3 SQL语言的特点 11

2.4 常用数据类型 12

2.4.1 整数类型与浮点类型 12

2.4.2 数值类型 13

2.4.3 字符类型 13

2.4.4 日期与时间类型 14

2.4.5 二进制类型 15

2.5 SQL语句书写规范 15

2.6 小结 16

第二篇 数据库与数据表的创建和管理 17

第3章 数据库的创建与删除 17

3.1 创建数据库 17

3.1.1 使用SQL语句创建数据库 17

3.1.2 在MySQL 5.0 Command Line Client窗口下创建数据库 18

3.1.3 在MySQL 5.0用户图形界面中创建数据库 18

3.2 删除数据库 19

3.2.1 使用SQL语句删除数据库 19

3.2.2 在MySQL 5.0 Command Line Client窗口下删除数据库 19

3.2.3 在MySQL 5.0用户图形界面中删除数据库 20

3.3 小结 21

第4章 数据表的创建与更新 22

4.1 数据库中的表 22

4.1.1 数据记录、属性、字段、列和行 22

4.1.2 主键 23

4.1.3 外键 23

4.1.4 索引 24

4.1.5 约束 24

4.2 创建数据表 25

4.3 使用约束 27

4.3.1 唯一约束 27

4.3.2 主键约束 28

4.3.3 外键约束 30

4.3.4 检查约束 31

4.3.5 非空约束 32

4.4 使用索引 33

4.4.1 索引的分类 33

4.4.2 创建与删除索引 33

4.5 修改数据库中的表 35

4.5.1 向表中增加一列 35

4.5.2 增加一个约束条件 36

4.5.3 增加一个索引 37

4.5.4 修改表中的某一列 38

4.5.5 删除表中某一列 38

4.5.6 删除一个约束条件 39

4.6 删除数据库中的表 39

4.7 数据库test_STInfo中的表 39

4.7.1 学生信息表T_student 40

4.7.2 课程信息表T_curriculum 40

4.7.3 成绩信息表T_result 40

4.7.4 教师信息表T_teacher 41

4.7.5 院系信息表T_dept 41

4.7.6 计算机系教师信息表T_CSteacher 41

4.8 小结 42

第三篇 数据查询 43

第5章 基本查询操作 43

5.1 查询全部列的记录 43

5.2 查询表中指定的列 44

5.3 查询表中不重复的记录 45

5.4 使用列别名查询 46

5.5 对查询的记录进行算术运算 47

5.6 使用连接符(Ⅱ)连接字段 47

5.7 关于NULL值 48

5.8 小结 49

第6章 使用WHERE子句查询表中满足条件的记录 50

6.1 比较查询 50

6.1.1 算术比较运算符 50

6.1.2 BETWEEN…AND运算符查询指定条件范围的记录 51

6.1.3 IN运算符查询与列表匹配的记录 52

6.1.4 字符串比较 53

6.1.5 日期时间的比较 55

6.2 逻辑查询 55

6.2.1 使用AND运算符查询同时满足多个条件的记录 55

6.2.2 使用OR运算符查询满足任一条件的记录 56

6.2.3 使用NOT运算符查询满足相反条件的记录 57

6.2.4 复杂逻辑查询 58

6.3 空值查询 58

6.4 使用LIKE操作符实现模糊查询 59

6.4.1 匹配任意单个字符 59

6.4.2 匹配0个或者多个字符 60

6.4.3 使用转义字符 61

6.5 使用REGEXP关键字进行模式匹配 61

6.6 小结 63

第7章 表中数据的排序与分组 64

7.1 使用ORDER BY子句对数据记录进行排序 64

7.1.1 指定表中的一列进行排序 64

7.1.2 指定表中列的位置序号进行排序 66

7.1.3 对SELECT语句中的非选择列进行排序 66

7.1.4 指定表中的多列进行排序 67

7.2 常用的聚合函数 68

7.3 使用GROUP BY子句对表中数据进行分组 70

7.3.1 单列分组 70

7.3.2 多列分组 71

7.3.3 使用HAVING限制分组后的查询结果 72

7.3.4 对分组结果进行排序 73

7.3.5 GROUP BY子句中处理NULL值 73

7.4 使用ROLLUP关键字统计数据 74

7.5 限制结果集行数 75

7.5.1 使用MySQL数据库限制结果集行数 76

7.5.2 使用Oracle数据库限制结果集行数 77

7.5.3 使用Microsoft SQL Server数据库限制结果集行数 78

7.6 小结 79

第8章 连接查询与集合查询 80

8.1 内连接查询 80

8.1.1 等值连接 80

8.1.2 非等值连接 83

8.1.3 使用ON子句建立相等连接 84

8.1.4 使用USING子句建立相等连接 84

8.2 交叉连接 85

8.3 自连接查询 86

8.4 外连接查询 87

8.4.1 左外连接 88

8.4.2 右外连接 89

8.4.3 全外连接 91

8.5 集合查询 92

8.5.1 并操作 92

8.5.2 交操作 93

8.5.3 差操作 94

8.6 小结 96

第9章 子查询 97

9.1 单行子查询 97

9.2 多行子查询 98

9.2.1 使用IN运算符的子查询 98

9.2.2 使用ANY运算符的子查询 100

9.2.3 使用ALL运算符的子查询 102

9.3 多列子查询 103

9.4 相关子查询 105

9.4.1 带有EXISTS关键字的相关子查询 105

9.4.2 带有NOT EXISTS关键字的相关子查询 107

9.5 在SQL语句中使用子查询 108

9.5.1 在SELECT子句中使用子查询 108

9.5.2 在FROM子句中使用子查询 109

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

9.6 多重子查询 111

9.7 在CREATE TABLE语句中使用子查询实现数据表的复制 113

9.8 小结 115

第10章 常用函数 116

10.1 字符函数 116

10.1.1 计算字符串长度 116

10.1.2 将字符串全部转换为小写 118

10.1.3 将字符串全部转换为大写 118

10.1.4 将字符串中单词的首字母转换为大写 118

10.1.5 截取字符串 119

10.1.6 从指定字符串的左侧读取子串 122

10.1.7 从指定字符串的右侧读取子串 122

10.1.8 去除字符串左侧空格或者字符 123

10.1.9 去除字符串右侧空格或者字符 123

10.1.10 去除字符串两侧空格或者字符 124

10.1.11 左侧填充空格或者字符 126

10.1.12 右侧填充空格或者字符 127

10.1.13 取得指定的子串在字符串中的位置 129

10.1.14 颠倒指定字符串的顺序 133

10.1.15 替换指定的子串 134

10.1.16 字符替换 135

10.1.17 拼接字符串 136

10.1.18 取得字符的ASCII码 138

10.1.19 将ASCII码转换为相应的字符 139

10.1.20 匹配发音 139

10.1.21 将字符串重复指定次数 140

10.2 数字函数 141

10.2.1 求绝对值 141

10.2.2 求平方 142

10.2.3 求平方根 142

10.2.4 求对数 142

10.2.5 求幂 144

10.2.6 对指定值进行四舍五入操作 145

10.2.7 求两数相除的余数 146

10.2.8 取得大于等于指定数的最小整数 147

10.2.9 取得小于等于指定数的最大整数 147

10.2.10 求正弦与余弦值 147

10.2.11 求正切值与余切值 148

10.2.12 求反正弦和反余弦值 149

10.2.13 求反正切值 150

10.2.14 弧度与角度的互换 150

10.2.15 取得指定值的符号标志 151

10.2.16 对指定值进行截取操作 152

10.3 日期时间函数 152

10.3.1 取得当前系统的日期和时间 153

10.3.2 对日期值进行加减运算 154

10.3.3 取得日期之后指定工作日对应的日期 159

10.3.4 取得日期值中的指定内容 160

10.3.5 取得指定日期所在月的最后一天 164

10.3.6 取得两个指定月份的差 164

10.3.7 对日期时间进行舍入操作 165

10.3.8 截断指定的日期时间 165

10.4 类型转换函数 166

10.4.1 字符转换函数 166

10.4.2 日期转换函数 170

10.4.3 数值转换函数 175

10.5 比较函数 176

10.5.1 求集合中的最小值 176

10.5.2 求集合中的最大值 176

10.5.3 比较两个字符串 177

10.6 空值处理函数 177

10.6.1 NVL函数与IFNULL函数 177

10.6.2 NVL2函数 179

10.6.3 ISNULL函数 180

10.6.4 COALESCE函数 180

10.7 分支函数与条件表达式 181

10.7.1 IF函数 181

10.7.2 DECODE函数 182

10.7.3 CASE条件表达式 183

10.8 小结 186

第11章 视图的创建与删除 187

11.1 视图的作用 187

11.2 创建视图 187

11.2.1 基于单表创建视图 188

11.2.2 基于多表连接创建视图 189

11.2.3 基于函数、分组数据创建视图 190

11.2.4 为视图添加CHECK约束 191

11.2.5 基于一个已有视图创建新的视图 192

11.2.6 创建只读视图 193

11.3 删除视图 194

11.4 小结 194

第四篇 数据更新 195

第12章 插入数据记录 195

12.1 向数据表中插入数据记录 195

12.1.1 插入单行数据记录 195

12.1.2 向定义有外键约束的表中插入数据记录 197

12.1.3 使用子查询插入多行数据实现表中数据的复制 198

12.1.4 利用My SQL 5.0数据库一次插入多条数据记录 199

12.2 向视图中插入数据记录 200

12.3 小结 201

第13章 修改数据记录 202

13.1 在数据表中修改数据记录 202

13.1.1 修改单行数据记录 202

13.1.2 在定义有外键约束的表中修改数据记录 203

13.1.3 修改多行记录 205

13.1.4 使用子查询修改数据记录 205

13.1.5 使用CASE条件表达式修改多行记录 206

13.1.6 利用MySQL 5.0数据库一次修改多条数据记录 207

13.2 在视图中修改数据记录 208

13.3 小结 209

第14章 删除数据记录 210

14.1 使用DELETE语句删除数据记录 210

14.1.1 删除满足条件的数据记录 210

14.1.2 在定义有外键约束的表中删除数据记录 211

14.1.3 使用子查询删除指定条件的数据记录 212

14.1.4 利用MySQL 5.0数据库一次删除多条数据记录 213

14.1.5 删除数据表中所有记录 213

14.2 使用TRUNCATE语句删除数据表中所有记录 213

14.3 在视图中删除数据记录 214

14.4 小结 215

第五篇 数据控制 217

第15章 权限的授予与回收 217

15.1 数据库及其不同对象允许的操作权限 217

15.2 授予权限 218

15.2.1 授予指定用户操作数据表的权限 218

15.2.2 授予指定用户操作数据列的权限 219

15.2.3 授予指定用户授权的权限 219

15.2.4 授予创建数据表的权限 220

15.2.5 将操作权限授予所有用户 220

15.2.6 使用Administrator管理系统授予用户权限 220

15.3 回收权限 222

15.4 小结 222

第16章 事务的控制与管理 223

16.1 事务的概念 223

16.1.1 原子性 223

16.1.2 一致性 224

16.1.3 隔离性 224

16.1.4 持久性 224

16.2 控制事务 224

16.2.1 开始事务 224

16.2.2 提交事务 225

16.2.3 回滚事务 226

16.3 事务的并发控制 227

16.3.1 并发事务的工作流程 227

16.3.2 事务并发处理中存在的问题 229

16.3.3 事务的隔离级别 230

16.3.4 在数据库中设置隔离级别 230

16.3.5 设置事务访问模式 231

16.4 小结 232

第六篇 PL/SQL 233

第17章 PL/SQL概述 233

17.1 PL/SQL介绍 233

17.1.1 什么是PL/SQL 233

17.1.2 为什么要使用PL/SQL 234

17.2 一个PL/SQL的例子 235

17.3 PL/SQL编写规范 236

17.3.1 代码注释 236

17.3.2 标识符命名 236

17.3.3 字母大小写 236

17.3.4 代码缩进格式 237

17.4 PL/SQL开发工具简介 237

17.4.1 TOAD 237

17.4.2 Navicat 238

17.4.3 PL/SQL Developer 239

17.5 小结 241

第18章 PL/SQL基础 242

18.1 PL/SQL的块结构 242

18.1.1 基本语句块 242

18.1.2 匿名语句块 244

18.1.3 命名语句块 245

18.1.4 子程序 246

18.1.5 包 248

18.1.6 触发器 249

18.2 PL/SQL基本要素 250

18.2.1 标识符 250

18.2.2 分隔符 251

18.2.3 文字 251

18.2.4 注释 252

18.3 声明和初始化变量 253

18.4 PL/SQL数据类型 254

18.4.1 标量类型 255

18.4.2 复合类型 259

18.4.3 引用类型 260

18.4.4 LOB类型 260

18.5 定义和使用标量变量 260

18.5.1 定义标量变量 260

18.5.2 使用标量变量 261

18.5.3 使用%TYPE属性绑定变量 261

18.6 定义和使用复合类型 262

18.6.1 定义和使用记录 262

18.6.2 定义和使用表 264

18.6.3 定义和使用嵌套表 265

18.6.4 定义和使用变长数组 268

18.7 定义和使用子类型 269

18.7.1 定义子类型 269

18.7.2 使用子类型 270

18.8 变量的作用域 270

18.9 数据类型之间的相互转换 272

18.9.1 隐式数据类型转换 272

18.9.2 显式数据类型转换 272

18.10 小结 273

第19章 PL/SQL中的控制结构 274

19.1 分支控制 274

19.1.1 IF-THEN简单条件语句 274

19.1.2 IF-THEN-ELSE条件分支语句 275

19.1.3 IF-THEN-ELSEIF多重条件分支语句 276

19.1.4 嵌套的IF语句 278

19.2 CASE语句 279

19.2.1 实现等值比较的CASE语句 280

19.2.2 设定标记的CASE语句 282

19.2.3 搜寻式CASE语句 283

19.3 循环控制 284

19.3.1 LOOP循环语句 284

19.3.2 WHILE-LOOP循环语句 286

19.3.3 FOR-LOOP循环语句 287

19.3.4 嵌套循环 288

19.4 顺序控制 288

19.4.1 GOTO语句 288

19.4.2 NULL语句 291

19.5 小结 293

第20章 使用游标 294

20.1 什么是游标 294

20.2 使用显式游标 294

20.2.1 声明游标 295

20.2.2 打开游标 296

20.2.3 从游标中取得结果 297

20.2.4 关闭游标 297

20.2.5 使用BULK COLLECT子句批量绑定数据 298

20.2.6 在游标中使用子查询 299

20.3 游标属性 299

20.3.1 显式游标属性 299

20.3.2 隐式游标属性 302

20.3.3 显式游标属性与隐式游标属性比较 303

20.4 游标循环 303

20.4.1 简单LOOP循环 303

20.4.2 WHILE循环 306

20.4.3 游标FOR循环 307

20.4.4 使用游标修改和删除数据行 308

20.4.5 参数化游标 310

20.5 使用游标变量 312

20.5.1 声明游标变量 312

20.5.2 打开游标变量 313

20.5.3 取得数据结果 313

20.5.4 关闭游标变量 314

20.5.5 一个使用游标变量的例子 314

20.5.6 使用游标变量的一些限制 315

20.6 嵌套游标 316

20.7 小结 317

第21章 异常处理 318

21.1 为什么要使用异常处理 318

21.2 声明异常 320

21.3 抛出异常 321

21.4 捕获和处理异常 322

21.4.1 捕获和处理异常的语法规则 322

21.4.2 处理预定义异常 323

21.4.3 处理自定义异常 326

21.4.4 使用内置函数处理异常 327

21.4.5 编译提示EXCEPTION_INIT 329

21.5 异常处理机制 330

21.5.1 声明部分中异常的处理机制 330

21.5.2 可执行部分中异常的处理机制 331

21.5.3 异常处理部分中异常的处理机制 332

21.6 使用异常处理原则 334

21.6.1 对捕获的异常要进行处理 334

21.6.2 确保没有未处理的异常 334

21.6.3 标记异常发生的位置 335

21.6.4 控制异常处理程序 337

21.7 小结 338

第22章 存储过程 339

22.1 创建存储过程 339

22.2 参数模式 341

22.2.1 IN模式 341

22.2.2 OUT模式 344

22.2.3 IN OUT模式 347

22.3 调用存储过程 348

22.3.1 调用无参数的存储过程 348

22.3.2 调用带有输入参数的存储过程 348

22.3.3 调用带有输出参数的存储过程 350

22.3.4 调用带有输入输出参数的存储过程 351

22.4 参数传递 352

22.4.1 使用参数位置传递参数值 352

22.4.2 使用参数名称传递参数值 352

22.4.3 使用位置和名称传递参数值 353

22.4.4 使用NOCOPY编译提示传递参数 353

22.4.5 使用参数的默认值 355

22.5 删除存储过程 356

22.6 小结 356

第23章 函数 357

23.1 创建函数 357

23.1.1 创建函数的语法规则 357

23.1.2 函数体中的RETURN子句 358

23.1.3 创建有输入参数的函数 359

23.1.4 创建有输出参数的函数 360

23.1.5 创建有输入输出参数的函数 361

23.1.6 创建记录类型作为返回值的函数 362

23.1.7 创建集合类型作为返回值的函数 362

23.2 调用函数 363

23.2.1 调用无参数的函数 363

23.2.2 调用带有输入参数的函数 364

23.2.3 调用带有输出参数的函数 365

23.2.4 调用带有输入输出参数的函数 365

23.2.5 调用返回值为记录类型的函数 365

23.2.6 调用返回值为集合类型的函数 366

23.3 参数传递 367

23.3.1 使用参数位置传递参数值 367

23.3.2 使用参数名称传递参数值 367

23.3.3 使用参数名称和位置传递参数值 367

23.4 函数在SQL中的应用 368

23.4.1 纯度规则 368

23.4.2 在SQL中调用函数 369

23.5 删除函数 370

23.6 存储过程与函数 370

23.7 小结 371

第24章 包 372

24.1 创建包 372

24.1.1 创建包说明 372

24.1.2 创建包体 373

24.2 调用包中的公有元素 376

24.3 在包中使用重载 377

24.4 删除包 379

24.5 系统包 380

24.5.1 生成并发送报警信息的包DBMS_ALERT 380

24.5.2 输入和输出信息的包DBMS_OUTPUT 382

24.5.3 进行管道通信的包DBMS_PIPE 383

24.5.4 安排和管理PL/SQL语句块的包DBMS_JOB 387

24.5.5 处理LOB数据类型数据的包DBMS_LOB 389

24.6 小结 393

第25章 触发器 394

25.1 触发器简介 394

25.1.1 触发器的类型 394

25.1.2 触发器的用途 395

25.1.3 触发器的限制 395

25.2 创建DML触发器 396

25.2.1 创建语句触发器 396

25.2.2 创建行触发器 398

25.2.3 触发器谓词 400

25.3 创建DDL触发器 401

25.4 创建INSTEAD OF触发器 401

25.5 创建事件触发器 402

25.5.1 事件属性函数 403

25.5.2 创建系统事件触发器 405

25.5.3 创建用户事件触发器 407

25.6 管理触发器 407

25.6.1 禁用触发器 407

25.6.2 激活触发器 408

25.6.3 重新编译触发器 408

25.6.4 删除触发器 408

25.7 小结 409

第七篇 SQL应用 411

第26章 SQL语句性能优化 411

26.1 适当创建索引 411

26.2 优化查询语句 412

26.2.1 避免在SELECT语句中使用“*” 412

26.2.2 调整WHERE子句中连接条件的顺序 412

26.2.3 避免使用OR关键字 413

26.2.4 避免使用〈〉和!=操作符 414

26.2.5 相关子查询中使用EXISTS关键字代替IN关键字 414

26.2.6 使用LIKE关键字 415

26.2.7 避免使用HAVING子句 416

26.2.8 使用存储过程 416

26.3 规范SQL语句书写格式 416

26.4 小结 417

第27章 动态SQL 418

27.1 使用EXECUTE IMMEDIATE语句处理单行查询 418

27.2 使用游标变量处理多行查询 420

272.1 定义游标变量 420

27.2.2 打开游标变量 420

27.2.3 从游标变量取得数据 421

27.2.4 关闭游标变量 422

27.2.5 动态处理多行查询 422

27.3 批量绑定 423

27.3.1 使用FORALL语句批量绑定 423

27.3.2 使用EXECUTE IMMEDIATE语句批量绑定 424

27.3.3 使用FETCH语句批量绑定 425

27.4 使用DBMS_SQL包实现动态SQL 426

27.4.1 DBMS_SQL包中常用存储过程和函数 426

27.4.2 使用DBMS_SQL包实现动态SQL的查询操作 427

27.4.3 使用DBMS_SQL包实现动态SQL的DML操作 428

27.4.4 使用DBMS_SQL包实现动态SQL的DDL操作 429

27.5 小结 430

第28章 数据库的存取访问 431

28.1 数据库应用系统结构 431

28.1.1 集中式数据库系统 431

28.1.2 客户端/服务器端数据库系统 432

28.1.3 并行式数据库系统 432

28.1.4 分布式数据库系统 433

28.2 数据库连接访问 433

28.2.1 ODBC 433

28.2.2 OLE DB 433

28.2.3 ADO 434

28.2.4 JDBC 434

28.3 Java与MySQL 5.0数据库连接与访问 435

28.3.1 Java开发环境 435

28.3.2 安装Eclipse 437

28.3.3 添加MySQL 5.0驱动程序 439

28.3.4 Java与数据库的连接过程 439

28.4 Java与MySQL 5.0数据库开发 440

28.4.1 查询数据 440

28.4.2 更新数据 442

28.5 小结 444

附录A 常用SQL语句 445

附录B 常用函数对照 450

精品推荐