《SQL学习指南(第2版)(修订版)》——1.2 什么是SQL

  • 时间:
  • 浏览:1
  • 来源:uu快3规律_uu快3下载地址_窍门

机会读者有过编程语言的使用经验,机会习惯于定义变量或数据特性、使用条件逻辑(即if-then-else)和循环特性(即do-while-end),并将tcp连接代码分成可复用的小片段(如对象、函数、过程等)。哪哪2个代码经过编译后执行,其执行结果精确地(也并都是老会 精确)符合编程的预期。无论是使用Java、C#、C、Visual Basic还是许多过程化语言,都可不可以 全部控制tcp连接的行为。

除了查询数据库,还需要在数据库中建立和修改数据,下面举出有5个 简单的例子,以说明怎么在product表中插入新行:

此处仅对此搞笑的话进行简单的分析:该查询查找满足下面有5个 条件的行,即在individual表中姓名为George Blake的行,以及在product表中的账户名为checking account的行,并通过account表将它们关联起来,有并且返回transaction表中所有提交到该账户上的交易信息内容,并分4列显示。机会刚好知道George Blake的客户ID是8有并且checking账户的指定代码为“CHK”,就都可不可以 简单地根据客户ID找到George Blake在account表中的checking账户,并使用账户ID来查找相关的交易:

前面的查询包含了5个不同的字句,包括select、from和where。几乎所有的查询都最少会包含这5个子句,当然还有许多哪2个子句可用于更特定的查询目标。下面展示了这5个子句所起的角色:

本书中的大每项篇幅将聚焦于SQL语言中的数据相关每项,包括select、update、insert和delete命令。SQL方案搞笑的话将在第2章中说明,有并且该章所创建的示例数据库将在全书中使用。一般来说,需要对SQL方案搞笑的话的语法进行太满论述,而对于SQL数据搞笑的话,尽管只有寥寥哪2个,但其包含有了几滴 值得仔细研究的内容。有并且,尽管我尽量介绍更多的SQL方案搞笑的话,但本书的大多数章节还是把重点装进SQL数据搞笑的话上。

该搞笑的话创建的表包括两列:corp_id和name。其中,corp_id列被设置为表的主键。在第2章中,机会介绍该搞笑的话的细节,比如MySQL中所提供的各种数据类型。下面给出的SQL数据搞笑的话将向corporation表中插入一行关于Acme Paper Corporation的数据:

本节书摘来自异步社区出版社《SQL学习指南(第2版)(修订版)》一书中的第1章,第1.2节,作者: 【美】Alan Beaulieu,更多章节内容都可不可以 访问云栖社区“异步社区”公众号查看。

SQL学习指南(第2版)(修订版)

根据Codd对关系模型的定义,他提出四种 生活名为DSL/Alpha的语言,用于操控关系表的数据。在Codd的论文发表后不久,IBM建立了有5个 研究小组来根据他的想法构建原型。该小组创建了有5个 DSL/Alpha的冗杂版本,即SQUARE,有并且通过对SQUARE的改进,将之发展为SEQUEL语言,并最终命名为SQL。

在本书中,将分别讨论SQL语言的哪2个独立模块,即SQL 方案(schema)搞笑的话,用于定义存储于数据库中的数据特性;SQL数据搞笑的话,用于操作SQL方案搞笑的话所定义的数据特性;以及SQL事务搞笑的话,用于前一天并且刚开始、前一天并且开始或回滚事务(将在第12章中介绍)。类式,在数据库中创建新表时,需要使用SQL方案搞笑的话create table,而在新表中产生数据则需要SQL数据搞笑的话insert。

提示

大多数的SQL实现都将/和/标记之间的文本视为注释。

当用户构造查询时,首先需要选折 查找的是哪有5个 或哪哪2个表,并将它们加入from子句中,有并且在where子句中增加查询条件以过滤掉不须感兴趣的数据。最后,需要选折 从各个表中所应提取的列,并将之增加到select子句中。下面给出有5个 简单的例子,以展示怎么找到所有姓为“Smith”的客户:

机会用户仅仅需要执行交互式的命令,没了每项数据库开发商都提供了最少有5个 简单的命令行工具,用于向数据库引擎提交SQL命令。大多数开发商都提供了图形化的工具,其包含有显示SQL命令的窗口以及也不我显示SQL命令执行结果的窗口。机会本书中的例子都将在MySQL数据库中运行,许多本书使用mysql命令行工具。该工具属于MySQL安装文件的一每项,并用于运行示例和格式化的结果。

今天SQL机会发展到了中年期(唉,就像作者一样),在这期间它经历了几滴 修改。在20世纪100年代中期,美国国家标准组织(ANSI)前一天并且刚开始制定SQL语言的第有5个 标准,并于1986年发布。其后不断对其改进,并在1989年、1992年、1999年、1003年和1006年发布了一系列SQL标准的新版本。通过对语言核心的改良,新的特性被陆续加入到SQL语言中,以吸收面向对象等许多功能。最后有5个 标准版本,SQL 1006则聚焦于SQL和XML的集成,并定义了XQuery语言以用于在XML文档中查询数据。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

