3.5.3 drop()的用法

上海小胖
博客专家认证
2023-01-12 21:50:54

课时名称课时知识点
3.5.3 drop()的用法
...全文
112 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24 §1.2.2 数据字典概念 25 §1.3 SQL、SQL*Plus及 PL/SQL 25 §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介 32 §1.5.1 登录到SQL*PLUS 32 §1.5.2 EXIT和QUIT 32 §1.5.3 DESCRIBE(显示表、视图结构) 33 §1.5.4 LIST(列出)命令 33 §1.5.5 Change(替换字符串)命令 34 §1.5.6 Append(追加字符串)命令 34 §1.5.7 Save保存当前缓冲区命令到文件 35 §1.5.8 GET将命令文件读到缓冲区 35 §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 37 §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL中的单记录函数 50 §2.2.1 单记录字符函数 50 §2.2.2 单记录数字函数 56 §2.2.3 单记录日期函数 62 §2.2.4 单记录转换函数 65 §2.2.5 其它的单记录函数 68 §2.3 SQL中的组函数 73 §2.3.1 多记录组函数 73 §2.3.2 带 GROUP BY 的计算 75 §2.3.3 用 HAVING 来限制分组的计算 75 §2.4 控制和格式化输出 76 §2.4.1 用 ORDER BY 子句来对结果进行排序 76 §2.4.2 用 BREAK 命令 来对结果进行排列 76 §2.4.3 用 COMPUTE 命令对结果进行格式化 79 §2.5 配置会话环境 82 §2.5.1 ARRAYSIZE(取回的行数) 82 §2.5.2 AUTOCOMMIT(自动提交) 83 §2.5.3 LINESIZE(行显示宽度) 83 §2.5.4 LONG(长类型显示字节数) 83 §2.5.5 PAGESIZE(页行数) 83 §2.5.6 PAUSE(暂停) 84 §2.5.7 SPACE(列间空格) 84 §2.5.8 Termout (启/停屏幕显示) 84 §2.5.9 ECHO (启/停命令显示) 84 §2.5.10 TRANSACTION (启动事务) 85 §2.5.11 SHOW ALL(列出所有参数) 85 §2.6 格式化输出 87 §2.6.1 一般数据的格式化输出 87 §2.6.2 日期的格式化输出 88 §2.7 加标题 89 §2.8 建立简单报告 90 §2.9 输入变量 91 第三章 表及索引的定义操作 94 §3.1 建立表结构 94 §3.1.1 建立表结构命令 94 §3.1.2 建立表结构例子 96 §3.1.3 建立临时表结构 97 §3.3 修改表结构 98 §3.3.1 修改表结构命令 98 §3.3.2 修改表结构例子 99 §3.3.3 删除表结构 101 §3.3.4 使用CHECK作限制约束 101 §3.3.5 使用UNRECOVERABLE创建表 102 §3.3.6 将表移动到新的数据段或新的表空间 102 §3.3.7 手工分配表的存储空间 104 §3.3.8 标记不使用的列和删除不使用的列 104 §3.3 主键 106 §3.3.1 创建主键 106 §3.3.2 改变主键 109 §3.3.3 删除主键 109 §3.4 外部键 110 §3.4.1 建立外部键 110 §3.4.2 修改外部键 112 §3.4.3 删除外部键 112 §3.5 索引 112 §3.5.1 建立索引 112 §3.5.2 修改索引 114 §3.5.3 删除索引 115 §3.6 新索引类型 115 §3.6.1 基于函数的索引 115 §3.6.2 反向键索引 117 §3.6.3 索引组织表 117 §3.7 抽象数据类型的使用 118 §3.8 大数据类型的使用 119 §3.8.1 可用数据类型 119 §3.8.2 为LOB数据类型指定存储 120 §3.8.3 操作和检索LOB数据 121 §3.9 表和索引有关的数据字典 124 §3.9.1 表和索引数据字典 124 §3.9.2 数据字典查询例子 125 第四章 视图、同义词和序列 128 §4.1 视图 128 §4.1.1 使用视图来修改表中数据 128 §4.1.2 创建一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1 创建实体视图 131 §4.2.2 创建实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 修改实体视图日志 141 §4.2.45 实体视图完整例子 142 §4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 149 §4.5 视图、同义词和序列有关的数据字典 149 第五章 簇与分区 150 §5.1 簇( cluster ) 150 §5.1.0 簇概念 150 §5.1.1 建立簇 152 §5.1.2 改变簇 155 §5.1.3 删除簇 155 §5.1.4 删除簇索引 156 §5.1.5 收集簇信息 156 §5.2 分区 158 §5.2.1 分区的优点 158 §5.2.2 分区的方法 159 §5.2.3 创建表的分区 159 §5.2.3 创建索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 169 §5.3.1 分区、簇数据字典列表 169 §5.3.2 基本的分区、簇信息查询 169 第六章 使用SQL 进行数据操作 170 §6.1 INSERT操作 170 §6.1.1 用文字插入操作 171 §6.1.2 用子查询插入操作 171 §6.2 UPDATE操作 172 §6.2.1 用文字更新操作 173 §6.2.2 用查询更新操作 173 §6.2.3 用相关子查询更新操作 174 §6.3 DETELE操作 174 §6.3.1 用delete删除全部记录的操作 174 §6.3.2 用delete有条件删除部分记录 175 §6.3.3 用delete分段删除大量记录 175 §6.4 insert、delete及update 的提交和撤消 176 §6.4.1 自动提交的设置 176 §6.4.2 保留点和撤消 177 第七章 复杂查询语句的使用 180 §7.1 复杂查询语句的使用 180 §7.1.1 相关子查询 180 §7.1.2 外连接 180 §7.1.3 自我连接 181 §7.1.4 UNION,INTERSECT及MINUS 182 §7.2 创建复杂的视图 183 §7.2.1 分组视图 183 §7.2.2 合计视图 183 §7.2.3 组合视图 184 §7.3 家族树 184 §7.3.1 排除单一体和分枝 184 §7.3.2 遍历至根 185 §7.4 在from 中使用视图 187 第八章 一些高级的用法 188 §8.1 关于DECODE 188 §8.1.1 DECODE 中的if-then-else逻辑 188 §8.1.2 DECODE 的简单例子 188 §8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词获得本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称服务器 196 §8.3 关于上下文的使用 196 §8.3.1 设置上下文选项 196 §8.3.2 为上下文查询设置表 197 §8.3.3 优化文本索引 199 §8.4 关于维数(DIMENSION) 199 §8.4.1 CREATE DIMENSION语法 200 §8.4.2 创建维的例子 201 第九章 安全管理 203 §9.1 CREATE USER 命令 203 §9.2 建立用户 204 §9.2.1 外部验证(Authenticated )用户 204 §9.2.2 全局(Globally)验证用户-企业验证 204 §9.3 ALTER USER 命令 205 §9.4 DROP USER 命令 205 §9.5 GRANT 命令与REVOKE 命令 206 §9.5.1 GRANT 命令 206 §9.5.2 REVOKE 命令 206 §9.6 权限和角色 207 §9.6.1 建立角色 207 §9.6.2 给角色授权 208 §9.6.3 授权角色给用户 209 §9.7 有关的数据字典 209 §9.7.1 与用户、角色与权限有关的数据字典 209 §9.7.2 查询数据字典信息 209 第十章 其它一些常见问题及技巧 212 §10.1 一些常见问题 212 §10.1.1 Oracle与2000年问题 212 §10.1.2 如何正确插入日期数据 213 §10.1.3 在查询中只返回满足条件的部分记录 214 §10.1.4 快速大量删除数据Truncate 215 §10.1.5 Rowid的使用 215 §10.1.6 在查询中不让记录被更新 217 §10.1.7 EXCEPTIONS(违反完整性)问题 217 §10.1.8 Not in和Not Exists 218 §10.1.9 关于 COPY命令 218 §10.1.10 列值为NULL情形的处理 219 §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §10.2.2 如何确定执行时间 222 §10.2.3 如何终止用户会话 222 §10.2.4 用TRANSLATE对数据加密和解密 224 §10.2.5 如何用查询来修改数据 225 §10.2.6 如何产生创建用户的脚本 226 §10.2.7 如何产生创建表结构的脚本 227 §10.2.8 如何产生创建视图的脚本 229 §10.2.9 如何产生创建序号的脚本 229 §10.2.10 如何为用户创建公共同义词 229 第二部分 Oracle PL/SQL基础 231 第十一章 PL/SQL 程序设计简介 231 §11.1 概述 231 §11.2 SQL与PL/SQL 231 §11.2.1 什么是PL/SQL? 231 §11.2.1 PL/SQL的好处 232 §11.2.1.1 有利于客户/服务器环境应用的运行 232 §11.2.1.2 适合于客户环境 232 §11.2.1.3 客户及服务器端的好处 232 §11.2.2 PL/SQL 可用的SQL语句 233 §11.3 运行PL/SQL程序 233 §11.4 PL/SQL内置包 234 第十二章PL/SQL 块结构和组成元素 235 §12.1 PL/SQL结构 235 §12.2 PL/SQL块 236 §12.3 标识符 236 §12.4 PL/SQL 变量类型 237 §12.4.1 变量类型 237 §12.4.2 复合类型(记录和表) 238 §12.4.3 使用%ROWTYPE 240 §12.4.4 LOB类型 240 §12.4.5 用户定义的子类型 241 §12.4.6 数据类型的转换 243 §12.5 运算符和表达式(数据定义) 243 §12.5.1 关系运算符 243 §12.5.2 一般运算符 244 §12.5.3 逻辑运算符 244 §12.6 变量赋值 245 §12.6.1 字符及数字运算特点 245 §12.6.2 Boolean 赋值 245 §12.6.3 数据库赋值 245 §12.6.4 可转换的类型赋值 246 §12.7 变量作用范围以可见性 248 §12.8 注释 248 §12.9 简单例子 249 §12.9.1 简单数据插入例子 249 §12.9.2 简单数据删除例子 249 第十三章PL/SQL 处理流程 250 §13.1 条件语句 250 §13.2 循环 251 §13.3 标号和GOTO 254 §13.4 NULL 语句 255 第十四章 光标的使用 255 §14.1 光标概念 255 §14.1.1 处理显式光标 255 §14.1.2 处理隐式光标 257 §14.2 光标循环 258 §14.2.1 简单循环 258 §14.2.2 WHILE循环 259 §14.2.3 光标 FOR 循环 260 §14.2.4 关于NO_DATA_FOUND和%NOTFOUND 260 §14.2.5 SELECT FOR UPDATE 光标 261 §14.3 光标变量 262 §14.3.1 声明光标变量 262 §14.3.2 为光标变量分配存储空间 262 §14.3.3 打开光标变量 262 §14.3.4 关闭光标变量 262 §14.3.5 光标变量例子 263 §14.3.6 光标变量 265 第十五章 错误处理 267 §15.1 异常处理概念 267 §15.1.1 预定义的异常处理 267 §15.1.2 触发异常情态 268 §15.1.3 处理异常情态 269 §15.1.4 用户定义的异常处理 270 §15.2 异常情态传播 271 §15.2.1 在执行部分引发异常情态 271 §15.2.2 在声明部分引发异常情态 272 §15.3 异常处理编程 273 §15.4 在 PL/SQL 中使用 sqlcode,sqlerrm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑存储过程源码 279 §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 282 §16.4.1 使用系统定义的例外处理 282 §16.4.1.1 没有例外处理的缺点 283 §16.4.1.2 使用预定义的例外处理 283 §16.4.2 使用用户定义的例外处理+ 286 §16.4.2.1 定义的用户例外处理 286 §16.4.2.2 使用户EXCEPTION_INIT处理 286 §16.4.2.3 使用户raise_application_error处理 286 第十七章 创建包和使用包 287 §17.1 引言 287 §17.2 包的定义 288 §17.3 包的开发步骤 289 §17.4 包的头部说明 289 §17.5 包体的说明 290 §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关的数据字典 293 §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章 触发器 297 §18.1 触发器类型 297 §18.1.1 DML触发器 297 §18.1.2 替代触发器 298 §18.1.3 系统触发器 298 §18.2 创建触发器 298 §18.2.1 创建DML触发器 299 §18.2.2 创建替代(Instead_of)触发器 300 §18.2.3 创建系统触发器 300 §18.2.4 触发器触发次序 302 §18.2.5 使用触发器谓词 302 §18.3 删除和使能触发器 303 §18.4 创建触发器的限制 304 §18.5 变异表 305 §18.5.1 变异表典型例子 307 §18.5.2 变异表错误的处理 308 §18.6 触发器数据字典与管理 309 §18.6.1 触发器数据字典 309 §18.6.2 无效触发器的编译 310 第十九章 外部存储过程 311 §19.1 什么是外部例程 311 §19.2 C外部例程 311 §19.2.1 调用步骤 312 §19.2.2 参数映射( 转换) 317 第二十章 会话间通信 319 §20.1 DBMS_PIPE 319 §20.1.1 发送消息 319 §20.1.2 接收消息 320 §20.1.3 示例 321 §20.2 DBMS_ALERT 340 §20.2.1 使用警告 341 §20.2.2 警告所用的各个过程 341 §20.2.3 警告例子 342 §20.3 DBMS_PIPE 和 DBMS_ALERT 343 第二十一章 数据库作业和文件I/O 344 §21.1 数据库作业 344 §21.1.1后台进程 344 §21.1.2运行作业 344 §21.1.3失效作业 346 §21.1.4删除作业 347 §21.1.5修改作业参数 348 §21.1.6与作业参数有关数据字典 350 §21.2 文件I/O 350 §21.2.1 安全性 351 §21.2.2 打开和关闭文件 351 §21.2.3文件输出 353 §21.2.3文件输入 354 §21.2.4文件操作例子 354 第二十二章 在PL/SQL 使用SQL语句 355 §22.1在PL/SQL 使用DML语句 355 §22.2 伪列 357 §22.3 GRANT、REVOKE 和权限 358 §22.3.1 对象和系统权限 358 §22.3.2 GRANT和REVOKE命令语法 358 §22.4 事务控制 359 §22.4.1 COMMIT 和 ROLLBACK 359 §22.4.2 保留点 SAVEPOINT 360 §22.5 在PL/SQL中使用SQL函数 361 §22.5.1 错误处理函数 362 §22.5.2 数字函数 362 第二十三章 PL/SQL程序的测试和调试 363 §23.1 问题诊断 363 §23.1.1 调试指南 363 §23.1.2 显示在编译产生的错误 363 §23.2 插入测试表 364 §23.3 DBMS_OUTPUT的使用 364 §23.4 PL/SQL调试器 365 §23.4.1 Procedure Builder调试器 365 §23.4.2 SQL-Station调试器 366 §23.5 程序设计方法 366 §23.5.1 模块化程序设计 366 §23.5.2 自顶向下设计 366 §23.5.3 数据抽象 366 第二十四章 性能及其它问题 367 §24.1共享池 367 §24.1.1 共享池工作原理 367 §24.1.2 估计共享池大小 368 §24.1.3 将PL/SQL 驻留在共享池中 369 §24.2 SQL 语句调整 370 §24.3 网络问题 373 §24.4 PL/SQL wrap(转换器) 373 §24.4.1 运行 wrap实用程序 373 §24.4.2 输入和输出文件 374 §24.5 DBMS_OUTPUT的使用 374 第二十五章 对象类型 376 §25.1 对象类型定义 376 §25.1.1 定义对象类型头 376 §25.1.2 定义对象类型体 376 §25.1.3 定义对象类型例子 377 §25.1.4 初始化对象类型 378 §25.1.5 使用对象类型 379 §25.2 对象类型修改 381 §25.3 对象类型删除 381 第二十六章 动态PL/SQL简介 383 §26.1 概述 383 §26.1.1 静态SQL和动态SQL 383 §26.1.2 用DBMS_SQL 包实现动态 383 §26.1.3 用本地动态SQL实现动态 385 §26.2 使用DBMS_SQL进行动态编程 385 §26.2.1 执行DML、DDL及Alter session语句 385 §26.2.2 示例 388 §26.2.3 执行DDL 语句 389 §26.2.4 执行PL/SQL 块 390 §26.4 本地动态SQL 391 §26.4.1使用EXECUTE IMMEDIATE语句 391 §26.4.2向后兼容情况 392 §26.4.3指定参数模式 393 第二十七章 LOB和DBMS_LOB包简介 394 §27.1 LOB类型一般使用 394 §27.1.1 LOB类型存储 395 §27.1.2 临时LOB类型 395 §27.1.3 LOB类型的接口 396 §27.2 一般LOB表与数据加载 396 §27.2.1 建立包含LOB的表 396 §27.2.2 用EMPTY_CLOB或EMPTY_BLOB插入LOB 398 §27.2.3 一般的LOB插入 399 §27.3 内部LOB和DBMS_LOB的使用 399 §27.3.1 APPEND过程 400 §27.3.2 CLOSE过程 401 §27.3.3 COMPARE函数 401 §27.3.4 COPY过程 403 §27.3.5 ERASE过程 405 §27.3.6 GETCHUNKSIZE函数 406 §27.3.7 GETLENGTH函数 407 §27.3.8 INSTR函数 408 §27.3.9 READ过程 409 §27.3.10 SUBSTR函数 410 §27.3.11 WRITE过程 411 §27.3.12 WRITEAPPEND过程 412 §27.4临时LOB 413 §27.4.1 建立临时LOB 413 §27.4.2 查看临时LOB 414 §27.4.3 释放临时LOB 414 §27.4.4 从BFILE中加载临时LOB 415 §27.4.5 查看临时LOB是否打开 415 §27.4.6 显示临时LOB数据 416 §27.4.7 从临时LOB读数据 417 §27.4.8 从临时LOB读部分数据 418 §27.4.9 比较两个临时LOB数据 419 §27.4.10 查看临时LOB模式的存在 420 §27.4.11 得到临时LOB的长度 421 §27.4.12 拷贝部分临时LOB数据 421 §27.4.13 为临时LOB拷贝位置 422 §27.4.14 加临时LOB到另外的LOB 423 §27.4.15 写追加到临时LOB 424 §27.4.16 写数据到临时LOB 424 §27.4.17 修理临时LOB数据 425 §27.4.18 删除临时LOB数据 426 §27.5外部LOB (BFILE) 426 §27.5.1 BFILE目录指定 426 §27.5.2 建立包括BFILE列的表 427 §27.5.3 用BFILENAME()插入数据 428 §27.5.4 从另外表选择BFILE插入数据 429 §27.5.5 用初始化BFILE位置来插入数据BFILE行 429 §27.5.6 动态加载数据BFILE的表 429 §27.5.7 用BFILE数据来加载LOB数据 430 §27.5.8 用FILEOPEN打开BFILE 431 §27.5.9 用OPEN打开BFILE 431 §27.5.10 用FILEISOPEN看BFILE是否打开 431 §27.5.11 用ISOPEN看BFILE是否打开 432 §27.5.12 显示BFILE 432 §27.5.13 从BFILE中读数据 433 §27.5.14 读部分BFILE 433 §27.5.15 比较BFILE 434 §27.5.16 判断BFILE是否存在模式 434 §27.5.17 判断BFILE是否存在 435 §27.5.18 得到BFILE长度 435 §27.5.19 拷贝BFILE的LOB位置 436 §27.5.20 得到目录别名和文件名字 436 §27.5.21 用初始化BFILE位置更新BFILE 437 §27.5.22 用FILECLOSE关闭BFILE 437 §27.5.23 用CLOSE关闭BFILE 437 §27.5.24 用CLOSEALL关闭所有BFILE 438 §27.5.25 用DELETE等删除BFILE数据 438 §27.6 使用SQL*loader加载LOB 438 §27.6.1 加载图象和文本文件 438 §27.6.2 加载文本文件 439 第二十八章 PL/SQL编程技巧 442 §28.1用触发器实现日期格式的自动设置 442 §28.2如何避免TOO_MANY_ROWS错误 443 §28.3如何解决TOO_MANY_ROWS问题 446 §28.4如何在PL/SQL中使用数组 447 §28.5如何使用触发器完成数据复制 448 §28.6在PL/SQL中实现Truncate 449 §28.7如何导出存储过程、触发器的代码 450 附录A:SQL及SQL*PLUS 命令参考 459 %FOUND 460 %ISOPEN 460 %NOTFOUND 461 %ROWCOUNT 462 %ROWTYPE 463 %TYPE 463 (+) 464 @ (“at” 号) 464 @@ 465 ABS 465 ACCEPT 466 ACOS 466 ADD_MONTHS 467 ALTER CLUSTER 467 ALTER DATABASE 468 ALTER FUNCTION 469 ALTER INDEX 469 ALTER PACKAGE 470 ALTER PROCEDURE 470 ALTER PROFILE 471 ALTER RESOURCE COST 471 ALTER ROLE 472 ALTER ROLLBACK SEGMENT 472 ALTER SEQUENCE 473 ALTER SESSION 473 ALTER SNAPSHOT 474 ALTER SNAPSHOT LOG 475 ALTER SYSTEM 475 ALTER TABLE 476 ALTER TABLESPACE 477 ALTER TRIGGER 478 ALTER TYPE 478 ALTER USER 479 ALTER VIEW 480 ANALYZE 480 APPEND 481 ASCII 481 ASIN 482 ATAN 482 ATAN2 483 AUDIT 483 AVG 484 BFILENAME 484 BLOCK 485 BTITLE 486 CEIL 487 CHANGE 488 CHARTOROWID 488 CHR 489 CLEAR 489 CLOSE 490 COLUMN 490 COMMENT 491 COMMIT 492 COMPUTE 492 CONCAT 493 CONCATENATE 493 CONNECT BY 494 CONVERT 494 COPY 495 COS 496 COSH 496 COUNT 497 CREATE CLUSTER 497 CREATE CONTROLFILE 498 CREATE DATABASE 499 CREATE DATABASE LINK 500 CREATE PROFILE 500 CREATE DIRECTORY 501 CREATE FUNCTION 501 CREATE INDEX 502 CREATE LIBRARY 503 CREATE PACKAGE 503 CREATE PACKAGE BODY 504 CREATE PROCEDURE 506 CREATE ROLE 507 CREATE ROLLBACK SEGMENT 507 CREATE SCHEMA 508 CREATE SEQUENCE 509 CREATE SNAPSHOT 509 CREATE SNAPSHOT LOG 510 CREATE SYNONYM 511 CREATE TABLE 511 CREATE TABLESPACE 513 CREATE TRIGGER 514 CREATE TYPE 515 CREATE TYPE BODY 516 CREATE USER 516 CREATE VIEW 517 CURRVAL 518 CURSOR_ALREADY_OPEN 518 DATATYPE 519 DATATYPE —CHAR 519 DATATYPE —DATE 520 DATATYPE —FLOAT 520 DATATYPE —LONG 520 DATATYPE —LONGRAW 521 DATATYPE —MLSLABEL 521 DATATYPE —NUMBER 521 DATATYPE —RAW 522 DATATYPE —ROWID 522 DATATYPE —VARCHAR 522 DATATYPE —VARCHAR2 522 DECLARE 523 DECODE 523 DEFINE 524 DEL 524 DELETE 525 DEREF 526 DESCRIBE 526 DROP CLUSTER 527 DROP DATABASE LINK 527 DROP DIRECTORY 528 DROP FUNCTION 528 DROP INDEX 528 DROP LIBRARY 529 DROP PACKAGE 529 DROP PROCEDURE 530 DROP PROFILE 530 DROP ROLE 531 DROP ROLLBACK SEGMENT 531 DROP SEQUENCE 532 DROP SNAPSHOT 532 DROP SNAPSHOT LOG 532 DROP SYNONYM 533 DROP TABLE 533 DROP TABLESPACE 534 DROP TRIGGER 534 DROP TYPE 535 DROP TYPE BODY 535 DROP USER 536 DROP VIEW 536 DUMP 537 DUP_VAL_ON_INDEX 537 EDIT 538 EMPTY_BLOB 538 EMPTY_CLOB 539 EXCEPTION INIT Pragma 539 EXECUTE 540 EXISTS 540 EXIT 541 EXIT 542 EXIT-WHEN 542 EXP 543 EXPLAIN PLAN 543 FETCH 544 FLOOR 545 FOR-LOOP 545 FORMAT 546 FORMAT —DATE 546 FORMAT —NUMBER 547 GET 547 GLB 548 GOTO 548 GRANT 549 GREATEST 550 GREATEST_LB 550 HEXTORAW 551 HOST 551 IF-THEN 552 IF-THEN-ELSE 552 IF-THEN-ELSEIF 553 INITCAP 554 INPUT 554 INSERT 555 INSTR 555 INSTRB 556 INTERSECT 557 INVALID_CURSOR 557 INVALID_NUMBER 558 KEYWORDS 559 LABELS 560 LAST_DAY 561 LEAST 561 LEAST_LB 562 LENGTH 562 LENGTHB 562 LIKE 563 LIST 564 LN 565 LOCK TABLE 565 LOG 566 LOGIN_DENIED 566 LOOP 567 LOWER 568 LPAD 568 LTRIM 569 LUB 569 MAKE_REF 570 MAX 570 MIN 571 MINUS 571 MOD 572 MONTHS_BETWEEN 572 NEW_TIME 573 NEXT_DAY 574 NEXTVAL 574 NLS_CHARSET_DECL_LEN 575 NLS_CHARSET_ID 575 NLS_CHARSET_NAME 576 NLS_INITCAP 576 NLS_LOWER 577 NLS_UPPER 577 NO_DATA_FOUND 578 NOAUDIT 579 NOT_LOGGED_ON 579 NULL 580 NVL 581 OPEN 581 OPEN-FOR 582 运算符 582 运算符— < > 583 运算符—> 583 运算符—> = 584 运算符—! = 584 运算符—* 585 运算符—+ 586 运算符—-* 586 运算符—/ 587 运算符—<= 587 运算符—= 588 运算符—AND 589 运算符—BETWEEN 589 运算符—IN 590 运算符—IS NOT NULL 590 运算符—IS NULL 591 运算符—NOT 591 运算符—NOT BETWEEN 592 运算符—NOT IN 592 运算符—OR 593 PRIOR 593 PROGRAM_ERROR 594 PROMPT 595 PSEUDOCOLUMN 595 RAISE 595 RAWTOHEX 596 RECORD 596 REFTOHEX 597 REMARK 598 RENAME 598 REPFOOTER 599 REPHEADER 599 REPLACE 600 REPLACE 601 RETURN 601 REVOKE 602 ROLLBACK 603 ROUND 603 ROWIDTOCHAR 604 ROWTYPE_MISMATCH 605 RPAD 606 RTRIM 606 SAVE 607 SAVEPOINT 607 SELECT 608 SELECT INTO 608 SET 609 SET ROLE 611 SET TRANSACTION 612 SHOW 612 SIGN 613 SIN 614 SINH 614 SOUNDEX 615 SPOOL 615 SQLERRM 616 SQLPLUS 616 SQRT 617 START 617 STDDEV 618 STORAGE 618 STORAGE_ERROR 619 STORE 619 SUBSTR 620 SUBSTRB 620 SUM 621 SYSDATE 622 TABLE 622 TAN 623 TANH 623 TIMEOUT_ON_RESOURCE 624 TIMING 624 TO_CHAR (date) 625 TO_CHAR (label) 625 TO_CHAR (number) 626 TO_DATE (char) 626 TO_LABEL (char) 627 TO_MULTI_BYTE (char) 627 TO_NUMBER (char) 628 TO_SINGLE_BYTE (char) 628 TOO_MANY_ROWS 629 TRANSLATE 629 TRUNC (date) 630 TRUNC (number) 631 TRUNCATERUNCATE 631 TTITLE 632 UID 633 UNDEFINE 633 UNION 634 UNION ALL 634 UPDATE 635 UPPER 636 USER 636 USERENV 637 VALUE_ERROR 638 VARIABLE 638 VARIABLE ASSIGNMENT 639 VARIANCE 639 VSIZE 640 RESERVED WORDS 640 WHENEVER OSERROR 641 WHENEVER SQLERROR 642 WHILE-LOOP 642 ZERO_DIVIDE 643
本讲稿(ORACLE8i 数据库基础)是作者在多年的工作和授课中的总结,主要包括两个部分,第一部分是ORACLE SQL*PLUS基础,主要讲述ORACLE 应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLE PL/SQL知识,主要讲述ORACLE数据库PL/SQL程序设计所用到基本知识,这部分给出进行应用设计所必需的基础知识。这两部分的内容都尽可能做到内容简洁而全面。特点是,1.用简单明了的语句对解释各个部分的内容,省去一些理论性的解释;2.给出作者在应用设计和开发中的一些具体的例子,为软件人员提供一些借鉴,省去查阅大量资料的时间。3.给出了许多资料所没有提供的一些使用技巧,如导出触发器等。总之,内容基本上包括当前Oracle8I的最新内容。同时也覆盖了最新的ORACLE8i OCP培训大纲的内容。不仅包含ORACLE 程序设计人员、DBA所必须掌握的知识,而且还含盖了系统分析员所要求的内容。与本书(讲稿)相伴的还有《Oracle8i/9i初级数据库管理》和《Oracle8i/9i高级数据库管理》。 全书内容简练实用,可作为ORACLE 数据库管理人员参考,也可作为应用开发人员和系统分析与设计人员以及大学计算机专业教学的参考资料。由于作者水平所限,加之ORACLE的产品与内容的浩瀚,在资料的整理与收集中可能有不少错误和不妥之处,希望读者给予批评制正。
目 录

