开放数据库互连-ODBC 2使用大全PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:美国Que Corporation著;孟小峰等译
- 出 版 社:北京:清华大学出版社
- 出版年份:1995
- ISBN:7302020353
- 页数:355 页
第一部分 ODBC API 1
第1章 ODBC导论 1
1.1 什么是ODBC 1
1.2 ODBC的工作原理 2
1.3 ODBC的来源 3
1.4 使用ODBC的原因 3
1.5 如何使用ODBC 4
1.5.1 VisualC++2.0 4
1.5.2 Visual Basic专业版 4
1.5.3 MSDN-II CD-ROM:ODBC 2.0的SDK 5
1.5.4 桌面数据库驱动程序集 5
1.6 如何学习使用ODBC 6
1.6.1 关系模型 6
1.6.2 结构查询语言(SQL)语法 6
1.7 ODBC的发展方向 7
1.8 阅读指南 7
第2章 关系数据库模型 8
2.1 关系模型的发展历史 8
2.2 关系模型的结构 8
2.2.1 数据结构 8
2.2.2 完整性规则 9
2.2.3 数据操作 11
2.3 关系数据库设计 14
2.3.1 定义实体 15
2.3.2 定义联系 17
2.3.3 定义属性 22
2.3.4 递归联系 26
2.3.5 历史数据表 27
2.3.6 一个完整的例子 29
2.4 阅读指南 31
第3章 客户/服务器语言:SQL 33
3.1 SQL的历史 33
3.2 ODBC数据类型 33
3.3 对象名称 35
3.4 数据定义语言 35
3.4.1 表 35
3.4.2 索引 37
3.4.3 视图 38
3.5 数据控制语言 42
3.5.1 授权 42
3.5.2 回收权限 43
3.6 数据操纵语言 44
3.6.1 DELETE 44
3.6.2 INSERT 45
3.6.3 简单的SELECT语句 46
3.6.4 LIKE谓词 47
3.6.5 DISTINCT关键字 48
3.6.6 ORDER BY子句 48
3.6.7 IN谓词 49
3.6.8 BETWEEN谓词 49
3.6.9 表达式 50
3.6.10 函数 50
3.6.11 日期、时间和时间戳 51
3.6.12 简单连接 52
3.6.13 复杂连接 55
3.6.14 集函数 57
3.6.15 子查询 59
3.6.16 并查询 60
3.6.17 FOR UPDATE子句 60
3.6.18 UPDATE 61
3.6.19 调用过程 62
3.7 阅读指南 62
第4章 ODBC结构概述 63
4.1 数据库接口 63
4.1.1 本地型数据库接口 63
4.1.2 客户/服务器型数据库接口 65
4.2 ODBC的折衷:中介驱动程序 67
4.3 ODBC的驱动程序结构 67
4.3.1 单束式驱动程序 67
4.3.2 多束式驱动程序 68
4.4 16位和32位ODBC驱动程序 70
4.5 一个典型的ODBC会话 70
4.6 阅读指南 71
第5章 数据源与驱动程序 72
5.1 如何安装和使用ODBC管理器 72
5.2 如何配置日志登记项 73
5.3 什么是ODBC驱动程序 74
5.4 ODBC驱动程序的分类 75
5.4.1 API一致性 75
5.4.2 SQL语法一致性 76
5.4.3 驱动程序类型 77
5.5 如何通过ODBC管理器创建数据源 77
5.6 选择驱动程序及其方法 78
5.6.1 支持多种数据库 78
5.6.2 支持单一数据库 79
5.7 阅读指南 79
第6章 创建ODBC环境和连接 80
6.1 启动ODBC项目所需的准备工作 80
6.2 ODBC环境 80
6.3 捕获错误 82
6.3.1 调用SQLError()函数 83
6.3.2 利用错误代码 84
6.4 如何建立和释放一个连接 85
6.5 如何建立与数据源的连接 86
6.5.1 与特定的数据源建立连接 86
6.5.2 让用户选择数据源 87
6.6 如何设置、获取连接选项 89
6.6.1 调用函数SQLSetConnectOption() 89
6.6.2 调用函数SQLGetConnectOption() 89
6.6.3 一些通用的连接选项 90
6.7 如何与数据源脱离连接 90
6.8 阅读指南 91
第7章 字典和统计函数 92
7.1 获取数据库中的表名 93
7.2 表中的列 94
7.2.1 函数SQLTables()的结果集 94
7.2.2 函数SQLColumns() 94
7.2.3 函数SQLColumns()的结果集 94
7.2.4 函数SQLSpecialColumns() 95
7.2.5 函数SQLSpecialColumns()的结果集 96
7.3 与表相关的索引 96
7.3.1 函数SQLPrimaryKeys() 96
7.3.2 函数SQLForeignKeys() 96
7.3.3 函数SQLForeignKeys()的结果集 97
7.4 了解哪些存储过程可用 97
7.4.1 函数SQLProcedures() 97
7.4.2 函数SQLProcedures()的结果集 98
7.4.3 函数SQLProcedureColumns() 98
7.4.4 函数SQLProcedureColumns()的结果集 99
7.5 用户权限 99
7.5.1 函数SQLTablePrivileges() 99
7.5.2 函数SQLTablePrivileges()的结果集 100
7.5.3 函数SQLColumnPrivileges() 100
7.5.4 函数SQLColumnPrivileges()的结果集 100
7.6 下一步做什么 101
7.7 阅读指南 103
第8章 ODBC语句:简介 104
8.1 创建和释放语句句柄 104
8.1.1 创建语句句柄 105
8.1.2 释放语句句柄 105
8.2 执行语句 106
8.2.1 直接式执行 106
8.2.2 预备式执行 106
8.3 配置语句选项 107
8.3.1 获取语句选项值 107
8.3.2 设置语句选项 108
8.4 同步和异步执行 108
8.4.1 同步执行 108
8.4.2 异步执行 108
8.4.3 设置执行模式 109
8.5 查询结果集 109
8.6 如何重用语句句柄 110
8.7 事务处理 111
8.7.1 多语句事务 112
8.7.2 事务模式 113
8.7.3 回滚 114
8.8 阅读指南 114
第9章 利用DDL创建表 115
9.1 创建表 116
9.1.1 如何创建表 116
9.1.2 何时创建表 116
9.2 删除表 117
9.2.1 如何删除表 117
9.2.2 何时删除表 117
9.3 为表创建索引 117
9.3.1 如何创建索引 118
9.3.2 何时创建索引 118
9.4 删除索引 118
9.4.1 如何删除索引 118
9.4.2 何时删除索引 119
9.5 修改表 119
9.5.1 如何修改表 119
9.5.2 何时修改表 120
9.6 创建视图 120
9.6.1 如何创建视图 121
9.6.2 何时创建视图 121
9.7 删除视图 121
9.7.1 如何删除视图 121
9.7.2 何时删除视图 121
9.8 阅读指南 122
第10章 插入、更新和删除记录 123
10.1 向数据库中插入记录 123
10.2 更新数据库中的记录 124
10.3 从数据库中删除记录 125
10.4 了解表中被改动的记录数 126
10.5 维护参照完整性 127
10.5.1 注意非法关系 127
10.5.2 将多个操作组织成事务 128
10.5.3 触发子的返回信息 132
10.6 只读模式 132
10.7 阅读指南 133
第11章 查询和结果集 134
11.1 SQL SELECT语句 134
11.2 操作的顺序 135
11.3 查询的设置 136
11.4 检查结果集中的记录数 136
11.5 了解结果集中的列信息 137
11.5.1 SQLDescribeCol() 137
11.5.2 SQLColAttributes() 138
11.6 检查结果集中返回的记录数 139
11.7 绑定 139
11.7.1 列绑定 140
11.7.2 行绑定 141
11.8 提取数据 142
11.8.1 SQLGetData() 142
11.8.2 SQLFetch() 143
11.8.3 SQLExtendedFetch() 144
11.9 查询后处理 144
11.10 阅读指南 145
第12章 就绪语句的参数设置 146
12.1 设置参数的基本方法 146
12.2 定义参数值 147
12.2.1 绑定参数值 147
12.2.2 在执行时传送数据 149
12.2.3 多个参数值 150
12.3 获取参数信息 151
12.3.1 获取参数的详细信息 151
12.3.2 获取参数数目 152
12.3.3 获取参数及其相关列的列表 152
12.4 传送和接受过程参数 154
12.5 清除参数 155
12.6 阅读指南 155
第13章 游标库和定位操作 156
13.1 游标库和游标 156
13.2 通过游标处理结果集 157
13.2.1 定义游标名 158
13.2.2 结果集高速缓存 159
13.2.3 设置游标位置 160
13.2.4 取得多行数据 161
13.3 定位修改和删除操作 163
13.3.1 SELECT FOR UPDATE 164
13.3.2 WHERE CURRENT OF 164
13.3.3 通过SQLSetPos()的定位操作 165
13.4 查看驱动程序对游标的支持情况 166
13.4.1 SQL_CURSOR_COMMIT_BEHAVIOR 166
13.4.2 SQL_CURSOR_ROLLBACK_BEHAVIOR 167
13.4.3 SQL_BOOKMARK_PERSISTENCE 167
13.4.4 SQL_FETCH_DIRECTION 167
13.4.5 SQL_LOCK_TYPES 168
13.4.6 SQL_MAX_CURSOR_NAME_LEN 168
13.4.7 SQL_POS_OPERATIONS 168
13.4.8 SQL_POSITIONED_STATEMENTS 168
13.4.9 SQL_ROW_UPDATES 169
13.4.10 SQL_SCROLL_CONCURRENCY 169
13.4.11 SQL_SCROLL_OPTIONS 169
13.4.12 SQL_STATIC_SENSITIVITY 169
13.5 连接和语句选项 170
13.5.1 设置游标连接选项 170
13.5.2 取得游标的连接选项 171
13.5.3 设置游标语句选项 171
13.5.4 获取游标语句选项 173
13.6 释放游标 173
13.7 阅读指南 174
第二部分 Visual C++ 175
第14章 使用Wizard 175
14.1 应用实例 175
14.2 建立连接 177
14.3 使用AppWizard 178
14.3.1 启动AppWizard 179
14.3.2 步骤一 179
14.3.3 步骤二 179
14.3.4 选择数据源和表 180
14.3.5 步骤三 181
14.3.6 步骤四 181
14.3.7 步骤五 181
14.3.8 步骤六 181
14.3.9 确认项目信息 181
14.3.10 创建和运行应用程序 181
14.4 创建视图 182
14.4.1 打开IDD_RAIL_FORM 182
14.4.2 设计新的对话框 183
14.4.3 打开ClassWizard 183
14.4.4 将控制项与字段相连 183
14.4.5 创建和运行应用程序 184
14.5 应用程序是如何工作的 185
14.6 用ClassWizard创建Recordset类 187
14.7 阅读指南 190
第15章 使用传递机制 191
15.1 遍历一张表 191
15.1.1 建立Pennsylvania Railroad数据源 193
15.1.2 创建一个CTrainSet类 193
15.1.3 添加新的菜单项 193
15.1.4 创建一个Train List对话框 193
15.1.5 创建一个CTrainListDialog类 193
15.1.6 添加一个列表变量 194
15.1.7 添加成员变量 194
15.1.8 添加装入列表的代码 195
15.1.9 添加消息处理函数 195
15.1.10 添加命令处理函数 196
15.1.11 建立和运行程序 196
15.2 记录的筛选和排序 197
15.2.1 添加成员变量 198
15.2.2 创建暗示 198
15.2.3 修改OnTrainsSelect函数 198
15.2.4 添加OnUpdate函数 199
15.2.5 为记录集添加筛选器 199
15.2.6 建立和运行程序 200
15.3 使用异常捕捉错误 200
15.4 添加和更新记录 201
15.4.1 创建菜单项Add Record 203
15.4.2 创建成员变量m_InAddMode 203
15.4.3 为ID_RECORD_ADDRECORD创建一个处理函数 203
15.4.4 为CRailView创建一个OnMove函数 204
15.4.5 创建和运行程序 204
15.5 删除 205
15.5.1 创建一个Delete Record菜单项 205
15.5.2 为ID_RECORD_DELETERECORD创建一个处理函数 205
15.5.3 建立并运行程序 206
15.6 统计值 206
15.6.1 创建一个Compute Weight菜单项 207
15.6.2 创建一个新的CRecordset类 207
15.6.3 去掉不需要的变量 207
15.6.4 修改字段传递函数 207
15.6.5 为ID_TRAINS_EMPTYWEIGHT创建一个处理函数 208
15.6.6 建立并运行程序 208
15.7 列的动态绑定 209
15.7.1 创建浏览器对话框 209
15.7.2 创建新的记录集类 210
15.7.3 为对话框建立一个对话框类 211
15.7.4 创建映像和变量 211
15.7.5 创建Browse Info菜单项 212
15.7.6 为ID_TRAINS_BROWSEINFO创建一个处理函数 212
15.7.7 建立并运行程序 213
15.8 阅读指南 213
第16章 多表表格 214
16.1 执行连接 214
16.1.1 修改IDD_RAIL_FORM 215
16.1.2 创建成员变量 215
16.1.3 创建消息处理函数 215
16.1.4 完成列表框 215
16.1.5 创建成员变量 216
16.1.6 修改GetDefaultSQL方法 216
16.1.7 修改DoFieldExchange方法 217
16.1.8 创建函数 217
16.1.9 建立并运行程序 218
16.2 参数化记录集 218
16.2.1 添加一个新的成员变量到CRailSet类中 219
16.2.2 加入初始化语句 220
16.2.3 添加新的成员变量 220
16.2.4 建立筛选字符串 221
16.2.5 建立参数化筛选字符串 221
16.2.6 更新参数值 221
16.2.7 建立并运行程序 222
16.3 操作多个数据源 222
16.3.1 添加控制项 223
16.3.2 为控制项创建一个成员变量 223
16.3.3 为RailroadDatabases表创建一个CRecordSet类 224
16.3.4 添加一个OnInitDialog函数 224
16.3.5 完成该控制项 224
16.3.6 修改OnUpdate消息 225
16.3.7 建立并运行程序 226
16.4 使用SQL语句 226
16.5 阅读指南 227
第三部分 Visual Basic 228
第17章 在Visual Basic ODBC 2.0应用程序中使用数据控制项 228
17.1 选择可行的设计方法 228
17.1.1 三种可行的设计策略 228
17.1.2 确定何时使用何种方法 230
17.1.3 将几种不同技术结合使用 232
17.2 建立合适的开发环境 232
17.2.1 构造ODBC 2.0的Visual Basic工作台 232
17.2.2 采用何种设计方法——一些建议 234
17.2.3 开发Visual Basic ODBC 2.0应用程序 236
17.2.4 应用程序的打包及分置 236
17.3 Visual Basic数据库的体系结构 238
17.3.1 理解Visual Basic的数据库引擎 239
17.3.2 ODBC 2.0的工具和数据库接口 240
17.3.3 使用数据控制项的动态集 240
17.4 使用ODBC的管理对话框 242
17.4.1 选择ODBC 2.0的数据源 243
17.4.2 配置ODBC 2.0的数据源 243
17.4.3 使用多个数据源 243
17.5 执行SQL查询 244
17.5.1 准备SQL查询 244
17.5.2 使用Microsoft Query来进行特定查询 245
17.5.3 提交SQL查询 246
17.5.4 检查SQL查询 246
17.6 使用数据控制项的结果集 246
17.6.1 使用Visual Basic的绑定控制项 246
17.6.2 使用结果集的编程技术 248
17.7 加入自定义控制项 248
17.7.1 浏览查询结果集 248
17.7.2 做好打印查询结果集的准备 250
17.7.3 评估数据觉察自定义控制项 251
17.7.4 使用Microsoft OCX控制项 251
17.7.5 利用OLE 2.x Automation 252
17.7.6 展望Visual Basic的未来 253
17.8 捕获并处理错误 253
17.8.1 处理ODBC 2.0错误 253
17.8.2 解释ODBC错误返回信息 253
17.9 阅读指南 254
第18章 在Visual Basic ODBC 2.0应用程序中使用数据存取对象 255
18.1 理解数据存取对象变量 255
18.1.1 使用数据库对象变量进行编程 256
18.1.2 使用数据库对象 257
18.1.3 使用TableDefs对象 257
18.1.4 使用表对象 262
18.1.5 使用快照对象 264
18.1.6 使用动态集对象 266
18.2 设计可生成数据库的应用程序 269
18.2.1 创建新数据库 269
18.2.2 复制数据库 270
18.3 设计有关查询结果的应用程序 271
18.3.1 设计并执行SQL语句 271
18.3.2 如何与结果集交互 271
18.3.3 如何获得结果集中的值 272
18.4 设计事务处理应用程序 272
18.4.1 使用SQL语句来完成用户事务 273
18.4.2 使用记录集方法来进行事务处理 273
18.4.3 管理事务的一致性 275
18.5 阅读指南 276
第19章 在Visual Basic应用程序中使用ODBC API 277
19.1 确定何时使用ODBC 2.0 API 277
19.1.1 确定所需的API控制级别 277
19.1.2 应用程序性能 278
19.1.3 获取更详细的操作信息和错误信息 282
19.2 利用ODBC 2.0 API调用进行直接控制 282
19.2.1 API函数的调用顺序 283
19.2.2 有关ODBC函数的说明 283
19.2.3 管理数据结构和句柄 285
19.3 对ODBC 2.0 API函数、常量及变量的声明 285
19.3.1 使用ODBC2.0 SDK的Visual Basic例程 286
19.3.2 选择ODBC的一致性级别 286
19.4 编写Visual Basic程序 289
19.4.1 与数据源建立连接 289
19.4.2 预备SQL语句 292
19.4.3 提交SQL语句 293
19.4.4 检索结果集 293
19.4.5 使用状态信息和错误信息 295
19.4.6 终止语句、连接和环境 296
19.5 使用ODBC 2.0 API对结果集进行编程 297
19.5.1 对结果集数据结构的操作 298
19.5.2 对结果集游标的操作 298
19.6 ODBC 2.0开发工具的调试及功能测试 299
19.6.1 使用ODBC跟踪器记录有关数据源的操作 299
19.6.2 使用ODBC Spy监控ODBC事务 300
19.7 阅读指南 301
第四部分 高级话题 302
第20章 ODBC优化 302
20.1 首先正确地设计数据库 302
20.2 选择较优的驱动程序 303
20.3 只检查一次每个驱动程序的能力 303
20.4 避免Disconnecting/Reconnecting操作 304
20.5 仔细选择同步/异步模式 305
20.6 在SQLExecute()和SQLExecDirect()之间作一选择 305
20.6.1 使用SQLExecDirect()的时机 305
20.6.2 使用SQLExecute()的时机 306
20.7 较优地使用结果集 306
20.8 注意绑定主码列 306
20.9 在不需要书签时将其关闭 307
20.10 选择最低可用的事务隔离级别 307
20.11 利用跟踪工具测试代码 307
20.11.1 SQL_OPT_TRACEFILE 307
20.11.2 SQL_OPT_TRACE 308
20.11.3 解释跟踪结果 308
20.12 阅读指南 308
第21章 参照完整性 309
21.1 关系数据库模型的完整性 309
21.1.1 实体完整性 309
21.1.2 参照完整性 310
21.2 确保完整性的方法 311
21.2.1 在修改时通过DBMS服务程序确保完整性 311
21.2.2 在输入时通过应用程序代码确保完整性 311
21.2.3 通过事后处理来保证完整性 311
21.3 SQL的嵌入完整性保证关键字 312
21.3.1 确保主码的有效性 313
21.3.2 限制域值 313
21.3.3 防止域取值为NULL 314
21.3.4 确保外码的有效性(参照完整性) 314
21.4 阅读指南 314
第22章 成功的规模缩减 315
22.1 选择一个规模缩减模型 315
22.1.1 移植 316
21.1.2 重编码 317
22.1.3 新前端 317
22.2 选择硬件和软件平台 318
22.2.1 通用的硬件平台 318
22.2.2 PC机数据库 319
22.2.3 客户/服务器数据库 319
22.3 使用ODBC扩展选择范围 320
22.3.1 在权衡花销和性能的基础上选择硬件和软件 321
22.3.2 集成终端用户工具 321
22.4 作出规模缩减的系统原型 321
22.4.1 标识对性能有较高要求的部件 321
22.4.2 确保各软件的协调工作 322
22.4.3 仿真系统 322
22.5 获得所需的性能 323
22.5.1 ODBC和系统性能 323
22.5.2 数据库设计 323
22.5.3 SQL的能力 324
22.5.4 超级工作站 325
22.5.5 瓶颈 325
22.6 避免常见的失败情况 326
22.6.1 不要将小和简单混为一谈 327
22.6.2 获得用户的参与 327
22.6.3 充分了解系统 327
22.6.4 提高系统开发技术 327
22.7 阅读指南 328
第五部分 附录 329
附录A SDK中的资源 329
A.1 ODBC Test程序 329
A.2 ODBC Spy程序 330
A.3 ODBC Help文件 331
A.3.1 API参考 331
A.3.2 版本注释 332
A.3.3 技术注释 332
A.3.4 ODBC驱动程序和工具 332
A.3.5 ODBC样本应用程序 332
A.4 ODBC样本应用程序 333
A.4.1 Visual Basic样本程序 333
A.4.2 C++样本程序 334
A.4.3 QueryDemo样本程序 334
A.4.4 游标样本程序 335
A.4.5 管理样本程序 336
A.4.6 DLL Viewer和Translation Spy样本程序 337
A.4.7 样本ODBC驱动程序 337
A.4.8 快速测试程序(The Quick Test) 338
A.5 小结 338
附录B ODBC函数参考 339
附录C 本书附带CD-ROM中的内容 349
C.1 本书使用的样本程序代码 349
C.2 数据库列表 349
C.3 供应商列表 349
C.4 CD-ROM中的演示程序 349
C.4.1 Paradox for Windows 349
C.4.2 ?BASE for Windows 5.0 349
C.4.3 Jet Inspector v2.0 350
C.4.4 ODBC Inspector v2.0 350
C.4.5 SQLInspector v2.0 350
C.4.6 South Wind Design中的帮助文件 350
C.4.7 Products目录 350
C.4.8 Shareware目录 351
C.4.9 白皮书 352
C.4.10 术语词汇表 352
词汇表 353
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《“十三五”规划教材 中药鉴定学实验 供中药学 药学及相关专业使用 第2版》吴啟南 2018
- 《多元与开放》赵国权著 2020
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《穿越数据的迷宫 数据管理执行指南》Laura Sebastian-Coleman 2020
- 《大数据环境下的信息管理方法技术与服务创新丛书 俄罗斯档案事业改革与发展研究》徐胡乡责编;肖秋会 2019
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019