|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失select|语法
SQL内里最经常使用的命令是SELECT语句,用于检索数据。语法是:
SELECT[ALL|DISTINCT[ON(expression[,...])]]*|expression[ASoutput_name][,...][INTO[TEMPORARY|TEMP][TABLE]new_table][FROMfrom_item[,...]][WHEREcondition][GROUPBYexpression[,...]][HAVINGcondition[,...]][{UNION|INTERSECT|EXCEPT[ALL]}select][ORDERBYexpression[ASC|DESC|USINGoperator][,...]][FORUPDATE[OFclass_name[,...]]][LIMIT{count|ALL}[{OFFSET|,}start]]
如今我们将经由过程分歧的例子演示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 |
|