第一章MYSQL入门与初步 1
1.1 MYSQL简介 2
1.1.1 MySQL是什么? 2
1.1.2 我需要MySQL吗? 3
1.1.3 我需要付钱吗? 4
1.1.4 如何得到MySQL? 4
1.1.5总结 5
1.2 关系数据库管理系统 5
1.2.1 关系数据库系统 6
1.2.2 数据库系统的发展 7
1.2.3 与数据库系统通讯 8
1.2.4 MySQL的体系结构 8
1.2.5总结 8
1.3 MYSQL使用的SQL语言 9
1.3.1 表、列和数据类型 9
1.3.2函数 9
1.3.3 SQL的语句 9
1.3.4总结 10
1.4 MYSQL数据处理 10
1.4.1 MySQL的数据 10
1.4.1.1、字符串值 10
1.4.1.2数字值 11
1.4.1.3十六进制值 12
1.4.1.4日期和时间值 12
1.4.1.4 NULL值 12
1.4.2列类型概述 12
1.4.3 数字列类型 14
1.4.3.1整数类型 15
1.4.3.2浮点数类型 16
1.4.4 日期和时间类型 18
1.4.4.1 Y2K问题和日期类型 18
1.4.4.2 DATETIME,DATE和TIMESTAMP类型 18
1.4.4.3 TIME类型 19
1.4.4.4 YEAR类型 20
1.4.5 字符串类型 20
1.4.5.1 CHAR和VARCHAR类型 21
1.4.5.2 BLOB和TEXT类型 23
1.4.5.3 ENUM和SET类型 24
1.4.6总结 26
第二章 MySQL的安装 27
2.1 MYSQL系统的安装布局 28
2.1.1 二进制安装 28
2.1.2 RPM安装 28
2.1.3 源代码安装 28
2.1.4总结 29
2.2 安装MYSQL系统的分发 29
2.2.1 在Windows下的安装一个二进制分装 29
2.2.2 在Windows NT/2000下安装成系统服务 29
2.2.3 在Linux下安装一个RPM分发 31
2.2.4 在Linux下安装二进制分发 31
2.2.5 在Linux下安装源代码分发 32
2.2.6 总结 32
2.3 安装后期的的设置与测试 33
2.3.1建立启动MySQL的帐户 33
2.3.2 初始化授权表 33
2.3.3 测试服务器是否工作 34
2.3.4 自动运行和停止MySQL 36
2.3.5 更改root用户的密码 38
2.3.6 修改选项文件 38
2.3.7总结 41
2.4 系统的升级 41
2.4.1 备份数据库与其他配置文件 41
2.4.2 重新安装二进制分发 41
2.4.3重新安装源代码分发 41
2.4.4 升级一个RPM分发 42
2.4.5 检查数据库是否工作及完整 42
2.4.6总结 42
2.5在同一台机器上运行多个MYSQL服务器 42
2.5.1使用重新编译的方法 42
2.5.2使用指定服务器参数的方法 43
2.5.3有关选项文件的问题 44
2.5.4 总结 44
第三章 数据库的基本操作 46
3.1 MYSQL的启动与终止 47
3.1.1 直接运行守护程序 47
3.1.2 使用脚本mysql.server启动关闭数据库 48
3.1.3 使用mysqladmin实用程序关闭、重启数据库 49
3.1.4 启动或停止NT平台上的系统服务 50
3.1.5 使用选项文件提供服务器的参数 51
3.1.6 总结 51
3.2 MYSQL与客户机的连接 51
3.2.1建立和中止与服务器的连接 52
3.2.2利用选项文件简化连接 53
3.2.3 利用 mysql 的输入行编辑器 54
3.2.4 批处理模式连接 55
3.2.5 总结 56
3.3 有关数据库的操作 56
3.3.1 用SHOW显示已有的数据库 56
3.3.2 用Create Dabase 创建数据库 57
3.3.3 用DROP DATABASE删除数据库 57
3.3.4 使用mysqladmin工具创建和删除 58
3.3.5 直接在数据库目录中创建或删除 58
3.3.6 用USE选用数据库 58
3.3.7 总结 58
3.4 有关数据表的操作 59
3.4.1 用SHOW/ DESCRIBE语句显示数据表的信息 59
3.4.2 使用mysqlshow 工具得到信息 60
3.4.3 用CREATE TABLE 语句创建数据表 60
3.4.4利用 SELECT 的结果创建表 62
3.4.5 用ALTER TABLE语句修改表的结构 63
3.4.6 用DROP TABLE 语句删除数据表 64
3.4.7 总结 64
3.5 向数据表插入行记录 64
3.5.1 使用INSERT语句插入新数据 64
3.5.2 使用INSERT…SELECT语句插入从其他表选择的行 65
3.5.3 使用replace、replace…select语句插入 66
3.5.4 使用LOAD语句批量录入数据 66
3.5.5 总结 68
3.6 查询数据表中的记录 69
3.6.1 普通查询 69
3.6.2 条件查询 71
3.6.3 查询排序 73
3.6.4 查询分组与行计数 75
3.6.5 查询多个表 77
3.3.6总结 78
3.7 修改、删除数据记录 79
3.7.1 用update修改记录 79
3.7.2 用delete删除记录 79
3.7.3 总结 79
第四章 MYSQL高级特性 81
4.1 集合函数 82
4.1.1 行列计数 82
4.1.2统计字段值的数目 82
4.1.3 计算字段的平均值 83
4.1.4 计算字段值的和 84
4.1.5 计算字段值的极值 84
4.1.6 总结 86
4.2 操作日期和时间 86
4.2.1 返回当前日期和时间 86
4.2.2 自动记录数据的改变时间 88
4.2.3 返回日期和时间范围 90
4.2.5 比较日期和时间 92
4.3 字符串模式匹配 93
4.3.1 标准的SQL模式匹配 93
4.3.2 扩展正则表达式模式匹配 94
4.3.3 总结 96
4.4 深入SELECT的查询功能 96
4.4.1 列和表的别名 96
4.4.1.1列的别名 96
4.4.1.2 在子句中使用列的别名 98
4.4.1.3表的别名 98
4.4.2 取出互不相同的记录 99
4.4.3 NULL值的问题 100
4.4.4 大小写敏感性 102
4.4.5 检索语句与多个表的连接 102
4.4.5.1 全连接 103
4.4.5.2 左连接 105
4.4.6 总结 108
4.5 索引属性 108
4.5.1 索引的特点 108
4.5.2 用Alter Table语句创建与删除索引 109
4.5.3 用CREATE\DROP INDEX创建索引 110
4.5.4 在创建表时指定索引 111
4.5.5 总结 113
第五章 数据库的备份与恢复 114
5.1 数据库目录 115
5.1.1 数据目录的位置 115
5.1.2 数据库的表示法 116
5.1.3 数据库表的表示法 117
5.1.4 MySQL的状态文件 118
5.1.5 总结 120
5.2 重定位数据库目录的内容 120
5.2.3 重定位方法 120
5.2.1 重定位数据目录 121
5.2.2 重定位数据库 121
5.2.3 重定位数据库表 122
5.2.4 重定位状态文件 122
5.2.5 总结 123
5.3 备份和恢复数据表的方法 123
5.3.1 使用SQL语句备份和恢复 123
5.3.2使用mysqlimport恢复数据 125
5.3.3 使用mysqldump备份数据 126
5.3.4 用直接拷贝的方法备份恢复 129
5.3.5 总结 129
5.4 使用更新日志文件 130
5.4.1 启用日志 130
5.4.2 重写日志 130
5.4.3 恢复日志内容 130
5.4.4 总结 131
5.5 使用MYSQL内建复制功能 131
5.5.1 配置主服务器 131
5.5.2 配置从服务器 132
5.5.3 创建相互的主从关系 133
5.5.4 总结 133
5.5 总结:备份恢复数据的一般步骤 133
第六章 数据库的维护与修复 136
6.1 数据库表的检查、修复与优化 137
6.1.1 数据库表的维护工具 137
6.1.2 检查数据库表 138
6.1.3 修复数据库表 139
6.1.4优化数据库表 140
6.1.5指定维护过程中使用的内存 141
6.1.6总结 141
6.2 避免与 MYSQL 服务器交互作用 142
6.2.1锁定表的的方法 142
6.2.2 检查表的锁定协议 143
6.2.3 修复表的锁定协议 143
6.2.4 总结 144
6.3日志文件维护 144
6.3.1如何使用新的更新日志 144
6.3.2如何使用新的常规日志 145
6.3.3 总结 145
6.4 建立日常维护规范 145
6.4.1 建立一个数据库表维护规范 145
6.4.2 创建一个适用于定期维护的脚本 145
6.4.3 在unix中用cron定期检查表 146
6.3.4 在系统启动期间检查表 147
6.3.5 总结 148
第七章 数据库安全 149
7.1 MYSQL的权限系统 150
7.1.1授权表的结构 150
7.1.1.1授权表user、db和host的结构和作用 150
7.1.1.2授权表tables_priv和columns_priv的结构和作用 151
7.1.2用户的权限 152
7.1.2.1数据库和表的权限 152
7.1.2.2管理权限 153
7.1.3授权表列的内容 153
7.1.3.1作用域列内容 153
7.1.3.2授权表User、Db和Host的权限列的内容 155
7.1.3.3授权表tables_priv和columns_priv的权限列的内容 155
7.1.4权限系统工作原理 155
7.1.4.1权限系统工作的一般过程 155
7.1.4.2存取控制, 阶段1:连接证实 156
7.1.4.3存取控制,阶段2:请求证实 159
7.1.5 总结 161
7.2 设置用户与并授权 162
7.2.1使用SHOW GRANTS语句显示用户的授权 162
7.2.2 使用GRANT语句创建用户并授权 162
7.2.2.1 GRANT语句的语法 162
7.2.2.2创建用户并授权的实例 164
7.2.3 直接修改授权表创建用户并授权 164
7.2.4 总结 165
7.3 撤销用户与授权 165
7.3.1 使用REVOKE语句撤销授权 165
7.3.2 直接修改授权表撤销用户或授权 166
7.3.3 总结 167
7.4 设置密码 167
7.4.1 使用myadmin实用程序 167
7.4.2使用语句SET PASSWORD 168
7.4.3 直接修改授权表 168
7.4.4 重新设置一个遗忘的root口令 168
7.4.5 总结 169
7.5 权限修改何时生效 169
7.5.1 服务器重新启动的情况 170
7.5.2 被服务器立即应用的情况 170
7.5.3 直接修改授权表的情况 170
7.5.4 对现有客户连接的影响情况 170
7.5.5 总结 170
7.6 授权原则 170
7.6.1 只有root用户拥有授权表的改写权 170
7.6.2 关于用户、口令及主机的设置 171
7.6.3 授予用户合适的权限 171
7.6.4 MySQL权限系统无法完成的任务 173
7.6.5 总结 173
7.7 MYSQL的其它安全问题 173
7.7.1 不在客户机的命令行上提供密码 173
1可以在命令行上提供密码 173
7.7.2 使用SSH加密客户机连接 174
7.7.3不要使用Unix的root用户运行MySQL守护进程 174
7.7.4数据库目录的安全 174
7.7.4.1可能的安全漏洞 174
7.7.4.2在Unix设置合适的数据库目录权限 175
7.7.4.3在NT系统中设置合适的数据库目录权限 175
7.7.5影响安全的mysqld选项 175
7.7.6 总结 176
第八章 数据库优化 177
8.1 索引的使用 178
8.1.1索引对单个表查询的影响 178
8.1.2索引对多个表查询的影响 180
8.1.3多列索引对查询的影响 181
8.1.4索引的作用 182
8.1.5 索引的弊端 182
8.1.6 选择索引的准则 183
8.1.7 总结 184
8.2 数据类型的问题 184
8.2.1 有助于效率的类型选择 184
8.2.2 有关BLOB和TEXT类型 185
8.2.3 使用ANALYSE过程检查表列 186
8.2.3 总结 187
8.3 SQL查询的优化 187
8.3.1 使用EXPLAIN语句检查SQL语句 187
8.3.2 SELECT 查询的速度 188
8.3.2.1 MySQL怎样优化WHERE子句 188
8.3.2.2 MySQL怎样优化LEFT JOIN 190
8.3.2.3 MySQL怎样优化LIMIT 190
8.3.4 记录转载和修改的速度 191
8.3.4.1 INSERT查询的速度 191
8.3.4.2 UPDATE查询的速度 193
8.3.4.3 DELETE查询的速度 193
8.3.4索引对有效装载数据的影响 193
8.3.5 总结 194
8.4 数据库表的处理 194
8.4.1 选择一种表类型 194
8.4.1.1 静态(定长)表的特点 195
8.4.1.2 动态表的特点 196
8.4.1.3 压缩表的特点 196
8.4.1.4 内存表的特点 197
8.4.2 数据库表的数量的问题 197
8.4.3 数据库表级锁定的问题 198
1、对此一个主要的问题如下: 198
2、INSERT DELAYED 在客户机方的作用 199
8.4.4 对表进行优化 200
8.4.5 总结 201
8.5 服务器级优化 201
8.5.1 磁盘问题 201
8.5.2硬件问题 202
8.5.3 服务器参数的选择 202
8.5.4编译和链接怎样影响MySQL的速度 203
8.5.5 总结 203
思考题答案 206
附录一 MYSQL 语言参考 217
1.1 数据类型参考:怎么写字符串和数字 217
1.1.1 字符串 217
1.1.2 数字 219
1.1.3 十六进制值 219
1.1.4 NULL值 219
1.1.5 数据库、表、索引、列和别名的命名 220
1.1.5.1 名字的大小写敏感性 221
1.2 用户变量 222
1.3 列类型 222
1.3.1 列类型存储需求 225
数字类型 226
日期和时间类型 226
串类型 226
1.3.2 数字类型 227
1.3.3 日期和时间类型 229
1.3.3.1 Y2K问题和日期类型 230
1.3.3.2 DATETIME, DATE和TIMESTAMP类型 230
1.3.3.3 TIME类型 233
1.3.3.4 YEAR类型 234
1.3.4 字符串类型 234
1.3.4.1 CHAR和VARCHAR类型 234
1.3.4.2 BLOB和TEXT类型 235
1.3.4.3 ENUM类型 236
1.3.4.4 SET类型 237
1.3.5 为列选择正确的类型 238
1.3.6 列索引 238
1.3.7 多列索引 239
1.3.8 使用来自其他数据库引擎的列类型 239
1.4 用在SELECT和WHERE子句中的函数 240
1.4.1 分组函数 240
1.4.2 常用的算术操作 241
1.4.3 位函数 242
1.4.4 逻辑运算 242
1.4.5 比较运算符 243
1.4.6 字符串比较函数 246
1.4.7 类型转换运算符 248
1.4.8 控制流函数 248
1.4.9 数学函数 249
1.4.10 字符串函数 255
1.4.11 日期和时间函数 262
1.4.12 其他函数 269
1.4.13 与GROUP BY子句一起使用的函数 272
1.5 CREATE DATABASE句法 274
1.6 DROP DATABASE句法 274
1.7 CREATE TABLE句法 274
1.1.1 隐含的列说明改变 279
1.8 ALTER TABLE句法 280
1.9 OPTIMIZE TABLE句法 282
1.10 DROP TABLE句法 283
1.11 DELETE句法 283
1.12 SELECT句法 284
1.13 JOIN句法 286
1.14 INSERT句法 287
1.15 REPLACE句法 290
1.16 LOAD DATA INFILE句法 291
1.17 UPDATE句法 296
1.18 USE句法 297
1.20 KILL句法 298
1.22 EXPLAIN句法(得到关于SELECT的信息) 303
1.23 DESCRIBE句法 (得到列的信息) 307
1.24 LOCK TABLES/UNLOCK TABLES句法 308
1.25 SET OPTION句法 309
1.26 GRANT和REVOKE句法 310
1.27 CREATE INDEX句法 313
1.29 注释句法 314
1.30 CREATE FUNCTION/DROP FUNCTION句法 315