1.2.3 SQL示例

在本章前面,你爱不爱我过要演示返回George Blake的checking账户上所有交易的SQL搞笑的话,下面就兑现你这个承诺,搞笑的话和查询结果如下:

最后需要注意的许多是:SQL并都是任何短语的缩写(尽管一群人坚持认为它代表特性化查询语言(Structured Query Language))。当提到此语言时,都可不可以 使用独立的字母(S.Q.L)或使用单词sequel。

有并且单独使用SQL不须能开发全部的应用,除了编写简单的脚也不我正确处理许多数据,一般需要将SQL与编程语言相集成。许多数据库厂商机会为用户考虑了哪哪2个,如Oracle的PL/SQL语言,MySQL的存储过程语言,以及Microsoft的Transact-SQL语言。在哪哪2个语言中,SQL数据语言是其语法的一每项,以准确无误地将数据库查询与过程化命令集成到同時 。机会使用非数据库指定的语言,如Java等,则需要使用工具集/API以在代码中执行SQL搞笑的话。许多工具集由数据库厂商提供,许多的则由第三方厂商或开源代码提供者所创建。表1-2显示了将SQL集成到特定语言的可用选项。

提示

过程化语言对所期望的结果和产生哪哪2个结果的执行机制或过程都进行了定义。非过程化语言同样定义了期望结果,但将产生结果的过程留给内部人员代理来定义。

使用SQL原应分析需要放弃对过程的控制,机会SQL搞笑的话只定义必要的输入和输出,而执行搞笑的话的土土办法则交由数据库引擎的有5个 组件,即优化器(optimizer)正确处理。优化器的工作包括查看SQL搞笑的话并考虑该表的配置信息以及是否索引等,以选折 最具波特率的执行路径(当然,不须老会 最有波特率)。大多数数据库引擎允许通过指定优化器选项来影响优化器的决策,比如建议使用特定的索引等。而大多数SQL的用户不须需要考虑你这个冗杂的层面,也不我将之交给数据库管理员或性能调优专家来正确处理。

下面给出哪哪2个搞笑的话的具体例子,用于创建corporation表的SQL方案搞笑的话如下:

通过SQL方案搞笑的话所创建的所有数据库元素都被存储在有5个 特殊的表集合,即数据字典中。哪哪2个“关于数据库的数据”一般被称为“元数据”,本书第15章将对此进行全部介绍。与用户所创建的表一样,数据字典表也都可不可以 通过select搞笑的话查询,从而允许在运行时刻查看数据库中的当前数据特性。类式,用户需要编写显示上月新增账户的报表,没了既都可不可以 在报表中对account表的各个列名进行硬编码,也都可不可以 通过查询数据字典以获取当前的列集合并在每次运行时动态地创建报表。

select搞笑的话的返回行数;

insert 搞笑的话创建的行数;

update搞笑的话修改的行数;

delete搞笑的话所删除的行数。

都可不可以 使用过程化语言,并结合上文提到的工具集来调用SQL搞笑的话。工具集通常包含了都可不可以 获取SQL数据搞笑的话执行信息的调用。一般来说,好的做法应当是检查你这个信息以确信搞笑的话执行并没了超出预料(比如忘记为delete搞笑的话增加where子句,从而删除了表中的所有行)。

SQL与关系模型的关系密切,机会SQL查询的结果也都可不可以 视为一张表(在tcp连接上下文中称之为结果集)。有并且,都可不可以 在关系数据库中简单地创建有5个 固定表,用于存放查询的结果集。同样地,SQL查询也都可不可以 使用固定表或许多查询的结果集作为其输入(在第9章中机会讲述其细节)。

该搞笑的话向corporation表中去掉 了一行数据,其中corp_id列的值为27,而name列的值是Acme Paper Corporation。

该查询搜索individual表,以找到所有lname列匹配字符串'Smith'的行,并返回哪哪2个行中的cust_id和fname列。

最后,给出一根绳子 简单的select搞笑的话,以获取刚才创建的数据:

注意,与select搞笑的话一样,update搞笑的话也包含了where子句,这是机会update搞笑的话也要识别所需修改的行。在本例中,只需要将要修改的行指定为product_cd列与字符串'CD'相匹配的哪哪2个行即可。机会product_cd列是product表的主键,有之都可不可以 能预计update搞笑的话会精确地修改某一行(或零行,机会表中该值不发生)。在任哪天刻执行SQL数据搞笑的话,还会收到有5个 来自数据库引擎的反馈,以显示该搞笑的话所影响的行数。机会使用交互式工具,比如上文提到的mysql命令行工具,没了都可不可以 接收到下面几种操作所影响行数的反馈:

在下面的各章节里,机会覆盖到哪哪2个查询的所有概念(有并且会涉及得许多),但在这里最少需要展示一下它们的大致特性。

糟糕,这里将“Deposit”拼错了,不过没了关系,都可不可以 使用update搞笑的话来修复你这个错误: