(急~ ~)基于SQL、ASP和Dreamweaver的论文外文翻译

SQL(有时扩展为结构化查询语言)是一种计算机语言,用于从关系数据库管理系统中创建、检索、更新和删除数据。SQL已经被ANSI和ISO标准化了。

SQL通常被称为ess-cue-el (IPA: [s?kjul]),或者像续作这个词(IPA: [?是吗?kw?l])。SQL按照ANSI的官方发音是ess-cue-el。然而,每一个包含字母SQL的主要数据库产品(或项目)都有自己的约定:MySQL的官方通常读作“My Ess Cue El”;PostgreSQL方便地发音为postgres(PostgreSQL的前身的名称);Microsoft SQL Server通常被称为Microsoft-sequel-server。

历史

Edgar F. Codd博士撰写的一篇有影响力的论文《大型共享数据库的数据关系模型》于6月1970日发表在计算机械协会(ACM)期刊《ACM通讯》上,尽管其草稿在1969年在IBM内部传阅。Codd的模型被广泛接受为关系数据库管理系统(RDBMS或RDMS)的最终模型。

在1970年代,IBM圣何塞研究中心的一个小组基于Codd的模型开发了一个数据库系统“System R”。结构化英语查询语言(“SEQUEL”)旨在操作和检索存储在系统r中的数据。缩写SEQUEL后来被浓缩为SQL,因为单词“SEQUEL”被英国的Hawker Siddeley aircraft company作为商标持有。【需要引用】虽然SQL受到了Codd工作的影响,但是IBM的Donald D. Chamberlin和Raymond F. Boyce是《语言设计续集》的作者。他们的概念被发表以增加对SQL的兴趣。

第一个非商业、关系、非SQL数据库Ingres是在加州大学伯克利分校1974开发的。

在1978中,系统测试在客户测试点开始。证明了系统的有用性和实用性,这次测试对IBM来说是成功的。于是,IBM开始基于他们实现SQL的System R原型开发商业产品,包括System/38(1978年发布,1979年8月商用)、SQL/DS(1981年推出)、DB2(1983年)。

与此同时,Relational Software公司(现在的Oracle公司)看到了Chamberlin和Boyce所描述的概念的潜力,并为海军、CIA和其他机构开发了他们自己版本的RDBMS。1979年夏天,Relational Software,Inc .为VAX计算机推出了Oracle V2(第2版),作为第一个商用SQL实现。甲骨文V2公司比IBM提前几周向市场发布了System/38。

标准化

SQL在1986被ANSI(美国国家标准协会)采用为标准,在1987被ISO(国际标准化组织)采用为标准。但是,自从1996中的NIST数据管理标准计划解散后,就没有符合SQL标准的认证,因此必须依靠供应商进行自我认证。

SQL标准不是免费提供的。SQL:2003和SQL:2006可以从ISO或ANSI购买。SQL:2003的最新草案可以从Whitemarsh信息系统公司获得。zip存档包含许多PDF文件,这些文件定义了SQL:2003规范的各个部分。

范围

SQL是为特定目的而设计的:查询关系数据库中包含的数据。SQL是一种基于集合的声明式编程语言,而不是C或BASIC等命令式语言。

语言扩展,如Oracle公司的PL/SQL,通过添加过程元素,如控制流结构,在一定程度上弥合了这一差距。另一种方法是允许编程语言代码嵌入数据库并与数据库交互。例如,Oracle和其他公司在数据库中包含Java,而SQL Server 2005允许任何。NET语言托管在数据库服务器进程中,而PostgreSQL允许用多种语言编写函数,包括Perl、Tcl和c。

存在标准的扩展和变化。商业实现通常忽略对标准基本特性的支持,比如日期或时间数据类型,而更喜欢自己的变体。与ANSI C或ANSI Fortran相比,SQL代码很少能在不进行重大修改的情况下在数据库系统之间移植,而ANSI C或ANSI Fortran通常可以在不进行重大结构更改的情况下在平台之间移植。

PL/SQL、IBM的SQL PL (SQL过程语言)和Sybase / Microsoft的Transact-SQL具有专有性质,因为它们提供的过程编程语言是非标准化的。

缺乏可移植性的原因

数据库系统之间缺乏可移植性有几个原因:

SQL标准的复杂性和规模意味着大多数数据库不能实现整个标准。

*该标准没有在几个重要领域(如索引)指定数据库行为,而是由数据库的实现来决定如何行为。

SQL标准精确地规定了符合标准的数据库系统必须实现的语法。然而,该标准对语言结构的语义的规范没有很好地定义,导致了一些模糊的地方。

*许多数据库供应商拥有庞大的现有客户群;当SQL标准与供应商数据库的先前行为冲突时,供应商可能不愿意打破向后兼容性。

SQL关键字

问题

SQL数据库中最常见的操作是查询,用SELECT关键字表示。SQL SELECT查询是声明性的:

