A. sql中引用一个表的查询结果作为条件来查询另一个表如何实现
sql中引用一个表的查询结果作为条件来查询另一个表称为sql嵌套查询。
简单子查询
示例:Copyselect name,age from person
where age >
( select age from person
where name = '孙权'
)
in嵌套查询
in关键字用于where子句中用来判断查询的表达式是否在多个值的列表中。返回满足in列表中的满足条件的记录。
示例:
select name from person
where countryid in
(
select countryid from country
where countryname = '魏国'
)
(1)SQL99标准引用扩展阅读
子查询的语法规则
1、子查询的select查询总是使用圆括号括起来。
2、不能包括compute或for.browse子句。
3、如果同时指定top子句,则可能只包括order by子句。
4、子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。
5、任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。
6、如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。
子查询的组成
1、包含标准选择列表组件的标准select查询。
2、包含一个或多个表或者视图名称的标准from子句。
3、可选的where子句。
4、可选的group by子句。
5、可选的having子句。
B. 目前数据库查询语言的标准是什么
SQL是一种结构化数据库查询语言,其发音为“sequel”或“S-Q-L”。尽管MICROSOFT以其特有的方式加入了所有权声明,但它在大多数据库应用中近乎成为一种标准。简言之,它是一种使用你选择的标准从数据库记录中选择某些记录的方法。
SQL是Structured Query Language(结构化查询语言)的缩写,它是目前使用最广泛的数据库语言,SQL是由IBM发展起来的,后来被许多数据库软件公司接受而成为了业内的一个标准。
就象SQL的名字一样,我们可以通过容易理解的查询语言,来和数据库打交道,从数据库中得到我们想要的数据。对于SQL语言,有两个组成部分:
DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
了解这两个部分的不同对于你今后使用时有很多方便,因为许多SQL语言中的约束也是根据这个分类来划分的,比如:你在ORACLE中建立数据库链,那么只有DML类语言能对链接的数据库进行操作。
SQL作为一个ANSI标准,一直在不断改进,现在最新的标准是SQL99。ORACLE不但对标准的SQL完全兼容,而且有自己更为方便的增强SQL,所以这里介绍的主要是ORACLE8中使用的SQL。
C. sql 标准是什么怎么定义的!
你可以搜索一下 SQL92会得到很多的资料。
为什么不同数据库差异很大? 因为:
1、如果跟其他产品的sql完全一样,就会有给其他产品替代的危险,无法“绑架”使用本产品的用户(就像“扣扣”绑架用户类似)
2、不同的数据库提供商引擎不同,引擎的差异导致数据库产品会用一些个性的语法来突出自己产品的功能、性能特性等。
就像所有的汽车都有速度表、里程表、油量表和温度表,但是样式都不会相同一样
3、SQL92标准是各个数据库产品应该事先的功能、语法的一个子集。
D. 请教,SQL-92标准和SQL-99写法的差别
,SQL-92标准和SQL-99写法的差别
QL>select /* index(h I_ic_general_h_2) */
2 invcl.invclassname,round((avg(b.nprice)/0.854),2) price
3 from ic_general_b b
4 inner join ic_general_h h on h.cgeneralhid=b.cgeneralhid
5 inner join bd_invbasdoc inv on inv.pk_invbasdoc=b.cinvbasid
6 inner join bd_invcl invcl on invcl.pk_invcl=inv.pk_invcl
7 where h.cbilltypecode='45' and invcl.invclasscode in (select invclasscode from samsung_proct)
8 and h.dbilldate>=to_char(sysdate-180,'yyyy-mm-dd')
9 group by invcl.invclassname;
INVCLASSNAME PRICE
----------------------------------------------------- ----------------
SAMSUNG(G)S6812i 572.47
SAMSUNG(G)S7562I 854.48
SAMSUNG(G)C101 2524.2
SAMSUNG(G)B9062(CMCC) 2551.09
SAMSUNG(G)I9158(CMCC) 2066.94
SAMSUNG(G)E1200M 134.11
E. 数据库 ANSI/ISO标准 那个标准好 sql92 sql99 还是 还是相对数据库的
个人感觉使用SQL92比较好点、毕竟现在国内使用SQL 2000及2005的企业及单位都比较多、
2005都不是完全符合SQL 99的要求的。至少近几年不会发生什么变动。
而且一套软件我估计也不会使用10年、一般几年过后发生大的业务改动、也会面临重新规划、毕竟重新规划、我私人觉得会比在原版基础上做修改、开发要好很多
F. sql99标准为什么引入
使用SQL99标准的连接查询(JOIN..ON..)
内连接
只返回满足连接条件的数据(两边都有的才显示)。
select e., d.
from emp e
inner join dept d
on e.deptno=d.deptno
– 也可以省略inner关键字。
G. SQL语句是什么
SQL全称是“结构化查询语言(Structured Query Language)” SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 SQL同时也是数据库脚本文件的扩展名。 SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。 结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。 美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。 SQL语言包含4个部分: ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。 ※ 数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。 ※ 数据查询语言(DQL),例如:SELECT语句。 ※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。 SQL语言包括三种主要程序设计语言类别的陈述式:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。[编辑本段]SQL发展历史 1970: E.J. Codd 发表了关系数据库理论(relational database theory); 1974-79: IBM 以Codd的理论为基础开发了“Sequel”,并重命名为"SQL"; 1979: Oracle 发布了商业版SQL 1981-84: 出现了其他商业版本,分别来自 IBM(DB2),Data General(DG/SQL),Relational Technology(INGRES); SQL/86:ANSI 跟 ISO的第一个标准; SQL/89:增加了引用完整性(referential integrity); SQL/92(aka SQL2):被数据库管理系统(DBMS)生产商广发接受; 1997+:成为动态网站(Dynamic web content)的后台支持; SQL/99:Core level跟其他8种相应的level,包括递归查询,程序跟流程控制,基本的对象(object)支持包括oids; SQL/2003:包含了XML相关内容,自动生成列值(column values); 2005-09-30:“Data is the next generation inside...SQL is the new HTML”! Tim O'eilly提出了Web 2.0理念,称数据将是核心,SQL将成为“新的 HTML"; SQL/2006:定义了SQL与XML(包含XQuery)的关联应用; 2006:Sun公司将以SQL基础的数据库管理系统嵌入Java V6
H. sql99标准写的sql与oracle标准写的sql在哪个执行的更快
那肯定,oracle对于自己的sql有一定得加强的
比如varchar2和varchar的关系
I. SQL 3是什么标准
为了在各个数据库厂商之间取得更大的统一性,美国国家标准学会(American NationalStandards Institute,ANSI)于1986年发布了第一个SQL标准,并于1989年发布了第二个版本,该版本已经被广泛地采用。ANSI在1992年更新了SQL标准的版本,即SQL92和SQL2,并于1999年再次更新为SQL99和SQL3标准。在每一次更新中,ANSI都在SQL中添加了新特性,并在语言中集成了新的命令和功能。
对于各种数据库产品,ANSI标准规范化了很多SQL行为和语法结构。随着开源数据库产品(例如MySQL、mSQL和PostgreSQL)日渐流行并由虚拟团队而不是大型公司开发,这些标准变得更加重要。
现在,SQL标准由ANSI和国际标准化组织(International Standards Organization,ISO)作为ISO/IEC 9075标准维护。最新发布的SQL标准是SQL:2008,下一版本的发布工作已经在进行之中,它将包含RDBMS在收集或分发数据方式上的新发展。(节选自《SQL实战新手入门》)
J. t-sql语言完全符合ansi sql-99标准吗
ANSI SQL是美国国家标准学会(ANSI) 对SQL进行规范化后的国际标准SQL语言, T-SQL是Microsoft SQL Server基于ANSI SQL做了一些扩展形成的专用SQL语言。