- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用好SQL Server命令必需的“三熟”
发布时间:2010.04.26 09:24 ???? 来源:赛迪网???? 作者:赵玉勇
【赛迪网-IT技术报道】SQL Server使用过程中,最难应用的是命令,虽然命令不多,但命令格式多种多样,真要用好一条命令有效地解决一个问题确并不容易,只要做到下面的“三熟”,任何数据库处理任务其实都显得不那么难了。何谓三熟呢?下面通过一个数据库的实例来说明一下什么是三熟。
一熟:熟悉表及其要素
所谓一熟,指熟悉要操作的数据库及其表。所谓知己知彼,百战不殆,同样,在练习数据库命令时要熟悉自己要操作的对象,即各种表,这个表的名字,表的各列及列的名字,列对应的数据类型,只有将这些内容都熟悉了,才可能保证后面用到命令时与真实的情况对应,使抽象的命令变得动态生动起来。
示例表格共有三张,共同组成学生成绩数据库couser,三张表分别是Student学生表、S_Course选课表和Course课程表,这三张表的表结构分别见表1-1、表1-2和表1-3。
对于上面的三张表,以第一张为例,首先要弄明白其名称,也就是在数据库查询命令中要查的名称是student,这是在命令中很重要的一个选项,只有找到表名,才可能谈后面对表的操作,在命名上,要分清中文英文。另外,它由七列组成,每一列有不同的数据类型,这些也是后面对它查询等动做操作时必须注意的,还有一点值得注意,在这张表的列中,其名称我们用的是汉字,这在命令中要找第一列时,只要找到“学号”就可以了。
例如:查询计算机系的女生的学号与姓名。
要做这个查询动做,首先需要熟悉这张表的名字是student;另外,还需要弄明白其最后组成表的列数及其名称,即2列,也即学号与姓名;还有最后一点,如何表达女生,这还需进一步理解这个表的“性别”列,因为男为1,女则用0表示,所以女生自然而然的就有了,即:性别=0。查询命令也就有了:
Select 学号,姓名
From student
Where 性别=0
上面的命令非常简单,因为只涉及一张表与一个简单的条件,但多张表的熟悉也是在一张表基础之上的,所以用好SQL Server的命令,首先一点是熟悉表,对各张表的要素烂熟于胸,这是对它们操作的基础,也是用好命令的基础。
二熟:熟悉任务要求
只对表与其要素熟悉还不够,还要进一步明确相应处理任务或问题的要求,只有对要求熟悉,才能有的放矢。首要问题找到一个主要表,也就是包含最终要输出的列的表,但往往一张表在有些问题处理中不够,把握如下原则:如果一表可解决那最好,如果一表不能够解决,还要通过表间相同的列找到辅助表,这些要求有的在任务中明确提出了,有的则是暗含在条件中。在熟悉上面表的过程中,还要将要求一个个理顺,保证在命令中将各个项目灵活地运用上。
示例:将计算机系,全体学生的成绩设置为60分。
此例中,首先要明确要操作的主要表一定是和“成绩”相关的,三个表中只有选课表s_course中有“成绩”一项,所以这个表就是主表,主要的任务就在这里面,但这样只将原题中的一个要求去除了,还有计算机系如何表达的问题,因为主表即s_course中压根就没有系的问题,所以只能再找到一个辅助表,即学生表student,这里面有“所在系”,如何将“所在系”同“成绩”建立联系,也即两个表之间的联系,在两个表中都有的列是“学号”,所以“学号”就是突破口。现在,任务中的所有要求都理顺了,现在只要在命令中将上面的要求都体现出来就可以了,命令如下:
update s_course
set 成绩=60
where 学号 in
( select 学号
from student
where 所在系=计算机)
当然,除了涉及两个表,有时可能会更多,也就是涉及多个表,例如下面的示例。
示例: 查询“陈晨”所选修的全部课程名称。
这个任务中,最终选择的是“课程名称”,所以主表是course,但course中是没有学生姓名的,所以没法查学生陈晨,怎么办呢,只有找有“姓名”的,即student,但这个表却不能直接与course建立联系,所以第二步首先需要一个中转的表s_course来完成信息的中转,使任务中最终找到姓名一项,这里只有通过“课程号”来建立s_course与course联系,最通过s_course与student中共有的学号建立联系,通过这两次中转,终于可以完成这项“伟大”的任务了。命令如下:
select 课程名称
from course
where 课程号in
( select 课程号
from s_course
where 学号in
(select 学号
from student
where 姓名=陈晨)
)
三熟:熟悉命令格式
最后还有一项必须熟悉,
您可能关注的文档
- 031第八讲_组态王与数据库连接.doc
- 32套全部答案整理英语B.doc
- 44(基于MSCOMM控件的Modem通信的实现).doc
- 51CTO下载-2004年下半年数据库系统工程师试卷(含答案).doc
- SQL SERVER 2008 R2升级R2 SP1或者SQL SERVER 2008从10.50.1600升级10.5.2500详细过程全程图解.doc
- SQL Server 2008 安装过程中遇到性能计数器解决方法.doc
- SQL Server 2008新建登录名的方法步骤.doc
- 光学4-3(基础物理课堂讲稿下第二十一讲).ppt
- 广东工业大学单片机第4章.汇编语言程序设计知识[new].ppt
- 数字化图书馆解决方案初学者.doc
文档评论(0)