* SELECT从数据库的表中检索数据。虽然经常与数据操作语言语句组合在一起,但许多人认为SELECT与SQL DML是分开的。选择查询允许用户指定所需结果集的描述,但它留给数据库管理系统(DBMS)的设备来规划、优化和执行产生该结果集所必需的物理操作。SQL查询包括一个列的列表,该列表包含在最终结果im中,紧跟在SELECT关键字之后。星号(“*”)也可以用作“通配符”指示符,以指定将返回一个表(或多个表)的所有可用列。SELECT是SQL中最复杂的语句,有几个可选的关键字和子句:

o FROM子句指示从中提取数据的源表。FROM子句可以包含可选的JOIN子句,以便将相关的表相互连接起来。

WHERE子句包含一个比较谓词,用于缩小结果集的范围。WHERE子句从结果集中删除比较谓词计算结果不为True的所有行。

GROUP BY子句用于将具有相关值的行组合成一个较小的行集的元素。

HAVING子句用于确定要检索哪些“组合行”(当查询包含GROUP BY子句或当选择部分包含聚合时,会生成组合行)。HAVING的行为很像WHERE,但是它对GROUP by的结果进行操作,并且可以包含聚合函数。

ORDER BY子句用于确定哪些列用于对结果数据进行排序。除非包含ORDER BY子句,否则SELECT返回的行的顺序永远无法保证。

数据检索经常与数据投影结合在一起;通常,用户寻找的不是原始数据类型中存储的逐字数据,也不是编写查询所要服务的。通常,数据需要以不同于其存储方式的方式来表达。SQL允许选择列表中包含各种公式来投影数据。

示例1:

从书籍中选择*

其中价格& gt100.00

按标题排序

这是一个可以用来获取昂贵书籍列表的例子。它从books表中检索价格字段大于100.00的记录。结果按书名的字母顺序排序。星号(*)表示显示books表的所有列。或者,可以命名特定的列。

示例2:

选择books.title,count(*)作为作者

从书上

加入图书_作者

ON books . book _ number = book _ authors . book _ number

按书籍分组。标题

也可以写成

选择标题,按作者计数(*)

来自图书自然加入图书_作者

按标题分组

前提是book_number是两个表的唯一公共列名,并且名为title的列只存在于books中。

示例2展示了在一个连接中使用多个表,以及聚合(分组)。这个例子显示了每本书有多少作者。示例输出可能类似于:

标题作者

- -

SQL示例和指南3

SQL 1的快乐

如何使用维基百科2

SQL 1的陷阱

SQL如何拯救我的狗1

数据操作

首先,有标准数据操作语言(DML)元素。DML是用于添加、更新和删除数据的语言的子集:

* INSERT用于将行(形式上为元组)添加到现有表中。

* UPDATE用于修改一组现有表行的值。

* MERGE用于合并多个表的数据。它是插入和更新元素的组合。它是在SQL:2003标准中定义的;在此之前,一些数据库通过不同的语法提供类似的功能,有时称为“upsert”。

* DELETE从表中删除零个或多个现有行。

插入示例:

插入my_table (field1,field2,field3)值(' test ',' N ',NULL);

更新示例:

UPDATE my_table集合field1 = 'updated value '其中field2 = ' N

删除示例:

从my_table中删除,其中field2 = ' N

交易控制

事务(如果可用)可用于包装DML操作:

* BEGIN WORK(或START TRANSACTION,取决于SQL方言)可用于标记数据库事务的开始,该事务要么完全完成,要么根本不完成。

* COMMIT使事务中的所有数据更改永久化。

*回滚会导致放弃自上次提交或回滚以来的所有数据更改,因此数据状态会“回滚”到请求这些更改之前的状态。

提交和回滚与事务控制和锁定等领域进行交互。严格地说,两者都终止任何打开的事务并释放数据上持有的任何锁。在缺少BEGIN WORK或类似语句的情况下,SQL的语义依赖于实现。

示例:

开始工作;

更新库存集数量=数量- 3,其中项目=“裤子”;

提交;

数据定义

第二组关键字是数据定义语言(DDL)。DDL允许用户定义新的表和相关的元素。大多数商业SQL数据库在其DDL中都有专有的扩展,允许控制数据库系统的非标准特性。DDL最基本的项目是创建、更改、重命名、截断和删除命令:

* CREATE导致在数据库中创建一个对象(例如,一个表)。

* DROP导致数据库中的现有对象被删除,通常是不可恢复的。

* TRUNCATE删除表中的所有数据(非标准但常见的SQL命令)。

* ALTER命令允许用户以各种方式修改现有对象,例如,向现有表中添加列。

示例:

创建表my_table(

my_field1 INT,

my_field2 VARCHAR (50),

my_field3日期不为空,

主键(我的字段1,我的字段2)

);

数据控制

第三组SQL关键字是数据控制语言(DCL)。DCL处理数据的授权方面,并允许用户控制谁有权查看或操作数据库中的数据。它的两个主要关键词是:

同意

授权一个或多个用户对一个对象执行一项或一组操作。

取消

删除或限制用户执行一项或一组操作的能力。

示例:

将my_table上的SELECT,UPDATE授予某个_user,另一个_user。

其他的

* ANSI-standard SQL支持双破折号,-,作为单行注释标识符(某些扩展还支持花括号或C-style /* comments */用于多行注释)。

