MSSQL编程:SQL select 语法
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失select|语法SQL内里最经常使用的命令是SELECT语句,用于检索数据。语法是:
SELECT)]]*|expression[,...]new_table]]]][{UNION|INTERSECT|EXCEPT}select][,...]]]]]
如今我们将经由过程分歧的例子演示SELECT语句庞大的语法。用于这些例子的表在供给商和部件数据库里界说。
1.4.1.1.复杂的Select
这里是一些利用SELECT语句的复杂例子:
Example1-4.带有前提的复杂查询
要从表PART内里把字段PRICE年夜于10的一切纪录找出来,我们写出上面查询:
SELECT*FROMPARTWHEREPRICE>10;
然后失掉表:
PNO|PNAME|PRICE-----+---------+--------3|Bolt|154|Cam|25
在SELECT语句里利用"*"将检索出表中的一切属性。假如我们只但愿从表PART中检索出属性PNAME和PRICE,我们利用上面的语句:
SELECTPNAME,PRICEFROMPARTWHEREPRICE>10;
这回我们的了局是:
PNAME|PRICE--------+--------Bolt|15Cam|25
请注重SQL的SELECT语句对应干系演算内里的"projection"(映照),而不是"selection"(选择)(参阅干系演算猎取具体信息)。
WHERE子句里的前提也能够用关头字OR,AND,和NOT逻辑地毗连起来:
SELECTPNAME,PRICEFROMPARTWHEREPNAME=BoltAND(PRICE=0ORPRICE<=15);
如许将天生上面的了局:
PNAME|PRICE--------+--------Bolt|15
方针列表和WHERE子句里可使用算术操纵。比方,假如我们想晓得假如我们买两个部件的话要几钱,我们能够用上面的查询:
SELECTPNAME,PRICE*2ASDOUBLEFROMPARTWHEREPRICE*2<50;
如许我们失掉:
PNAME|DOUBLE--------+---------Screw|20Nut|16Bolt|30
请注重在关头字AS前面的DOUBLE是第二个列的新名字。这个技能能够用于方针列内外的每一个元素,给它们付与一个在了局列中显现的新的题目。这个新的题目一般称为别号。这一般名不克不及在该查询的其他中央利用。
1.4.1.2.Joins(毗连)
上面的例子显现了SQL里是怎样完成毗连的。
要在配合的属性上毗连三个表SUPPLIER,PART和SELLS,我们一般利用上面的语句:
SELECTS.SNAME,P.PNAMEFROMSUPPLIERS,PARTP,SELLSSEWHERES.SNO=SE.SNOANDP.PNO=SE.PNO;
而我们失掉的了局是:
SNAME|PNAME-------+-------Smith|ScrewSmith|NutJones|CamAdams|ScrewAdams|BoltBlake|NutBlake|BoltBlake|Cam
在FROM子句里,我们为每一个干系利用了一一般名,由于在这些干系间有着大众的定名属性(SNO和PNO)。如今我们能够辨别分歧表的大众定名属性,只必要复杂的用每一个干系的别号加上个点做前缀就好了。团结是用与一个外部连接里显现的一样的办法盘算的。起首算出笛卡儿积SUPPLIER 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了! SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 呵呵,这就是偶想说的 无法深入到数据库系统层面去了解和探究 sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西 连做梦都在想页面结构是怎么样的,绝非虚言 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
页:
[1]