SQL子查询实例
子查询是在一个查询内的查询。子查询的结果被DBMS使用来决定包含这个子查询的高级查询的结果。在子查询的最简单的形式中,子查询呈现在另一条SQL语句的WHERE或HAVING子局内。
列出其销售目标超过各个销售人员定额综合的销售点。
SELECT CITY
from OFFICES
WHERE TARGET > (SELECT SUM(QUOTA)
from SALESREPS
WHERE REP_OFFICES = OFFICE)
SQL子查询一般作为WHERE子句或HAVING子句的一部分出现。在WHERE子句中,它们帮助选择在查询结果中呈现的各个记录。在HAVING子句中,它们版主选择在查询结果中呈现的记录组。
子查询和实际的SELECT语句之间的区别:
在常见的用法中,子查询必须生成一个数据字段作为它的查询结果。这意味着一个子查询在它的SELECT子句中几乎总是有一个选择项。
ORDER BY子句不能在子查询中指定,子查询结果被中查询在内部使用,对用户来说永远是不可见的,所以对它们进行排序没有一点意义。
呈现在子查询中的字段名可能引用主查询中表的字段。
在大多数实现中,字查询不能是几个不同的SELECT语句的UNION,它只允许一个SELECT。
WHERE中的子查询
子查询最常用在SQL语句的WHERE子句中。
列出其定额小于全公司销售目标的10%的销售人员。
SELECT NAME
from SALESREPS
WHERE QUOTA < (.1 * (SELECT SUM(TARGET)) from OFFICES)
(子查询生成用来测试搜索条件的值。)
列出其公司的销售目标超过各个销售人员定额总和的销售点。
SELECT CITY
from OFFICES
WHERE TARGET > (SELECT SUM(QUOTA)
from S
相关文档:
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
......
比如现在有一人员表 (表名:peosons)
若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来
select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid &nbs ......
写了一个小程序,使用了sql server 2005数据库,当时该数据库放到了C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data下面,但是现在觉得不方便,想把它转移到我这个网站代码所在的那个目录,比如d:\network\app_data下面,请问怎么转过去,谢谢?
还有一个问题,就是我看C:\Program Files\Microsoft SQL Serve ......
查询速度慢的原因很多,常见如下几种:
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)
7、 ......