示例:

SELECT * FROM inventory -从清单表中检索所有内容

*一些SQL服务器允许用户定义函数

对SQL的批评

从技术上讲,SQL是一种用于“SQL数据库”的声明性计算机语言。理论家和一些实践者注意到,许多最初的SQL特性受到了数据库管理的关系模型及其元组演算实现的启发,但却违反了它们。最近对SQL的扩展实现了关系完整性,但也恶化了违规情况,如第三个宣言所述。

此外,还有一些关于SQL实际使用的批评:

*不同供应商之间的实现不一致,通常也不兼容。具体来说,日期和时间语法、字符串连接、空值和区分大小写通常因供应商而异。

*这种语言使得笛卡尔连接(连接所有可能的组合)变得太容易了,当WHERE子句键入错误时,会导致“失控”的结果集。笛卡尔连接在实践中很少使用,因此可能需要一个显式的笛卡尔关键字。

*也有可能在更新或删除时错误构造WHERE,从而影响表中比预期更多的行。

* SQL——及其现有的关系模型——没有提供处理树结构的标准方法,即行递归引用同一表的其他行。Oracle提供了一个“CONNECT BY”子句,Microsoft通过公共表表达式提供了递归连接,其他解决方案是使用递归并返回行集的数据库函数,可能在PostgreSQL中使用PL/PgSQL。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Active Server Pages (ASP)是微软用于动态生成网页的服务器端脚本引擎。它是作为互联网信息服务(IIS)的一个附件上市的。各种内置对象使ASP网站的编程变得更加容易。每个对象对应于一组用于创建动态网页的常用功能。在ASP 2.0中有六个这样的内置对象:应用程序、错误、请求、响应、服务器和会话。例如,Session是一个基于cookie的会话对象,它维护页面之间的变量。

大多数ASP页面都是用VBScript编写的,但是也可以使用@Language指令或& ltscript language = " language " runat = " server " & gt;语法。JScript(微软的ECMAScript实现)是另一种通常可用的语言。PerlScript(Perl的衍生物)和其他一些可作为第三方可安装的活动脚本引擎。

InstantASP和ChiliASP是在没有Windows操作系统的情况下运行ASP的技术。在WWW上有一些大型的开源社区,比如ASPNuke,他们生产ASP脚本、组件和应用程序,在某些许可条款下可以免费使用。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Adobe Dreamweaver,或简称Dreamweaver,是一种web开发工具,最初由Macromedia创建。该应用程序的最初版本是作为简单的WYSIWYG HTML编辑器使用的,但是最近的版本加入了对许多其他web技术的显著支持,如CSS、JavaScript和各种服务器端脚本框架。该软件可用于Mac和Windows平台,但也可以通过使用Wine等仿真软件在类Unix平台上运行。Dreamweaver目前由Adobe Systems所有,该公司于2005年收购了Macromedia。

内容

特征

作为一个所见即所得的编辑器,Dreamweaver可以对用户隐藏pages的HTML代码的细节,这使得非编码人员可以创建网页和网站。对这种方法的一个专业批评是,它产生的HTML页面的文件大小和HTML代码量比它们应该有的要大得多,这会导致web浏览器性能很差。这一点尤其正确,因为应用程序使得创建基于表格的布局变得非常容易。此外,一些网站开发人员过去曾批评Dreamweaver生成的代码经常不符合W3C标准,尽管这在最近的版本中有了很大的改进。Dreamweaver 8.0(CS3中最近发布的9.0之前的版本)在由Web标准项目开发的Acid2测试中表现不佳。但是,Macromedia在应用程序的后续版本中增加了对CSS和其他方式的支持,可以在没有表格的情况下布局页面,并且能够将表格转换为层,反之亦然。

Adobe Dreamweaver CS3

Adobe Dreamweaver CS3

Dreamweaver允许用户在许多浏览器中预览网站,前提是这些浏览器安装在他们的计算机上。它还具有一些站点管理工具,例如能够通过整个站点中指定的任何参数来查找和替换文本或代码行,以及用于创建具有相似结构的多个页面的模板化功能。“行为”面板还支持在没有任何编码知识的情况下使用基本的JavaScript。

随着MX版的出现,Macromedia将动态内容创建工具合并到Dreamweaver中。本着HTML WYSIWYG工具的精神,它允许用户连接到数据库(如MySQL和Microsoft Access),使用脚本技术(如Active Server Pages (ASP)、ASP.NET、ColdFusion、JavaServer Pages (JSP)、PHP等)过滤和显示内容,而无需任何编程经验。Dreamweaver 8.0还支持WYSIWYG XSLT编辑。web数据库应用程序开发的替代解决方案是Alpha Five和FileMaker。

Dreamweaver可以使用“扩展”——任何web开发人员都可以编写的小程序(通常是HTML和JavaScript)。扩展为想要下载和安装它们的人提供了软件的附加功能。Dreamweaver得到了一个庞大的扩展开发人员社区的支持,他们为大多数web开发任务提供扩展(包括商业和免费的),从简单的翻转效果到全功能的购物车。