MYSQL编程:SQL数据操纵基本(低级)1
DBaaS系统其实具有更大的市场机遇:像其他云服务一样,DBaaS意味着更短的销售周期,更少的启动费用,持续不断的收入,也意味着比之前更多的客户。数据为了创建交互站点,你必要利用数据库来存储来自会见者的信息。比方,你要创建一个职业先容服务的站点,你就必要存储诸如团体简历,所感乐趣的事情等等如许的信息。创立静态网叶也必要利用数据库,假如你想显现切合来访者请求的最好的事情,你就必要从数据库中掏出这份事情的信息。你将会发明,在很多情形下必要利用数据库。在这一章里,你将学会如何利用“布局化查询言语”(SQL〕来操纵数据库。SQL言语是数据库的尺度言语。在ActiveSeverPages中,不管什么时候你要会见一个数据库,你就要利用SQL言语。因而,把握好SQL对ASP编程长短常主要的。
注重:
你能够把“SQL”读作“sequel”,也能够按单个字母的读音读作S-Q-L。两种发音都是准确的,每种发音各有大批的撑持者。
在本书里,以为“SQL”读作“sequel”。
经由过程这一章的进修,你将了解如何用SQL完成数据库查询,你将学会如何利用这类查询从数据表中掏出信息,最初,你将学会如何设
计和创建本人的数据库。
注重:
经由过程上面几章对SQL的先容,你将对SQL有充足的懂得,从而能够无效地利用ActiveSeverPages。可是,SQL是一种庞大的言语,
本书不成能包含它的全体细节。要周全把握SQL言语,你必要进修在MicrosoftSQLSever中利用SQL。你能够到四周的书店往买
一本MicrosoftSQLSever6.5。
SQL先容:
本书假定你是在SQL操纵MicrosoftSQLSever的数据库。你也能够用SQL操纵很多别的范例的数据库。SQL是操纵数据库的尺度语
言。(现实上,关于SQL言语有一个专门的ANSI尺度〕
注重:
不要在你的站点上试图用MicrosoftAccess取代MicrosoftSQLSever。SQLSever能够同时服务于很多用户,假如你但愿你的
站点有较高的会见率,MSAccess是不克不及胜任的。
在进修SQL的细节之前,你必要了解它的两年夜特性。一个特性简单把握,另外一个把握起来有点坚苦。
第一个特性是一切SQL数据库中的数据都存储在表中。一个表由行和列构成。比方,上面这个复杂的表包含name和e-mail
address:
NameEmailAddress
................................................................
BillGatesbillg@microsoft.com
presidentClintonpresident@whitehouse.com
StephenWaltherswalther@somewhere.com
这个表有两列(列也称为字段,域〕:Name和EmailAddress。有三行,每行包括一组数据。一行中的数据组合在一同称为一条
纪录。
不管什么时候你向表中增加新数据,你就增加了一条新纪录。一个数据表能够有几十个纪录,也能够有几千乃至几十亿个纪录。固然你
大概永久不必要存储十亿个Email地点,但晓得你能如许做老是好的,大概有一天你会有如许的必要。
你的数据库很有大概包括几十个表,一切存储在你数据库中的信息都被存储在这些表中。当你思索如何把信息存储在数据库中时,
你应当思索如何把它们存储在表中。
SQL的第二个特性有些难于把握。这类言语被计划为不同意你依照某种特定的按次来掏出纪录,由于如许做会下降SQLSever取纪录
的效力。利用SQL,你只能按查询前提来读取纪录。
当思索怎样从表中掏出纪录时,天然会想到按纪录的地位读取它们。比方,大概你会实验经由过程一个轮回,逐一纪录地扫描,来选出
特定的纪录。在利用SQL时,你必需练习本人,不要有这类思绪。
假设你想选出一切的名字是“BillGates”的纪录,假如利用传统的编程言语,你大概会机关一个轮回,逐一检察表中的纪录,看
名字域是不是是“BillGates”。
这类选择纪录的办法是可行的,可是效力不高。利用SQL,你只需说,“选择一切名字域即是BillGates的纪录”,SQL就会为你选
出一切切合前提的纪录。SQL会断定完成查询的最好办法。
建立你想掏出表中的前十个纪录。利用传统的编程言语,你能够做一个轮回,掏出前十个纪录后停止轮回。但利用尺度的SQL查询,
这是不成能完成的。从SQL的角度来讲,在一个表中不存在前十个纪录这类观点。
入手下手时,当你晓得你不克不及用SQL完成某些你感到应当能完成的功效,你会遭到波折。你大概会以头撞墙乃至想写狠毒的函件给SQL的
计划者们。但厥后你会熟悉到,SQL的这个特性不但不是个限定,反而是其优点。由于SQL不依据地位来读取纪录,它读取纪录能够
很快。
综上所述,SQL有两个特性:一切数据存储在表中,从SQL的角度来讲,表中的纪录没有按次。鄙人一节,你将学会如何用SQL从表
当选择特别的纪录。
利用SQL从表中取纪录。
SQL的次要功效之一是完成数据库查询。假如你熟习Internet引擎,那末你已熟习查询了。你利用查询来获得满意特定前提的信
息。比方,假如你想找到有ASP信息的全体站点,你能够毗连到Yahoo!并实行一个对ActiveSeverPages的搜刮。在你输出这个
查询后,你会收到一个列表,表中包含一切其形貌中包括搜刮表达式的站点。
多半Internet引擎同意逻辑查询。在逻辑查询中,你能够包含特别的运算符如AND、OR和NOT,你利用这些运算符来选择特定的记
录。比方,你能够用AND来限定查询了局。假如你实行一个对ActiveSeverPagesANDSQL的搜刮。你将失掉其形貌中同时包括
ActiveSeverPages和SQL的纪录。当你必要限定查询了局时,你可使用AND。
假如你必要扩大查询的了局,你可使用逻辑操纵符OR。比方,假如你实行一个搜刮,搜刮一切的其形貌中包括ActiveSever
PagesORSQL的站点,你收到的列表中将包含一切其形貌中同时包括两个表达式或个中任何一个表达式的站点。
假如你想从搜刮了局中扫除特定的站点,你可使用NOT。比方,查询“ActiveSeverPages”ANDNOT“SQL”将前往一个列
表,列表中的站点包括ActiveSeverPages,但不包括SQL。当必需扫除特定的纪录时,你可使用NOT。
用SQL实行的查询与用Internet搜刮引擎实行的搜刮十分类似。当你实行一个SQL查询时,经由过程利用包含逻辑运算符的查询前提,
你能够失掉一个纪录列表。此时查询了局是来自一个或多个表。
SQL查询的句法十分复杂。假定有一个名为email_table的表,包括名字和地点两个字段,要失掉BillGates的e_mail地点,你
可使用上面的查询:
SELECTemailfromemail_tableWHEREname="BillGates"
当这个查询实行时,就从名为email_table的表中读取BillGates的e_mail地点。这个复杂的语句包含三部分:
■SELECT语句的第一部分指名要拔取的列。在此例中,只要email列被拔取。当实行时,只显现email列的值
billg@microsoft.com。
■SELECTT语句的第二部分指明要从哪一个(些)表中查询数据。在此例中,要查询的表名为email_table。
■最初,SELECT语句的WHERE子句指明要选择满意甚么前提的纪录。在此例中,查询前提为只要name列的值为BillGates的纪录
才被拔取。
BillGates很有大概具有不止一个email地点。假如表中包括BillGates的多个email地点。用上述的SELECT语句能够读取他一切
的email地点。SELECT语句从表中掏出一切name字段值为BillGates的纪录的email字段的值。
后面说过,查询能够在查询前提中包括逻辑运算符。假设你想读取BillGates或Clinton总统的一切email地点,你可使用上面
的查询语句:
SELECTemailFROMemail_tableWHEREname="BillGates"OR
name="presidentClinton"
此例中的查询前提比前一个庞大了一点。这个语句从表email_table当选出一切name列为BillGates或presidentClinton的纪录。假如表中含有BillGates或presidentClinton的多个地点,一切的地点都被读取。
SELECT语句的布局看起来很直不雅。假如你请一个伴侣从一个表中为你选择一组纪录,你大概以十分类似的体例提出你的请求。在SQLSELECT语句中,你“SELECT特定的列FROM一个表WHERE某些列满意一个特定的前提”。
下一节将先容如何实行SQL查询来拔取纪录。这将匡助你熟习用SELECT语句从表中取数据的各类分歧办法。
珍贵的资金可以用于其他业务的启动,诸如市场、广告或调研和开发等。 比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。 连做梦都在想页面结构是怎么样的,绝非虚言 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。 比如日志传送、比如集群。。。 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 发几份SQL课件,以飨阅者 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
页:
[1]