首页 SQL21自学通(可编辑)

SQL21自学通(可编辑)

举报
开通vip

SQL21自学通(可编辑)SQL21自学通(可编辑) SQL21自学通 SQL 21日自学通V1.0 翻译人 笨猪 目录 目录 1 译者的话 14 第一周概貌16 从这里开始. 16 第一天 SQL简介 17 SQL简史. 17 数据库简史. 17 设计数据库的结构 21 SQL总览 23 流行的 SQL开发工具 24 SQL在编程中的应用. 27 第二天 查询 ? ? SELECT语句的使用 30 目标 30 背景30 一般的语法规则30 你的第一个查询33 总结 37 问与答 38 校练场38 练习...

SQL21自学通(可编辑)
SQL21自学通(可编辑) SQL21自学通 SQL 21日自学通V1.0 翻译人 笨猪 目录 目录 1 译者的话 14 第一周概貌16 从这里开始. 16 第一天 SQL简介 17 SQL简史. 17 数据库简史. 17 设计数据库的结构 21 SQL总览 23 流行的 SQL开发工具 24 SQL在编程中的应用. 27 第二天 查询 ? ? SELECT语句的使用 30 目标 30 背景30 一般的语法规则30 你的第一个查询33 总结 37 问与答 38 校练场38 练习 39 第三天 表达式 条件语句与运算 40 第四天 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 对数据的进一步处理 60 目标 60 汇总函数60 COUNT 61 SUM61 AVG63 . 63 MIN64 VARIANCE 65 STDDEV. 66 EMAIL wyhsillypig@163 1SQL 21日自学通V1.0 翻译人 笨猪 日期/时间函数 66 ADD_MONTHS 67 LAST_DAY 68 MONTHS_BETWEEN 69 NEW_TIME 70 NEXT_DAY 71 SYSDATE 72 数学函数72 ABS 73 CEIL和 FLOOR 73 COS COSH SIN SINH TAN TANH73 EXP75 LN and LOG75 MOD. 76 POWER 77 SIGN. 77 SQRT. 78 字符函数79 CHR79 CONCAT79 INITCAP. 80 LOWER和 UPPER81 LPAD与 RPAD. 82 LTRIM与 RTRIM 83 REPLACE 84 SUBSTR85 TRANSLATE. 88 INSTR88 LENGTH. 89 转换函数89 TO_CHAR90 TO_NUMBER 91 其它函数91 GREATEST与 LEAST91 USER 92 总结 92 问与答93 校练场93 练习 94 第五天 SQL中的子句95 EMAIL wyhsillypig@163 2SQL 21日自学通V1.0 翻译人 笨猪 目标 95 WHERE子句96 STARTING WITH子句98 ORDER BY子句 99 GROUP BY子句..104 HAVING子句109 子句的综合应用..112 总结..117 问与答.117 校练场.117 练习..118 第六天 表的联合119 介绍..119 在一个 SELECT语句中使用多个表.119 正确地找到列..123 等值联合.124 不等值联合129 外部联合与内部联合.130 表的自我联合132 总结..134 问与答.134 校练场.134 练习..135 第七天 子查询 内嵌的 SQL子句.136 目标..136 建立一个子查询..136 在子查询中使用汇总函数140 子查询的嵌套141 相关子查询144 EXISTS ANY ALL的使用147 EMAIL wyhsillypig@163 3SQL 21日自学通V1.0 翻译人 笨猪 总结..151 问与答.151 校练场.152 练习..153 第一周回顾.154 预览..154 第二周概貌.155 这一周都讲些什么..155 第八天 操作数据156 目标..156 数据操作语句156 插入语句.157 INSERT VALUES语句.157 INSERT SELECT语句.161 UPDATE语句163 DELETE语句166 从外部数据源中导入和导出数据..169 Microsoft Access.170 Microsoft and Sybase SQL Server..171 Personal Oracle7..171 总结..172 问与答.172 校练场.173 练习..173 第九天 创建和操作表..174 目标..174 CREATE DATABASE语句..174 建立数据库时的选项175 设计数据库..176 建立数据字典..176 建立关键字段..177 CREATE TABLE语句178 表名.179 EMAIL wyhsillypig@163 4SQL 21日自学通V1.0 翻译人 笨猪 FIRST NAME..179 空值属性180 唯一属性181 表的存储与尺寸的调整183 用一个已经存在的表来建表..184 ALTER TABLE语句..185 DROP TABLE语句.186 DROP DATABASE语句187 总结..188 问与答.188 校练场.189 练习..190 第 10天 创建视图和索引.191 目标..191 使用视图.192 列的重命名..196 SQL对视图的处理过程..197 在 SELECT语句使用约束..201 在视图中修改数据.201 在视图中修改数据的几个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 .203 通用应用程序的视图204 删除视图语句..207 使用索引.207 什么是索引207 使用索引的技巧.212 对更多的字段进行索引212 在创建索引时使用 UNIQUE关键字..214 索引与归并..216 群集 簇 的使用.217 总结..218 问与答..219 校练场.219 练习..220 第 11天 事务处理控制221 目标..221 事务控制.221 EMAIL wyhsillypig@163 5SQL 21日自学通V1.0 翻译人 笨猪 银行应用程序..222 开始事务处理..223 结束事务处理..225 取消事务处理..228 在事务中使用保存点231 总结..234 问与答.234 校练场.235 练习..235 第 12天 数据库安全236 前提 数据库管理员.236 流行的数据库产品与安全237 如何让一个数据库变得安全237 Personal Oracle7与安全238 创建用户238 创建角色240 用户权限242 为安全的目的而使用视图..247 总结..251 问与答.252 校练场.252 练习..253 第 13天 高级 SQL..254 目标..254 临时表.254 Title..257 游标..259 创建游标260 打开游标260 使用游标来进行翻阅261 测试游标的状态.262 关闭游标263 游标的适用范围.264 创建和使用存贮过程.265 在存贮过程中使用参数267 EMAIL wyhsillypig@163 6SQL 21日自学通V1.0 翻译人 笨猪 删除一个存贮过程.269 存贮过程的嵌套.270 设计和使用触发机制.272 触发机制与事务处理273 使用触发机制时的限制275 触发机制的嵌套.275 在选择语句中使用更新和删除..275 在执行前测试选择语句276 嵌入型 SQL277 静态 SQL与动态 SQL.277 使用 SQL来编程.279 总结..280 问与答.280 校练场.280 练习..281 第 14天 动态使用 SQL282 目标..282 快速入门.282 ODBC..282 Personal Oracle 7.283 InterBase SQL ISQL283 Visual C++.284 Delphi.284 设置..284 创建数据库285 使用 MS QUERY来完成链接.290 将 VISUAL C++与 SQL结合使用.292 将 DELPHI与 SQL结合使用.296 总结..302 问与答.303 校练场.303 练习..303 第二周回顾.304 第三周概貌.305 EMAIL wyhsillypig@163 7SQL 21日自学通V1.0 翻译人 笨猪 应用你对 SQL的知识305 第 15天 对 SQL语句优化以提高其性能.306 目标..306 让你的 SQL语句更易读..307 全表扫描.308 加入一个新的索引..309 在查询中各个元素的布局309 过程. 311 避免使用 OR 311 OLAP与 OLTP的比较.313 OLTP的调试313 OLAP的调试..314 批量载入与事务处理进程314 删除索引以优化数据的载入316 经常使用 COMMIT来让 DBA走开.316 在动态环境中重新生成表和索引..317 数据库的调整319 性能的障碍322 内置的调整工具..323 总结..323 问与答.324 校练场.324 练习..324 第 16天 用视图从数据字典中获得信息..326 目标..326 数据字典简介326 用户的数据字典..327 数据字典中的内容..327 Oracle的数据字典.328 Sybase的数据字典328 ORACLE数据字典的内部结构..328 用户视图328 EMAIL wyhsillypig@163 8SQL 21日自学通V1.0 翻译人 笨猪 系统数据库管理员视图336 数据库对象..339 数据库的生长..343 动态执行视图..347 总结..349 问与答.349 校练场.350 练习..350 第 17天 使用 SQL来生成 SQL语句.351 目标..351 使用 SQL来生成 SQL语句的目的..351 几个 SQL*PLUS命令352 SET ECHO ON/OFF..353 SET FEEDBACK ON/OFF..353 SET HEADING ON/OFF..353 SPOOL FILENAME/OFF.353 START FILENAME354 ED FILENAME354 计算所有的表中的行数.354 为多个用户赋予系统权限359 将你的表的权限赋予其它的用户..361 在载入数据时解除对数的约束..363 一次创建多个同义字.364 为你的表创建视图..368 在一个 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 中清除其所有的表的内容.369 使用 SQL来生成 SHELL脚本..371 再建表和索引372 总结..373 问与答.373 校练场.373 练习..374 第 18天 PL/SQL简介.376 目标..376 EMAIL wyhsillypig@163 9SQL 21日自学通V1.0 翻译人 笨猪 入门..376 在 PL/SQL中的数据类型.377 字符串类型..377 数值数据类型..378 二进制数据类型..378 日期数据类型378 逻辑数据类型378 ROWID..379 PL/SQL块的结构379 注释..380 DECLARE部分380 变量声明380 常量定义381 指针定义381 %TYPE属性382 %ROWTYPE属性.382 %ROWCOUNT属性.383 Procdure部分383 BEGIN … … END.383 指针控制命令..384 条件语句386 LOOPS循环.387 EXCEPTION部分..390 激活 EXCEPTION 异常390 异常的处理..391 将输入返回给用户..392 在 PL/SQL中的事务控制.393 让所有的事在一起工作394 示例表及数据..394 一个简单的 PL/SQL语句块..395 又一个程序..398 存储过程 包和触发机制403 总结..406 问与答.407 校练场.407 练习..407 EMAIL wyhsillypig@163 10SQL 21日自学通V1.0 翻译人 笨猪 第 19天 TRANSACT-SQL简介..408 目标..408 TRANSACT-SQL概貌..408 对 ANSI SQL的扩展.408 谁需要使用 TRANSACT-SQL..409 TRANSACT-SQL的基本组件..409 数据类型.409 使用 TRANSACT-SQL来访问数据库. 411 BASEBALL数据库 411 定义局部变量..414 定义全局变量..414 使用变量415 PRINT命令..417 流控制.417 BEGIN … … END语句..418 IF … … ELSE语句418 EXIST条件..421 WHILE循环.422 使用 WHILE循环在表中翻阅..424 TRANSACT-SQL中的通配符426 使用 COMPUTE来生成摘要报告.426 日期转换.427 SQL SERVER的诊断工具 ? ? SET命令427 总结..428 问与答.428 校练场.429 练习..429 第 20天 SQL*PLUS..430 目标..430 简介..430 SQL*PLUS缓存..430 DESCRIBE命令..435 SHOW命令436 文件命令.438 EMAIL wyhsillypig@163 11SQL 21日自学通V1.0 翻译人 笨猪 SAVE GET EDIT命令..438 运行一个文件..439 查询的假脱机输出.440 SET命令.442 LOGIN.SQL文件.445 CLEAR命令..446 将你的输出格式化..446 TTITLE与 BTITLE446 格式化列 COLUMN HEADING FORMAT..447 报表与分类汇总..449 BREAK ON..449 COMPUTE450 在 SQL*PLUS中使用变量..453 DEFINE..454 ACCEPT.455 NEW_VALUE..457 DUAL 表..458 DECODE函数.459 日期转换.462 运行一系列的 SQL文件..465 在你的 SQL脚本中加入注释.466 高级报表.467 总结..469 问与答.469 校练场.469 练习..470 第 21天 常见的 SQL错误及解决方法..471 目标..471 介绍..471 常见的错误471 Table or View Does Not Exist..471 Invalid Username or Password.472 FROM Keyword Not Specified473 Group Function Is Not Allowed Here474 Invalid Column Name.475 EMAIL wyhsillypig@163 12SQL 21日自学通V1.0 翻译人 笨猪 Missing Keyword.475 Missing Left Parenthesis476 Missing Right Parenthesis.477 Missing Comma478 Column Ambiguously Defined.478 Not Enough Arguments for Function.480 Not Enough Values..481 Integrity Constraint Violated--Parent Key Not Found482 Oracle Not Available483 Inserted Value Too Large for Column483 TNS:listener Could Not Resolve SID Given in Connect Descriptor.484 Insufficient Privileges During Grants.484 Escape Character in Your Statement--Invalid Character485 Cannot Create Operating System File.485 Common Logical Mistakes485 Using Reserved Words in Your SQL statement..486 The Use of DISTINCT When Selecting Multiple Columns.487 Dropping an Unqualified Table.487 The Use of Public Synonyms in a Multischema Database488 The Dreaded Cartesian Product488 Failure to Enforce File System Structure Conventions..489 Allowing Large Tables to Take Default Storage Parameters489 Placing Objects in the System Tablespace490 Failure to Compress Large Backup Files491 Failure to Budget System Resources..491 Preventing Problems with Your Data.491 Searching for Duplicate Records in Your Database491 总结..491 校练场.492 练习..492 第三周回顾.494 附件 A 在 SQL中的常见术语..495 ALTER DATABASE..495 ALTER USER..495 BEGIN TRANSACTION..495 CLOSE CURSOR495 COMMIT TRANSACTION.496 CREATE DATABASE496 CREATE INDEX.496 CREATE PROCEDURE496 CREATE TABLE.497 CREATE TRIGGER497 EMAIL wyhsillypig@163 13SQL 21日自学通V1.0 翻译人 笨猪 CREATE USER497 CREATE VIEW497 DEALLOCATE CURSOR498 DROP DATABASE.498 DROP INDEX..498 DROP PROCEDURE.498 DROP TABLE..498 DROP TRIGGER.499 DROP VIEW.499 EXECUTE.499 FETCH499 FROM.499 GRANT..500 GROUP BY..500 HAVING.500 INTERSECT.500 ORDER BY..500 ROLLBACK TRANSACTION500 REVOKE500 SELECT.501 SET TRANSACTION501 UNION501 WHERE..501 *501 附件 B 在第 14天中的 C++源代码清单502 附件 C 第 14天中的 Delphi源代码清单.521 附件 D 参考内容524 书..524 Developing Sybase Applications.524 Sybase Developer's Guide.524 Microsoft SQL Server 6.5 Unleashed, 2E.524 Teach Yourself Delphi in 21 Days..524 Delphi Developer's Guide.524 Delphi Programming Unleashed.525 Essential Oracle 7.2525 Developing Personal Oracle7 for Windows 95 Applications..525 Teach Yourself C++ Programming in 21 Days525 Teach Yourself Tansact-SQL in 21 Days..525 Teach Yourself PL/SQL in 21 Days.525 杂志..526 DBMS.526 Oracle Magazine..526 EMAIL wyhsillypig@163 14SQL 21日自学通V1.0 翻译人 笨猪 SQL的互联网资源.526 附件 E ACSLL码表..527 附件 F 问题与练习答案..533 第一天 SQL简介.533 问题答案533 练习答案533 第二天 查询 ? ? SELECT语句的使用.533 问题答案533 练习答案534 第三天 表达式 条件语句与运算.535 问题答案535 练习答案535 第四天 函数 对获得数据的进一步处理536 问题答案536 练习答案537 第五天 SQL中的子句538 问题答案538 练习答案538 第六天 表的联接..540 问题答案540 练习答案541 第 7天 子查询 内嵌的 SELECT语句.542 问题答案542 练习答案544 第八天 操作数据..544 问题答案544 练习答案546 第九天 创建和操作表.546 问题答案546 练习答案548 第 10天 创建视图和索引549 问题答案549 练习答案550 第 11天 事务处理控制..550 问题答案550 练习答案551 第 12天 数据库安全..552 EMAIL wyhsillypig@163 15SQL 21日自学通V1.0 翻译人 笨猪 问题答案552 练习答案552 第 13天 高级 SQL.553 问题答案553 练习答案553 第 14天 动态使用 SQL..554 问题答案554 练习答案554 第 15天 对 SQL语句优化以提高其性能555 问题答案555 练习答案555 第 16天 用视图从数据字典中获得信息.557 问题答案557 练习答案557 第 17天 使用 SQL来生成 SQL语句558 问题答案558 练习答案560 第 18天 PL/SQL简介561 问题答案561 练习答案561 第 19天 TRANSACT-SQL简介.562 问题答案562 练习答案562 第 20天 SQL*PLUS.563 问题答案563 练习答案563 第 21天 常见的 SQL错误及解决方法.564 问题答案564 练习答案565 译者的话 大家好 我是笨猪 由于我的能力有限 所以文章中会存在许多的不当之处 特别是 我也是一个初学者 所以我想通过这一工作来认识更多的朋友 能得到高手的指点也可以让我的学习有一个进 步 这也正是我所期望的 EMAIL wyhsillypig@163 16SQL 21日自学通V1.0 翻译人 笨猪 您如果发现文章有错误或不当的地方 请 MAIL给我 我会对此进行及时的更正 本人对书中的内容不作任何担保 对使用本书中所述内容进行操作所引起的事故亦不 承担任何责任 这本书我想它可以称为 FREEBOOK 也就是说你可以自由地使用它而不必付出任何费 用 但出于对书中内容负责的态度 所以当你认为需要对其进行修改时请先通知我 由我 自己来进行修改 本书目前的版本为 1.0版 随着日后的修改它的版本会升高 直至最终定稿 在此 我特别感谢所有为本书提供了发布空间的网站 感谢他们对互联网事业的支持 中华网电脑书库首先为本人敞开了大门 在此特别感谢 需要说明的是 本书的工作到此并没有结束 虽然它的内容已经完整了 但是正如我 所说 还并不完善 所以我希望得到大家的帮助和指点 这也可以看作是你对我的工作的 支持吧 这半年来 我的妻子 边文兰对我的工作非常的支持 没有她的鼓励 你也许就不 会看到眼前的东西了 网友 ARROWTIME对本书的部分内容作了修订 对此我非常感谢 另 所有对本书提出了有价值的修改意见的网友 我均会将你的名字写入本书中 因为这 本书中也有您的汗水 我的信箱是 wyhsillypig@163 是一个 8M的信箱 王永宏 2001年 7月 5日 EMAIL wyhsillypig@163 17SQL 21日自学通V1.0 翻译人 笨猪 第一周概貌 从这里开始 在本周我们将向大家介绍 SQL的发展历程及其前景 并来学习第一个 SQL语句 ? ? SELECT 语句 它使我们能够用自己的方法来从数据库中检索到自己想要的数据 同时 在第一周我们也将学习 SQL的函数 联合查询及子查询 嵌于查询中的查询 并举出多 个例子以帮助您理解它们 这些例子是适用于 Oracle7 Sybase SQL Server Microsoft Access Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点 读者们会 觉得这些例子更具有适用性和趣味性 EMAIL wyhsillypig@163 18SQL 21日自学通V1.0 翻译人 笨猪 第一天 SQL简介 SQL简史 SQL的诞生于 IBM公司在加利福尼亚 San Jose的试验室中 在七十年代 SQL由这里 开发出来 最初它们被称为结构化查询语言 Structured Query Language 并常常简称为 sequel 开始时它们是为 IBM公司的 DB2 系列数据管理系统 RDBMS ? ?关 系型数据库 管理系统 而开发的 您在今天仍可以买到在不同平台下运行的该系统 事实上 是 SQL 造就了 RDBMS 它是一种非过程语言 与第三代过程语言如 C和 COBOL产生于同一时 代 注 非过程性语言的意思就是指与具体过程无关 举例来说 SQL描述了如何对数据 进行检索 插入 删除 但它并不说明如何进行这样的操作 这种特性将 RDBMS从 DBMS中区别开来 RDBMS提供了一整套的针对数据库的语 言 而且对于大多数的 RDBMS来说 这一整套的数据语言就是 SQL 这里一整套的意思 就是对数据和处理操作语言是一些过程的集合 有两个 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化组织 美国国家标准协会 ANSI 和国际标准组织 ISO 正致力于 SQL 在工业领域的标准化应用工作 本书使用的标准为 ANSI-92 尽管该标准要求所有的数据 库设计者应遵守这一标准 然而所有的数据库系统所用的 SQL均与 ANSI-92存在一定的 差异 此外 大多数数据库系统对 SQL进行了有针对性的扩展使它们成为了过程型语言 在本书中我们对不同的 RDBMS系统给出了它们的 SQL语言例句 希望你能从中发现它们 的共性 我们将要讨论的过程型 SQL有 PL/SQL和 Transact-SQL 它们将在第 18天和第 19天提到 数据库简史 对数据库的发展历程有一个简要的了解可以使您更清楚如何使用 SQL来工作 数据库 系统在商业领域应用极为广泛 大到航空机票售票系统 小到孩子们的棒球卡管理系统 数据库将按照我们的意愿来存储和处理这些数据 直到最近几年以前 大型的数据库系统 EMAIL wyhsillypig@163 19SQL 21日自学通V1.0 翻译人 笨猪 仍只能在大型机上运行 而大型机的运行 维护 使用费用均是非常昂贵的 然而在今天 工作站的能力强大到可以让编程人员以极快的速度和极低的价格来设计和发布软件 Dr. Codd's对关系型数据库系统的十二条规则 关系型数据库是最为流行的数据存储模式 它产生于一个名称为 A Relational Model of Data for Large Shared Data Banks 的 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 中 SQL进而发展为关系型的数据库 对于关系 型数据库 Dr. Codd's定义了 12条规则使之与其他类型的数据库相区别 0 关系型数据库必须通过关系来实现对数据的完全管理 1 所有在关系型数据库中的信息均可以在表中以数值的形式加以体现 2 在关系型数据库中的每一项数据均可以通过库名 键名和列名来准确指定 3 关系型数据库系统必须对空值 未知的和违规的数据 提供系统级的支持 有独特 的缺省值 而且具有独立域 这一段不太清楚 4 活动的 即时的数据联合 ? ?它的意思就是在数据库中的数据应有逻辑表格的行的 形式来表达 并且可以通过数据处理语言来访问 5 完善的数据子语句 ? ?它应该至少支持一种有严格语法规则和功能完善的语言 并 且应该支持数据和定义 处理 完整性 权限以及事务等操作 6 查看更新规则 ? ?所有在理论上可以更新的视图可以通过系统操作来更新 7 数据库中数据和插入 更新与删除操作 ? ?该数据库系统不仅要支持数据行的访 问 还要支持数据和的插入 更新和删除操作 8 数据和物理独立性 ? ?当数据在物理存储结构上发生变化时应用程序在逻辑上不应 受到影响 9 数据的逻辑独立性 ? ?当改变表的结构时应用程序在最大程度上不受影 响 10 有效性独立 ? ?数据库的语言必须有定义数据完整性规则的能力 数据应即时存 储在线目录 而且在处理时必须通过这一五一节 11 发布的独立性 ? ?当数据第一次发布或当它重新发布时应用程序应不受影响 12 任何程序不可能使用更低级的语言从而绕过数据库语言的有效性规则定义 大多数数据库具有父/子关系 这就是说在父结点中保存有子结点的文件指针 见下 图 EMAIL wyhsillypig@163 20SQL 21日自学通V1.0 翻译人 笨猪 这种方式有优点也有缺点 它的好处在于它使得数据在磁盘上的物理存储结构变得不 再重要 编程人员只需存储下一个文件的指针就可以实现对下一个文件的访问 而且数据 的添加和删除操作也变得非常容易 可是不同组的信息想要联合为一个新组就变得困难了 这是因为在这种方式下数据在磁盘上的存储格式不能在数据库建立以后再强制性地改变 如果需要这样做那就必须重新建立一个数据库结构 Codd's 的关系型数据库思想借用的逻辑代数的思想 使得数据的子集与父 级之间具有 平等的地位 由于信息可以很自然地组织在不同的表格中 Dr. Codd也以这种方式来组织他所提出 的数据库 在关系模式下 数据被存入类似于表格的结构中 这种表格由独立的数据元组 被称为列或字段 所组合而成 一组数据信息被存储为一行 举例来说 创建一个包括 雇员内容的关系型数据库 我们可以很容易地从雇员表开始 而像这样的表在很容易得到 的 该表中包含有如下信息 姓名 年龄 职业 这三项数据用作雇员表的字段 整个表 如下图所示 姓名 年龄 职业 Will Williams 25 Electrical Engineer Dave Davidson 34 Museum Curator Jan Janis 42 Chef Bill Jackson 19 Student DonDeMarco 32 Game programmer EMAIL wyhsillypig@163 21SQL 21日自学通V1.0 翻译人 笨猪 BeckyBoudreaux 25 Model 在这个表中有六行记录 为了从中找到特定的记录 举例来说 Dave Davidson 用 户可以望知数据库管理系统在数据库中检索满足条件 姓名 Dave Davidson 的记录 如果数据库管理系统已经检索过了全部的数据 那么 它将会把满足条件的的姓名 年龄 职业三项的记录返回给用户 SQL会通知 DBMS 找什么样的数据 这一检索过程的 SQL 例句如下 SELECT * FROM EMPLOYEE 在这里不要刻意去记它的语句 我们在明天将会对它进行更为详细的讨论 由于通过明显的关系可以特不同的数据项归结在一起 比如雇员的姓名和雇员的年 龄 所以关系性数据库管理系统对如何来描述数据之间的关系给出了相当大的弹性 通过 精确的的连接和联合运算 关系型数据库管理系统可以非常迅速地从不同的表中将所需要 的数据联合 见联合运算图 然后返回给用户或程序 这种联合的特性允许数据库的设计 者将数据信息存储在不同的表中以减少数据的冗余度 右图则反映了相交运算 相交运算地意思就是取出两个或多个库所共有的部分 表 表 表 A 表 B 相交运算 联合运算 这里有一个简单的例子来显示数据是如何进行逻辑处理的 表 1-2 是一个被称为 报 告 的表 它的里边有两个字段 姓名和工作 Name Duties Becky Boudreaux Smile Becky Boudreaux Walk Bill Jackson Study Bill Jackson Interview for jobs 在雇员数据库中的年龄和职业字段在每一个记录中均出现重复是不合适的 而且随着 时间的进行 这些冗余的数据将会占用大量的磁盘空间且使得数据库管理系统在检索数据 EMAIL wyhsillypig@163 22SQL 21日自学通V1.0 翻译人 笨猪 所耗用的时间增多 可是 如果你将姓名和工作另存到一个名字叫 报告 的库中以后 你就可以通过联合操作将 报告 与 雇员 通过姓名字段进行联合操作也就是通知 RDBMS 将 报告 与 雇员 库中姓名与 Becky Boudreaux相同的记录显示出来 其结 果将如下 所示 Name Age Occupation Duties Becky Boudreaux 25 Model Smile Becky Boudreaux 25 Model Walk 关于联合运算的详细讲述将在第 6天的 库的联合 中讲述 设计数据库的结构 在数据库的设计师已经决定了系统的硬件平台和 RDBMS 系统以后 余下事情中最为 重要的就是如何来设计数据库的结构了 数据库的结构将会影响到是后运行于该库上的应 用程序的性能 这个决定数据库的分配情况及联合运算的过程称之为标准化 数据库的前景 电脑技术将对今天世办上的商业产生深远的影响 鼠标只要点一下就可以将数据入库 或对其进行访问 制造商的国外订货单可以立即接受并执行 尽管在 20年以前信息的交换 还需要大型机的支持 而办公领域处理事务也仍在采用批处理的方式 要完成某一个查询 用户需要将需求提交给服务器上的信息管理系统 MIS 给果将会以最快的速度返回给用 户 尽管经常不是足够快 此外 随着关系型数据库模型的发展 有两种技术被引用到了在今天被称为服务器/客 户机的数据库系统当中 第一项技术就是个人电脑 廉价而又易用的应用程序如 Lotus1-2- 3和 WordPerfect允许员工 或家庭用户 可以建立文档来快速而准确地处理数据 用户也 会经常升级他们的系统以使其速度更快 巧的是这时的系统的价格却在迅速下跌 第二项技术则是局域网的发展 它导致的世界范围内的办公交叉 ? ?虽然用户习惯于 采用终端同主机相连 在今天 一个字处理文档可以存储在本地而被任何连接到网络上的 电脑访问 然后苹果的 Macintosh电脑为大家提供了一个友好易用的图形用户界面 使得 电脑变得物美价廉 此外 他们可以访问远程站点 并从服务器上下传大量的数据 在这个飞速发展的时期 一种新型的叫作服务器/客户机的系统诞生了 这种系统的处 EMAIL wyhsillypig@163 23SQL 21日自学通V1.0 翻译人 笨猪 理过程被分解上了客户机和数据服务器上 新型的应用程序取代了基于主机的应用程序 这一体系有着相当多的优点 l 降低了维护费用 l 减轻的网路负荷 处理过程在服务器上和客户机上均有 l 多个操作系统可以基于相同了网络协议来共同工作 l 本地化的数据操作提高了数据的完整性 对于什么是客户机/服务器型电脑系统 Bernard H. Boar的定义如下 客房机/服务器系统就是把单一的任务分解到多个处理器上进行协同处理,就像在单个 处理器上运行时一样 一个完备的客户机/服务器系统可以将多个处理器捆绑在一起 以提供一个单一系统虚拟环境 共享的资源可以被位于远端的客户机通过特殊的服 务来访问 这种结构可以逐级递归 所以一级服务器可以在最后转变为客户机进需 要求其他的服务器提供服务 就这样一直下去 这种类型的应用程序在设计时需要全新的程序设计技巧 今天的用户界面都是图形用 户界面 不论是微软的 WINDOWS 苹果的 MACINTOSH IBM的 OS/2还是 UNIX的 X- windows系统均是如此 用过使用 SQL和网络 应用程序就可以访问位于远端服务器上的 数据库 个人电脑处理能力的提高可以对存放在一系统相关的服务器的数据库作出评定 而这此服务器是可以更换的 而应用程序则只需做出较少的改动甚至无需改动 交互式语言 本书在许多场合下可以借用 BASIC的概念举例来说 Microsoft Access是基于 windows 的单用房应用程序而 SQL SEVER则可以允许 100个用户同时工作 SQL的最大优越性在 于它是一种真正的跨平台的交互式语言 由于它可以被程序员在第四代的编程语言中调用 第四代编程语言可以做用少量的代码做大量的工作 易于实现 ORACLE公司是第一个发行基本于 SQL的关系型数据库管理系统 RDBMS 的公司 虽然它是为 VAX/VMS系统开发的 ORACLE公司也是 DOS下的关系型数据库的供应商 之一 ORACLE现在可以运行在近 70种平台之上 在八十年代中期 Sybase公司发行了 EMAIL wyhsillypig@163 24SQL 21日自学通V1.0 翻译人 笨猪 他们的 RDBMS ? ?SQL Sever 具有客户端数据库访问功能并支持过程存储 将在第 14天 的动态应用 SQL中提到 和多平台交互工作能力 SQL Sever作为一个成功的产品 其客 户机/服务器工作能力是其最为突出的优势所在 这个强大的数据库系统具有极高的平台适 应性 用 C语言写成的运行于 PC机的 ORACLE其实是运行于 VAX系统上的 ORACLE的 复制 SQL与客户机/服务器应用程序开发环境 在使用客户机/服务器电脑来开发客户机/服务器应用程序时 SQL和关系型数据库的思 想遍及始终 在单用户系统中使用这种技术也可以使您的程序更适应未来的发展 SQL总览 SQL是操作和检索关系型数据库的事实上的标准语言 它允许程序员和数据库管理员 做如下的工作 l 更改数据库的结构 l 更改系统的安全设置 l 增加用户对数据库或表的许可权限 l 在数据库中检索需要的信息 l 对数据库的信息进行更新 注 对于 SQL大家可能还不明白 S即 Structured 结构 L即 Language 语言 这是显 而易见的 但是 Q的意思容易让人误解 Q的意思当然是 Query 查询 ? ?如 果你 直译的话 可是这只限于你对数据库提问 但是 SQL能干的不只是查询 通过它你可 以建立一个库 添加和删除数据 对数据作联合 当数据库改变时触发动作 并把你 的查询存储在程序或数据库中 不幸得很 这对于查询来说似乎是一个缺点 显然 库结构的增加 删除 修改 联 合 存储 触发以及查询语言在多用户协同工作时有点烦琐 我们将会在工作中一直与 SQL 打交道 不过现在你应该知道它的功能不只是限于它的名字所指的内容了 SELECT语句是 SQL中应用最多的语句 见第二章 查询 ? ? SELECT 语句的使用 它会从数据库中检索需要的数据并把结果返回给用户 上边的雇员表的举例便是一个典型 EMAIL wyhsillypig@163 25SQL 21日自学通V1.0 翻译人 笨猪 的 SELECT语句的使用例子 除了 SELECT语句之外 SQL还提供了用以建立新的数据库 表格 字段和索引的语句以及记录的插入和删除语句 你将会发现 ANSI SQL还提供了 对核心数据操作的功能 许多数据库管理系统还提供了确保数据完整性和强制安全性的工 具 见第 11天的传输控制 它允许程序员在当前环境不符合的时候强制性地终止语句组 的执行 流行的 SQL开发工具 这一部分将介绍一些大众化的 SQL开发工具 每一种工具都有它的优点和缺点 一些 工具是基于 PC用户的 强调易用性 而另一些则是为超大型数据库提供的 本部分将向 您介绍选择这些工具的关键所在 注 为了 SQL在实际中的使用 本书中举出了一些 SQL在实际开发环境中的应用例 子 SQL只有出现在你的代码中 为你真正地解决了问题才说明它是有用的 Microsoft Access 在一些应用实例中我们将会举一些 Microsoft Access的例子 Microsoft Access是一个 非常容易使用的基于 PC机的数据库管理系统 在它的下边你既可以手工输入 SQL语句也 可以使用图形用户界面工具来生成 SQL语句 Personal Oracle7 我们使用 Personal Oracle7来向大家演示 SQL对大型数据库上的命令行使用方法 当 用户对一个数据库或一个操作系统有充分的了解以后 需要在一个孤立的电 脑上进行设计 时这种方法是非常重要的 在命令行下 用户可以在 SQL PLUS工具中输入不同的单的 SQL 语句 该工具可以把数据返回给用户 或是对数据库进行适当的操作 大多数例子是针对初用 SQL进行程序设计的程序员的 我们从最简单的 SQL语句开 始并进阶到事务处理阶段 为程序设计做好准备 Oracle的发行版提供一整套的开发工具 它包括 C++和 Visual Basic 函数库Oracle Objects for OLE 通过它可以将应用程序与 ORACLE个人数据库链接在一起 它也可以为数据库 用户或管理员提供图形工具 同 SQL*Loader一样 它也经常用于从 Oracle数据库中导出或引入数据 EMAIL wyhsillypig@163 26SQL 21日自学通V1.0 翻译人 笨猪 注 Personal Oracle7是 Oracle7 server的不完整版 它只允许单用户操作 就如同它的名字 一样 但它在 SQL的语法使用与大型 更昂贵的 Oracle版本是相同的 此外 在 Personal Oracle7中所使用的工具也适用于 Oracle的其他版本 我们选择 Personal7基于以下原因 l 它几乎用到了本书中将要讨论的所有工具 l 它是可以在几乎全部的平台运行的 风靡世界的关系型数据库管理系统 l 可以从 Oracle公司的服务器上下载一个它的 90天限时版////0>. 上图显示了 SQL-PLUS的一个画面 技巧 注意在本书中所给出的所有 SQL代码都适用于其它的数据库管理系统 防止在其它 的系统中语法出现大的差别 在本书的例子中指出了它在其它系统中的不同之处 Microsoft Query Microsoft Query是 Microsoft公司的 Visual C++和 Visual Basic开发工具包中所附带的 一个非常有用的查询工具 它可应用在基于 ODBC标准下的数据库 该查询工具在将查询 语句提交给数据库之前会将基保留在驱动器上 EMAIL wyhsillypig@163 27SQL 21日自学通V1.0 翻译人 笨猪 开放型数据库联接 ODBC ODBC 是为应用程序接口 API 提供的访问下层数据库所 用的函数库 它通过数据库引擎与数据库交流 就像在 Windows 通过打印驱动程序与打印机通信那样 为了访问数据库 可能还 会需要网络驱动程序与异地数据库通信 ODBC 的结构如右图所 示 ODBC的特色在于它不是针对任何一种数据库的 举例来说 你可以用相同的代码来在 Microsoft Access 表中或 Informix database上运行查询 而无需修改代码或只需做很小的改动 再 提醒您一次 第三方数据库供应商可能会在 SQL的标准之上对其 进行扩充 比如 Microsof和 Sybase的 Transact-SQL以及 Oracle 的 PL/SQL 当您用一种新型的数据库工作时您应该认真阅读一下它的文档 ODBC 是许 多数据库 所支持的一种标准 包括 Visual Basi
本文档为【SQL21自学通(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_871676
暂无简介~
格式:doc
大小:68KB
软件:Word
页数:0
分类:
上传时间:2018-03-18
浏览量:17