爱飞 发表于 2015-1-16 22:28:54

MSSQL网页编程之进修 SQL 文档

支持多线程,充分利用CPU资源数据库:SQLSever2000
注重:
假如你将SQLSever设置为利用完全平安或夹杂平安,那末你可使用可托毗连。假如你利用尺度平安,你则必要供应用户帐号和暗码。
库名:pubs(包括一个假造的出书商利用的各个表;安装好就有的,本文例子就用此表解说)
调试工具:SQL查询剖析器(同意实行交互的SQL查询,在把查询语句写历程序之行进行测试长短常有效的。)
选库:在查询窗口顶部的DB下拉框当选择数据库pubs,如许你就选择了数据库。
1例子
1.1纪录查询(附:有编号)
1.1.1复杂SELECT查询语句
1.1.1.1形貌:
SELECT字段1,字段2,……FROM表
1.1.1.2SQL语句:
"SELECTau_lname,phoneFROMauthors
"SELECT*FROMauthorsWHEREau_lname=Ringer
1.1.1.3了局:
1.1.1.4注重:
1.1.2操纵多个表
1.1.2.1形貌:
1.1.2.2Sql语句
"SELECTau_lname,titleFROMauthors,titles
"SELECTtitle,pub_nameFROMtitles,publishersWHEREtitles.pub_id=publishers.pub_id
1.1.2.3了局:
1.1.2.4注重:
1.1.3操纵字段
1.1.3.1形貌:
1.1.3.2Sql语句
"SELECTphoneas德律风号码FROMauthorsWHEREau_lname=Ringer
"SELECTphone德律风号码FROMauthorsWHEREau_lname=Ringer
"SELECTprice*2FROMtitles
"SELECTprice"Originalprice",price*2"Newprice"FROMtitles
1.1.3.3了局:
1.1.3.4注重:
你可使用年夜多半尺度的数学运算符来操纵字段值,如加(+),减(-),乘(*)和除(/)。
你也能够一次对多个字段举行运算.
1.1.4排序查询了局
1.1.4.1形貌:
1.1.4.2Sql语句
"SELECTau_lnameFROMauthorsORDERBYau_lname
"SELECTau_lname,au_fnameFROMauthorsORDERBYau_lname,au_fname
"SELECTau_lname,au_fnameFROMauthorsORDERBYau_lname,au_fnameDESC
1.1.4.3了局:
1.1.4.4注重:
告诫:
不是出格必要时,不要对查询了局举行排序,由于服务器完成这项事情要费些力量。这意味着带有ORDERBY子句的SELECT语句实行起来比一样平常的SELECT语句花的工夫长。
1.1.5掏出互不不异的纪录
1.1.5.1形貌:
1.1.5.2Sql语句
"SELECTDISTINCTau_lnameFROMauthorsWHEREau_lname=Ringer
1.1.5.3了局:
1.1.5.4注重:
告诫:
好像ORDERBY子句一样,强迫服务器前往互不不异的值也会增添运转开支。福分不能不消费一些工夫来完成这项事情。因而,不是必需的时分不要利用关头字DISTINCT。
1.1.6汇合函数
1.1.6.1形貌:
?能够统计纪录数量,均匀值,最小值,最年夜值,大概乞降。
1.1.6.2Sql语句
"SELECTAVG(lowqty)the_averageFROMdiscounts
"SELECTCOUNT(au_lname)FROMauthorsWHEREau_lname=Ringer
"SELECTCOUNT(DISTINCTau_lname)FROMauthorsWHEREau_lname=Ringer
"SELECTCOUNT(*)FROMauthorsWHEREau_lname=Ringer
"SELECTSUM(min_lvl)FROMjobs
"SELECTMAX(min_lvl)FROMjobs
"SELECTMIN(min_lvl)FROMjobs
1.1.6.3了局:
1.1.6.4注重:
1.1.7经由过程婚配来掏出数据
1.1.7.1形貌:
?百分号是通配符的例子之一。它代表0个或多个字符。
?中括号([])用来婚配处在指定局限内的单个字符。
?%任何一个其名字以这些字符中的任一个开首纪录都将被前往。
?脱字符(^)来扫除特定的字符。
?经由过程利用下划线字符(_),你能够婚配任何单个字符。
1.1.7.2Sql语句
"SELECTroyaltyFROMtitlesWHEREroyalty>=10ANDroyalty<=12
"SELECTroyaltyFROMtitlesWHEREroyaltyBETWEEN10AND12
"SELECTroyaltyFROMtitlesWHEREroyaltyNOTBETWEEN10AND12
"SELECTroyaltyFROMtitlesWHEREroyalty=10ORroyalty=12
"SELECTroyaltyFROMtitlesWHEREroyaltyIN(10,12)
"SELECTtypeFROMtitlesWHEREtypeLIKE%popular_comp%
"SELECTtypeFROMtitlesWHEREtypeLIKE%
"SELECTtypeFROMtitlesWHEREtypeLIKE%
"SELECTtypeFROMtitlesWHEREtypeLIKE%
"SELECTtypeFROMtitlesWHEREtypeLIKE[^(a-fmt)]%
1.1.7.3了局:
1.1.7.4注重:
注重:
假如你想婚配百分号或下划线字符自己,你必要把它们括在方括号中。假如你想婚配连字符(-),应把它指定为方括号中的第一个字符。假如你想婚配方括号,应把它们也括在方括号中。比方,上面的语句前往一切其形貌中包括百分号的站点:
1.1.8转换数据
1.1.8.1形貌:
?SQLSever把年夜部分数值从一品种型转换为另外一品种型。比方,要对照SMALLINT型和INT型数据的巨细,你不必要举行显式的范例转换。SQLSever会为你完成这项事情。
?当想在字符型数据和别的范例的数据之间举行转换时,必要本人举行转换操纵。
?函数CONVERT()
1.1.8.2Sql语句
"SELECTCONVERT(CHAR(8),price)+$as钱FROMtitles
1.1.8.3了局:
1.1.8.4注重:
函数CONVERT()带有两个变量。第一个变量指定了数据范例和长度。第二个变量指定了要举行转换的字段。
Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。

不帅 发表于 2015-1-17 21:39:28

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学工具肯定是有好处的..

谁可相欹 发表于 2015-1-21 08:48:38

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

飘飘悠悠 发表于 2015-1-30 12:49:56

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

精灵巫婆 发表于 2015-2-6 11:54:04

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

蒙在股里 发表于 2015-2-16 02:52:01

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

再现理想 发表于 2015-3-4 23:13:02

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

海妖 发表于 2015-3-11 21:19:59

如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。

只想知道 发表于 2015-3-19 13:46:27

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

小妖女 发表于 2015-3-28 07:29:18

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
页: [1]
查看完整版本: MSSQL网页编程之进修 SQL 文档