- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 数据查询;7.1 查询语句;;7.1.1 ?SELECT语句的语法结构;;;7.1.2 ?SELECT各子句的顺序及功能;7.1.3 ?SELECT语句各子句的执行;7.2 简单查询;1.查询指定列数据表中有很多列,通常情况下并不需要查看全部的列,因为不同的用户所关注的内容不同。【例7-1】查询所有同学学号、姓名和成绩信息。SELECT stu_id, name, grade FROM stu_info在指定列查询中,列的显示顺序由SELECT子句指定,与数据在表中的存储顺序无关;同时,在查询多列时,用“,”将各字段隔开。;;【例7-2】查询所有同学的所有信息。SELECT *FROM stu_info使用“*”通配符时要慎重,在不需要查询所有列时,尽量采用前面介绍的指定列查询,以免占用过多的资源。;3.使用运算列在数据查询时,经常需要对表中的列进行计算,才能获得所需要的结果。在SELECT子句中可以使用各种运算符和函数对指定列进行运算。;;4.改变列标题显示通常,在查询结果中显示的列标题就是创建表时所使用的列名,但是,这在实际使用中往往会带来一些不便,如在上例中,普通用户不知道运算列所代表的含义。因此,可以利用’列标题’=列名 或 列名 AS ’列标题’ 来根据需要修改列标题的显示。;;;;;;;;【例7-8】查询所有的男同学学号、姓名、生日和性别信息。SELECT stu_id, name, birthday, sexFROM stu_infoWHERE sex=’男’【例7-9】查询所有总分大于550分的同学学号、姓名、生日和性别信息。SELECT stu_id, name, birthday, sexFROM stu_infoWHERE mark 550;2.使用逻辑比较表达式在WHERE子句中,可以使用多个搜索条件选择记录(行),即通过逻辑运算符(NOT、AND或OR)将多个单独的搜索条件结合在一个WHERE子句中,形成一个复合的搜索条件。当对复合搜索条件求值时,DBMS对每个单独的搜索条件求值,然后执行布尔运算来决定整个WHERE子句的值是TRUE还是FALSE。只有那些满足整个WHERE子句的值是TRUE的记录才出现在结果表中。;在查询中,各种逻辑运算符可以组合使用,即AND、OR、NOT运算符可以同时使用,但是需要注意运算的优先级的问题。这3种逻辑运算符中,NOT运算符的优先级最高,而后是AND,最后是OR。【例7-12】查询所有信息学院和会计学院并且总分大于550分的同学信息。SELECT * FROM stu_info WHERE ( sdept=信息学院 OR sdept=会计学院 )AND mark 550;;4.限定数据范围在WHERE子句中,使用BETWEEN关键字可以方便地限制查询数据的范围。当然,还可以使用NOT BETWEEN关键字查询限定数据范围之外的记录。使用BETWEEN限制查询数据范围时同时包括了边界值,而使用NOT BETWEEN进行查询时没有包括边界值。;;;6.模糊查询在实际的应用中,用户不会总是能够给出精确的查询条件。因此,经常需要根据一些并不确切的线索来搜索信息。SQL Server提供了LIKE子句来进行这类模糊搜索。LIKE子句在大多数情况下会与通配符配合使用。SQL Server提供了4种通配符供用户灵活实现复杂的模糊查询条件。;1)通配符%通配符%表示任意字符的匹配,而且不计字符的多少,甚至可以为NULL。如:“计算机%”表示匹配以字符串“计算机”开头的任意字符串。【例7-16】查询所有姓“张”的同学信息。SELECT *FROM stu_infoWHERE name LIKE ‘张%’另外,“%”通配符还经常用在NOT LIKE语句中实现排除查询。;2)通配符_与通配符“%”不同,通配符“_”只能匹配任何单个字符。比如,“_oom”表示将查找以“oom”结尾的所有4个字母的字符串(“Room”、“doom”、“3oom”等)。【例7-17】查询所有姓“张”,而且姓名是两个字的同学信息。SELECT *FROM stu_infoWHERE name LIKE ‘张_’;3)通配符[]通配符“[]”用于指定范围(如[a-z])或集合(如[abcdef])中的任何单个字符。只要满足这些字符其中之一,且位置出现在“[]”通配符位置的字符串就满足查询条件。【例7-18】查询所有姓“张”或者姓“王”的同学信息。SELECT *FROM stu_infoWHERE name LIKE ‘[张王]%’;4)通配符[^]与通配符“[]”相反,
文档评论(0)