2.1 各种MYSQL程序概述 318
myisamchk 318
make_binary_release 318
msql2mysql 318
mysql 318
mysqlaccess 319
mysqladmin 319
mysqlbug 319
mysqld 319
mysqldump 319
mysqlimport 319
mysqlshow 319
mysql_install_db 319
replace 319
safe_mysqld 319
2.2 MYSQLADMIN 319
2.3 MYSQLDUMP 320
2.4 MYSQLIMPORT 323
2.5 MYISAMPACK 324
2.6 MYISAMCHK 332
目 录

第一章MYSQL入门与初步 1
1.1 MYSQL简介 2
1.1.1 MySQL是什么? 2
1.1.2 我需要MySQL吗? 3
1.1.3 我需要付钱吗? 4
1.1.4 如何得到MySQL? 4
1.1.5总结 5
1.2 关系数据库管理系统 5
1.2.1 关系数据库系统 6
1.2.2 数据库系统的发展 7
1.2.3 与数据库系统通讯 8
1.2.4 MySQL的体系结构 8
1.2.5总结 8
1.3 MYSQL使用的SQL语言 9
1.3.1 表、列和数据类型 9
1.3.2函数 9
1.3.3 SQL的语句 9
1.3.4总结 10
1.4 MYSQL数据处理 10
1.4.1 MySQL的数据 10
1.4.1.1、字符串值 10
1.4.1.2数字值 11
1.4.1.3十六进制值 12
1.4.1.4日期和时间值 12
1.4.1.4 NULL值 12
1.4.2列类型概述 12
1.4.3 数字列类型 14
1.4.3.1整数类型 15
1.4.3.2浮点数类型 16
1.4.4 日期和时间类型 18
1.4.4.1 Y2K问题和日期类型 18
1.4.4.2 DATETIME,DATE和TIMESTAMP类型 18
1.4.4.3 TIME类型 19
1.4.4.4 YEAR类型 20
1.4.5 字符串类型 20
1.4.5.1 CHAR和VARCHAR类型 21
1.4.5.2 BLOB和TEXT类型 23
1.4.5.3 ENUM和SET类型 24
1.4.6总结 26
第二章 MySQL的安装 27
2.1 MYSQL系统的安装布局 28
2.1.1 二进制安装 28
2.1.2 RPM安装 28
2.1.3 源代码安装 28
2.1.4总结 29
2.2 安装MYSQL系统的分发 29
2.2.1 在Windows下的安装一个二进制分装 29
2.2.2 在Windows NT/2000下安装成系统服务 29
2.2.3 在Linux下安装一个RPM分发 31
2.2.4 在Linux下安装二进制分发 31
2.2.5 在Linux下安装源代码分发 32
2.2.6 总结 32
2.3 安装后期的的设置与测试 33
2.3.1建立启动MySQL的帐户 33
2.3.2 初始化授权表 33
2.3.3 测试服务器是否工作 34
2.3.4 自动运行和停止MySQL 36
2.3.5 更改root用户的密码 38
2.3.6 修改选项文件 38
2.3.7总结 41
2.4 系统的升级 41
2.4.1 备份数据库与其他配置文件 41
2.4.2 重新安装二进制分发 41
2.4.3重新安装源代码分发 41
2.4.4 升级一个RPM分发 42
2.4.5 检查数据库是否工作及完整 42
2.4.6总结 42
2.5在同一台机器上运行多个MYSQL服务器 42
2.5.1使用重新编译的方法 42
2.5.2使用指定服务器参数的方法 43
2.5.3有关选项文件的问题 44
2.5.4 总结 44
第三章 数据库的基本操作 46
3.1 MYSQL的启动与终止 47
3.1.1 直接运行守护程序 47
3.1.2 使用脚本mysql.server启动关闭数据库 48
3.1.3 使用mysqladmin实用程序关闭、重启数据库 49
3.1.4 启动或停止NT平台上的系统服务 50
3.1.5 使用选项文件提供服务器的参数 51
3.1.6 总结 51
3.2 MYSQL与客户机的连接 51
3.2.1建立和中止与服务器的连接 52
3.2.2利用选项文件简化连接 53
3.2.3 利用 mysql 的输入行编辑器 54
3.2.4 批处理模式连接 55
3.2.5 总结 56
3.3 有关数据库的操作 56
3.3.1 用SHOW显示已有的数据库 56
3.3.2 用Create Dabase 创建数据库 57
3.3.3 用DROP DATABASE删除数据库 57
3.3.4 使用mysqladmin工具创建和删除 58
3.3.5 直接在数据库目录中创建或删除 58
3.3.6 用USE选用数据库 58
3.3.7 总结 58
3.4 有关数据表的操作 59
3.4.1 用SHOW/ DESCRIBE语句显示数据表的信息 59
3.4.2 使用mysqlshow 工具得到信息 60
3.4.3 用CREATE TABLE 语句创建数据表 60
3.4.4利用 SELECT 的结果创建表 62
3.4.5 用ALTER TABLE语句修改表的结构 63
3.4.6 用DROP TABLE 语句删除数据表 64
3.4.7 总结 64
3.5 向数据表插入行记录 64
3.5.1 使用INSERT语句插入新数据 64
3.5.2 使用INSERT…SELECT语句插入从其他表选择的行 65
3.5.3 使用replace、replace…select语句插入 66
3.5.4 使用LOAD语句批量录入数据 66
3.5.5 总结 68
3.6 查询数据表中的记录 69
3.6.1 普通查询 69
3.6.2 条件查询 71
3.6.3 查询排序 73
3.6.4 查询分组与行计数 75
3.6.5 查询多个表 77
3.3.6总结 78
3.7 修改、删除数据记录 79
3.7.1 用update修改记录 79
3.7.2 用delete删除记录 79
3.7.3 总结 79
第四章 MYSQL高级特性 81
4.1 集合函数 82
4.1.1 行列计数 82
4.1.2统计字段值的数目 82
4.1.3 计算字段的平均值 83
4.1.4 计算字段值的和 84
4.1.5 计算字段值的极值 84
4.1.6 总结 86
4.2 操作日期和时间 86
4.2.1 返回当前日期和时间 86
4.2.2 自动记录数据的改变时间 88
4.2.3 返回日期和时间范围 90
4.2.5 比较日期和时间 92
4.3 字符串模式匹配 93
4.3.1 标准的SQL模式匹配 93
4.3.2 扩展正则表达式模式匹配 94
4.3.3 总结 96
4.4 深入SELECT的查询功能 96
4.4.1 列和表的别名 96
4.4.1.1列的别名 96
4.4.1.2 在子句中使用列的别名 98
4.4.1.3表的别名 98
4.4.2 取出互不相同的记录 99
4.4.3 NULL值的问题 100
4.4.4 大小写敏感性 102
4.4.5 检索语句与多个表的连接 102
4.4.5.1 全连接 103
4.4.5.2 左连接 105
4.4.6 总结 108
4.5 索引属性 108
4.5.1 索引的特点 108
4.5.2 用Alter Table语句创建与删除索引 109
4.5.3 用CREATE\DROP INDEX创建索引 110
4.5.4 在创建表时指定索引 111
4.5.5 总结 113
第五章 数据库的备份与恢复 114
5.1 数据库目录 115
5.1.1 数据目录的位置 115
5.1.2 数据库的表示法 116
5.1.3 数据库表的表示法 117
5.1.4 MySQL的状态文件 118
5.1.5 总结 120
5.2 重定位数据库目录的内容 120
5.2.3 重定位方法 120
5.2.1 重定位数据目录 121
5.2.2 重定位数据库 121
5.2.3 重定位数据库表 122
5.2.4 重定位状态文件 122
5.2.5 总结 123
5.3 备份和恢复数据表的方法 123
5.3.1 使用SQL语句备份和恢复 123
5.3.2使用mysqlimport恢复数据 125
5.3.3 使用mysqldump备份数据 126
5.3.4 用直接拷贝的方法备份恢复 129
5.3.5 总结 129
5.4 使用更新日志文件 130
5.4.1 启用日志 130
5.4.2 重写日志 130
5.4.3 恢复日志内容 130
5.4.4 总结 131
5.5 使用MYSQL内建复制功能 131
5.5.1 配置主服务器 131
5.5.2 配置从服务器 132
5.5.3 创建相互的主从关系 133
5.5.4 总结 133
5.5 总结:备份恢复数据的一般步骤 133
第六章 数据库的维护与修复 136
6.1 数据库表的检查、修复与优化 137
6.1.1 数据库表的维护工具 137
6.1.2 检查数据库表 138
6.1.3 修复数据库表 139
6.1.4优化数据库表 140
6.1.5指定维护过程中使用的内存 141
6.1.6总结 141
6.2 避免与 MYSQL 服务器交互作用 142
6.2.1锁定表的的方法 142
6.2.2 检查表的锁定协议 143
6.2.3 修复表的锁定协议 143
6.2.4 总结 144
6.3日志文件维护 144
6.3.1如何使用新的更新日志 144
6.3.2如何使用新的常规日志 145
6.3.3 总结 145
6.4 建立日常维护规范 145
6.4.1 建立一个数据库表维护规范 145
6.4.2 创建一个适用于定期维护的脚本 145
6.4.3 在unix中用cron定期检查表 146
6.3.4 在系统启动期间检查表 147
6.3.5 总结 148
第七章 数据库安全 149
7.1 MYSQL的权限系统 150
7.1.1授权表的结构 150
7.1.1.1授权表user、db和host的结构和作用 150
7.1.1.2授权表tables_priv和columns_priv的结构和作用 151
7.1.2用户的权限 152
7.1.2.1数据库和表的权限 152
7.1.2.2管理权限 153
7.1.3授权表列的内容 153
7.1.3.1作用域列内容 153
7.1.3.2授权表User、Db和Host的权限列的内容 155
7.1.3.3授权表tables_priv和columns_priv的权限列的内容 155
7.1.4权限系统工作原理 155
7.1.4.1权限系统工作的一般过程 155
7.1.4.2存取控制, 阶段1:连接证实 156
7.1.4.3存取控制,阶段2:请求证实 159
7.1.5 总结 161
7.2 设置用户与并授权 162
7.2.1使用SHOW GRANTS语句显示用户的授权 162
7.2.2 使用GRANT语句创建用户并授权 162
7.2.2.1 GRANT语句的语法 162
7.2.2.2创建用户并授权的实例 164
7.2.3 直接修改授权表创建用户并授权 164
7.2.4 总结 165
7.3 撤销用户与授权 165
7.3.1 使用REVOKE语句撤销授权 165
7.3.2 直接修改授权表撤销用户或授权 166
7.3.3 总结 167
7.4 设置密码 167
7.4.1 使用myadmin实用程序 167
7.4.2使用语句SET PASSWORD 168
7.4.3 直接修改授权表 168
7.4.4 重新设置一个遗忘的root口令 168
7.4.5 总结 169
7.5 权限修改何时生效 169
7.5.1 服务器重新启动的情况 170
7.5.2 被服务器立即应用的情况 170
7.5.3 直接修改授权表的情况 170
7.5.4 对现有客户连接的影响情况 170
7.5.5 总结 170
7.6 授权原则 170
7.6.1 只有root用户拥有授权表的改写权 170
7.6.2 关于用户、口令及主机的设置 171
7.6.3 授予用户合适的权限 171
7.6.4 MySQL权限系统无法完成的任务 173
7.6.5 总结 173
7.7 MYSQL的其它安全问题 173
7.7.1 不在客户机的命令行上提供密码 173
1可以在命令行上提供密码 173
7.7.2 使用SSH加密客户机连接 174
7.7.3不要使用Unix的root用户运行MySQL守护进程 174
7.7.4数据库目录的安全 174
7.7.4.1可能的安全漏洞 174
7.7.4.2在Unix设置合适的数据库目录权限 175
7.7.4.3在NT系统中设置合适的数据库目录权限 175
7.7.5影响安全的mysqld选项 175
7.7.6 总结 176
第八章 数据库优化 177
8.1 索引的使用 178
8.1.1索引对单个表查询的影响 178
8.1.2索引对多个表查询的影响 180
8.1.3多列索引对查询的影响 181
8.1.4索引的作用 182
8.1.5 索引的弊端 182
8.1.6 选择索引的准则 183
8.1.7 总结 184
8.2 数据类型的问题 184
8.2.1 有助于效率的类型选择 184
8.2.2 有关BLOB和TEXT类型 185
8.2.3 使用ANALYSE过程检查表列 186
8.2.3 总结 187
8.3 SQL查询的优化 187
8.3.1 使用EXPLAIN语句检查SQL语句 187
8.3.2 SELECT 查询的速度 188
8.3.2.1 MySQL怎样优化WHERE子句 188
8.3.2.2 MySQL怎样优化LEFT JOIN 190
8.3.2.3 MySQL怎样优化LIMIT 190
8.3.4 记录转载和修改的速度 191
8.3.4.1 INSERT查询的速度 191
8.3.4.2 UPDATE查询的速度 193
8.3.4.3 DELETE查询的速度 193
8.3.4索引对有效装载数据的影响 193
8.3.5 总结 194
8.4 数据库表的处理 194
8.4.1 选择一种表类型 194
8.4.1.1 静态(定长)表的特点 195
8.4.1.2 动态表的特点 196
8.4.1.3 压缩表的特点 196
8.4.1.4 内存表的特点 197
8.4.2 数据库表的数量的问题 197
8.4.3 数据库表级锁定的问题 198
1、对此一个主要的问题如下: 198
2、INSERT DELAYED 在客户机方的作用 199
8.4.4 对表进行优化 200
8.4.5 总结 201
8.5 服务器级优化 201
8.5.1 磁盘问题 201
8.5.2硬件问题 202
8.5.3 服务器参数的选择 202
8.5.4编译和链接怎样影响MySQL的速度 203
8.5.5 总结 203
思考题答案 206
附录一 MYSQL 语言参考 217
1.1 数据类型参考:怎么写字符串和数字 217
1.1.1 字符串 217
1.1.2 数字 219
1.1.3 十六进制值 219
1.1.4 NULL值 219
1.1.5 数据库、表、索引、列和别名的命名 220
1.1.5.1 名字的大小写敏感性 221
1.2 用户变量 222
1.3 列类型 222
1.3.1 列类型存储需求 225
数字类型 226
日期和时间类型 226
串类型 226
1.3.2 数字类型 227
1.3.3 日期和时间类型 229
1.3.3.1 Y2K问题和日期类型 230
1.3.3.2 DATETIME, DATE和TIMESTAMP类型 230
1.3.3.3 TIME类型 233
1.3.3.4 YEAR类型 234
1.3.4 字符串类型 234
1.3.4.1 CHAR和VARCHAR类型 234
1.3.4.2 BLOB和TEXT类型 235
1.3.4.3 ENUM类型 236
1.3.4.4 SET类型 237
1.3.5 为列选择正确的类型 238
1.3.6 列索引 238
1.3.7 多列索引 239
1.3.8 使用来自其他数据库引擎的列类型 239
1.4 用在SELECT和WHERE子句中的函数 240
1.4.1 分组函数 240
1.4.2 常用的算术操作 241
1.4.3 位函数 242
1.4.4 逻辑运算 242
1.4.5 比较运算符 243
1.4.6 字符串比较函数 246
1.4.7 类型转换运算符 248
1.4.8 控制流函数 248
1.4.9 数学函数 249
1.4.10 字符串函数 255
1.4.11 日期和时间函数 262
1.4.12 其他函数 269
1.4.13 与GROUP BY子句一起使用的函数 272
1.5 CREATE DATABASE句法 274
1.6 DROP DATABASE句法 274
1.7 CREATE TABLE句法 274
1.1.1 隐含的列说明改变 279
1.8 ALTER TABLE句法 280
1.9 OPTIMIZE TABLE句法 282
1.10 DROP TABLE句法 283
1.11 DELETE句法 283
1.12 SELECT句法 284
1.13 JOIN句法 286
1.14 INSERT句法 287
1.15 REPLACE句法 290
1.16 LOAD DATA INFILE句法 291
1.17 UPDATE句法 296
1.18 USE句法 297
1.20 KILL句法 298
1.22 EXPLAIN句法(得到关于SELECT的信息) 303
1.23 DESCRIBE句法 (得到列的信息) 307
1.24 LOCK TABLES/UNLOCK TABLES句法 308
1.25 SET OPTION句法 309
1.26 GRANT和REVOKE句法 310
1.27 CREATE INDEX句法 313
1.29 注释句法 314
1.30 CREATE FUNCTION/DROP FUNCTION句法 315

2.1 各种MYSQL程序概述 318
myisamchk 318
make_binary_release 318
msql2mysql 318
mysql 318
mysqlaccess 319
mysqladmin 319
mysqlbug 319
mysqld 319
mysqldump 319
mysqlimport 319
mysqlshow 319
mysql_install_db 319
replace 319
safe_mysqld 319
2.2 MYSQLADMIN 319
2.3 MYSQLDUMP 320
2.4 MYSQLIMPORT 323
2.5 MYISAMPACK 324
2.6 MYISAMCHK 332


1

社区成员

发帖
与我相关
我的任务
社区描述
公众号「Python专栏」作者 / 普华永道技术主管 / 「红色警戒复兴」联合创始人 / MongoDB Profession 中国15位获得者之一 / 平安集团mongoDB特邀讲师 / mongoDB中国核心组成员
社区管理员
  • 上海小胖
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