第二个灵魂 发表于 2015-1-16 22:20:58

MSSQL网页设计SQL循规蹈矩(22)EXISTS 和 ALL

根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。EXISTS和ALL
EXISTS利用了一个子查询作为前提,只要当子查询前往行的时分这个前提才为真,假如子查询不前往任何的行前提就为假。假如商铺在处置Chair的时分,有个主顾想看看一切具有者的列表,就能够利用EXSIST,语句以下:
SELECTOWNERFIRSTNAME,OWNERLASTNAME
FROMANTIQUEOWNERS
WHEREEXISTS

(SELECT*
FROMANTIQUES
WHEREITEM=Chair);
假如在Antiques列中有Chair,那末子查询就会前往一行大概多行,就使得EXISTS子句为真,然后让SQL列出具有者来。假如没有搜刮到Chair,则没有行被前往,前提就为假。
ALL是别的一个不平常的关头字,由于ALL查询一般能够用分歧的办法来举行,而且多是一种更加复杂的办法。举个例子来讲明吧:
SELECTBUYERID,ITEM
FROMANTIQUES
WHEREPRICE>=ALL

(SELECTPRICE
FROMANTIQUES);
下面这条语句将前往最低价格的Item和它的买方。子查询前往了Antiques表中的一切的Price列,而外层的查询逐行查询Antiques表,而且假如它的Price年夜于即是(大概ALL)列中的Prices,它就会被列出,它就是最好代价的Item。这里必需利用">="的缘故原由是最低价格的Item要即是列表中的最低价格,由于这个Item在Price列中。
在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

若天明 发表于 2015-1-19 09:08:31

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

莫相离 发表于 2015-1-28 05:59:32

我们学到了什么?思考问题的时候从表的角度来思考问

活着的死人 发表于 2015-2-5 18:37:07

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~

小女巫 发表于 2015-2-13 06:04:44

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

不帅 发表于 2015-3-3 16:53:31

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.

仓酷云 发表于 2015-3-11 12:27:48

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。

海妖 发表于 2015-3-18 17:36:00

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

兰色精灵 发表于 2015-3-26 13:33:44

我个人认为就是孜孜不懈的学习
页: [1]
查看完整版本: MSSQL网页设计SQL循规蹈矩(22)EXISTS 和 ALL