马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。数据操纵字段
一般,当你从一个表中掏出字段值时,该值与创立该表时所界说的字段名接洽在一同。假如你从表authors当选择一切的作者名字,一切的值将会与字段名au_lname相接洽。可是在某些情形下,你必要对字段名举行操纵。在SELECT语句中,你能够在缺省字段名前面仅跟一个新名字来代替它。比方,能够用一个更直不雅易读的名字AuthorLastName来取代字段名au_lname:
SELECTau_lname"AuthorLastName"FROMauthors
当这个SELECT语句实行时,来自字段au_lname的值会与“AuthorLastName”相接洽。查询了局多是如许:
AuthorLastName
……………………………………………………………………..
White
Green
Carson
O’Leary
Straight
…
(23row(s)affected)
注重字段题目不再是au_lname,而是被AuthorLastName所代替。
你也能够经由过程实行运算,来操纵从一个表前往的字段值。比方,假如你想把表titles中的一切书的代价更加,你可使用上面的
SELECT语句:
SELECTprice*2FROMtitles
当这个查询实行时,每本书的代价从表中掏出时城市更加。可是,经由过程这类路子操纵字段不会改动存储在表中的书价。对字段的运
算只会影响SELECT语句的输入,而不会影响表中的数据。为了同时显现书的原始代价和跌价后的新代价,你可使用上面的查询:
SELECTprice"Originalprice",price*2"Newprice"FROMtitles
当数据从表titles中掏出时,原始代价显现在题目Originalprice上面,更加后的代价显现在题目Newprice上面。了局多是这
样:
originalpricenewprice
……………………………………………………………….
39.98
11.9523.90
5.98
39.98
…
(18row(s)affected)
你可使用年夜多半尺度的数学运算符来操纵字段值,如加(+),减(-),乘(*)和除(/)。你也能够一次对多个字段举行运
算,比方:
SELECTprice*ytd_sales"totalrevenue"FROMtitles
在这个例子中,经由过程把代价与发卖量相乘,盘算出了每种书的总发卖额。这个SELECT语句的了局将是如许的:
totalrevenue
……………………………………………..
81,859,05
46,318,20
55,978,78
81,859,05
40,619,68
…
(18row(s)affected)
最初,你还可使用毗连运算符(它看起来像个加号)来毗连两个字符型字段:
SELECTau_fname+""+au_lname"authorname"FROMauthors
在这个例子中,你把字段au_fname和字段au_lname粘贴在一同,两头用一个逗号离隔,并把查询了局的题目指定为author
name。这个语句的实行了局将是如许的:
authornames
…………………………………………………………
JohnsonWhite
MarjorieGreen
CherylCarson
MichaelO’Leary
DeanStraight
…
(23row(s)affected)
能够看到,SQL为你供应了对查询了局的很多把持。你应当在ASP编程过程当中充实使用这些长处。利用SQL来操纵查询了局几近老是
比利用有一样感化的剧本效力更高。
排序查询了局
本章的先容中曾夸大过,SQL表没有内涵的按次。比方,从一个表中取第二个纪录是没成心义的。从SQL的角度看来,没有一个纪录
在任何其他纪录之前。
但是,你能够利用一个SQL查询了局的按次。在缺省情形下,当纪录从表中掏出时,纪录不以特定的按次呈现。比方,当从表
authors中掏出字段au_lname时,查询了局显现成如许:
au_lname
…………………………………….
White
Green
Carson
O’Leary
Straight
…
(23row(s)affected)
看一列没有特定按次的名字是很不便利的。假如把这些名字按字母按次分列,读起来就会简单很多。经由过程利用ORDERBY子句,你可
以强迫一个查询了局按升序分列,就像如许:
SELECTau_lnameFROMauthorsORDERBYau_lname
当这个SELECT语句实行时,作者名字的显现将按字母按次分列。ORDERBY子句将作者名字按升序分列。
你也能够同时对多个列利用ORDERBY子句。比方,假如你想同时按升序显现字段au_lname和字段au_fname,你必要对两个字段都
举行排序:
SELECTau_lname,au_fnameFROMauthorsORDERBYau_lname,au_fname
这个查询起首把了局按au_lname字段举行排序,然后按字段au_fname排序。纪录将按以下的按次掏出:
au_lnameau_fname
…………………………………………………………………….
BennetAbraham
RingerAlbert
RingerAnne
SmithMeander
…
(23row(s)affected)
注重有两个作者有不异的名字Ringer。名为AlbertRinger的作者呈现名为AnneRinger的作者之前,这是由于姓Albert按字母顺
序应排在姓Anne之前。
假如你想把查询了局按相反的按次分列,你可使用关头字DESC。关头字DESC把查询了局按降序分列,以下例所示:
SELECTau_lname,au_fnameFROMauthors
WHEREau_lname=”Ringer”ORDERBYau_lname,au_fnameDESC
这个查询从表authors中掏出一切名字为Ringer的作者纪录。ORDERBY子句依据作者的名字和姓,将查询了局按降序分列。了局是
如许的:
au_lnameau_fname
……………………………………………………………………………………….
RingerAnne
RingerAlbert
(2row(s)affectec)
注重在这个表中,姓Anne呈现在姓Albert之前。作者名字按降序显现。
你也能够按数值型字段对一个查询了局举行排序。比方,假如你想按降序掏出一切书的代价,你可使用以下的SQL查询:
SELECTpriceFROMtitlesORDERBYpriceDESC
这个SELECT语句从表中掏出一切书的代价,显现了局时,代价低的书先显现,代价高的书后显现。
告诫:
不是出格必要时,不要对查询了局举行排序,由于服务器完成这项事情要费些力量。这意味着带有ORDERBY子句的SELECT语句执
行起来比一样平常的SELECT语句花的工夫长。
掏出互不不异的纪录
一个表有大概在统一列中有反复的值。比方,数据库pubs的表authors中有两个作者的名字是Ringer。假如你从这个表中掏出一切
的名字,名字Ringer将会显现两次。
在特定情形下,你大概只要乐趣从一个表中掏出互不不异的值。假如一个字段有反复的值,你大概但愿每一个值只被拔取一次,你可
以利用关头字DISTINCT来做到这一点:
SELCETDISTINCTau_lnameFROMauthorsWHEREau_lname="Ringer"
当这个SELECT语句实行时,只前往一个纪录。经由过程在SELECT语句中包括关头字DISTINCT,你能够删除一切反复的值。比方,假定
有一个关于旧事组信息公布的表,你想掏出一切曾在这个旧事组中公布信息的人的名字,那末你可使用关头字DISTINCT。每一个用
户的名字只取一次――只管有的用户公布了不止一篇信息。
告诫:
好像ORDERBY子句一样,强迫服务器前往互不不异的值也会增添运转开支。福分不能不消费一些工夫来完成这项事情。因而,不是
必需的时分不要利用关头字DISTINCT。
创立新表
后面说过,数据库中的一切数据存储在表中。数据表包含行和列。列决意了表中数据的范例。行包括了实践的数据。
比方,数据库pubs中的表authors有九个字段。个中的一个字段名为为au_lname,这个字段被用来存储作者的名字信息。每次向这个表中增加新作者时,作者名字就被增加到这个字段,发生一条新纪录。
经由过程界说字段,你能够创立一个新表。每一个字段有一个名字和一个特定的数据范例(数据范例在前面的“字段范例”一节中报告),比方字段au_lname存储的是字符型数据。一个字段也能够存储别的范例的数据。
利用SQLSever,创立一个新表的办法是良多的。你能够可实行一个SQL语句或利用SQL事件办理器(SQLEnterpriseManager)来创立一个新表。鄙人一节里,你将学会怎样用SQL语句来创立一个新表。
应用程序需要使用数据库,数据库本身需要设计、开发和部署。还有MySQL学习教程,客户怎样实施混合系统,或者需要帮助管理多个云服务? |