1 / 315

4.1 一般查询 4.2 高级查询 4.3 视  图

第四章 数据库查询. 4.1 一般查询 4.2 高级查询 4.3 视  图. 4.1 一般查询. 一、 SELECT 语句基本格式. (一)语法元素 1、变量   变量对于一种语言来说是必不可少的组成部分。 SQL Server 中变量有两种形式,一种是用户自己定义的局部变量,用于保存单个数据值及运算的中间结果 ;. 另一种是系统提供的全局变量,用于记录 SQL Server 服务器的活动状态。 2、运算符 与其他高级语言一样, T-SQL 语法中也提供了不同类型的运算.

ralph
Download Presentation

4.1 一般查询 4.2 高级查询 4.3 视  图

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 数据库查询 4.1一般查询 4.2高级查询 4.3视  图

  2. 4.1一般查询 一、SELECT语句基本格式 (一)语法元素 1、变量   变量对于一种语言来说是必不可少的组成部分。SQL Server中变量有两种形式,一种是用户自己定义的局部变量,用于保存单个数据值及运算的中间结果;

  3. 另一种是系统提供的全局变量,用于记录SQL Server服务器的活动状态。 2、运算符 与其他高级语言一样,T-SQL语法中也提供了不同类型的运算

  4. 符,分别是算术运算符、比较运算符、字符连接运算符和逻辑运算符,这些运算符的使用与一般高级语言是一致的。但SQL 作为结构化查询语言,其逻辑运算符更为丰富,可以满足复杂的查询要求,提高查询的效率。表4-1列

  5. 出的T-SQL语法中运算符和优先级,当对多个运算符组成的表达式进行运算时,要注意运算符的优先级。 表4-1 T-SQL运算符及优先级

  6. 3、函数 T-SQL语法中也提供了许多 种类的函数(如统计函数、时间 日期函数、字符串函数等),用 以返回相应的信息,实现特定功 能。常用的统计函数有AVG、 SUM、COUNT、MAX、MIN等,

  7. 常用的时间日期函数有 GETDATE、YEAR、MONTH、 DAY等,常用的字符串函数有 SUBSTRING、LEN等。在查询语句的表达式中,函数经常用于设定输出数据或查询条件的表达式中。关于函数的说明和使用详见第6章。

  8. (二)指定当前数据库 当前数据库即活动数据库。通常服务器上有多个数据库,但只有一个数据库是活动的,可以进行数据操作。当用户登陆SQL Server ,系统即指定了一个默认数据库为当前数据库,通常

  9. 是master数据库,master数据库 是系统数据库,存储系统表数 据。用户要改变当前数据库使用 USE语句。USE语句的格式为: USE database_name 如要使用traffic数据库,命令为 USE traffic。

  10. 指定了当前数据库后,若不对数 据库对象加以限定,其后的数据 操作命令均是针对当前数据库中 的表或视图等进行的,直到重新 指定当前数据库。所以在进行查 询之前,用户需要指定当前数据 库。

  11. (三)SELECT语句的基本格式SELECT语句很复杂,一般查询(三)SELECT语句的基本格式SELECT语句很复杂,一般查询 时使用SELECT语句主要的子句, 基本格式为: SELECT select_list /*指定要选择的列或行及其限定*/ FROM table_source/*指定数据

  12. 来源的表或视图*/ [WHERE search_condition] /*指定查询条件*/ [ORDER BY order_expression[ASC | DESC]] /*指定查询结果排序方式*/ 参数说明如下:

  13. select_list为输出行或列的限定, 可表述为: select_list ::= [ALL | DISTINCT][TOP n [PERCENT][WITH TIES]]<col_list> FROM子句指定数据的来源之处

  14. 可以是表或视图。 WHERE子句指定查询条件。 ORDER BY子句指定输出数据的 排序顺序。 SELECT语句的基本功能就是从 指定的表中筛选出满足条件的行,将其指定的列按规定格式输

  15. 出。若没有特别指定某个数据库,SELECT语句是对系统当前正使用着的数据库进行操作。输出列可以通过基本格式中的col_list项来设定,此时SELECT子句格式为:出。若没有特别指定某个数据库,SELECT语句是对系统当前正使用着的数据库进行操作。输出列可以通过基本格式中的col_list项来设定,此时SELECT子句格式为: SELECT col_list 其中

  16. col_list ::= { * /*选择当前表或视图的所有列*/ | {table_name |view_name |table_alias}.* /*选择指定表或视图的所有列*/ | {column_name | expression | IDENTITYCOL | ROWGUIDCOL}

  17. [[AS] column_alias] /*选择指定的列*/ | column_alias=expression /*选择指定列并更改列标题*/ }[,…n]

  18. 二、输出列的设定 (一)显示部分列或全部列   若只要原样输出表中部分列 或全部列的值,SELECT语句可取 为最简单的形式: SELECT column_name[,…n]

  19. FROM table_name 显示部分列时,各列名之间用逗 号隔开,显示全部列时,可以省 去全部列名而用*表示。 〖例4-1〗查询traffic数据库的jsy 表中各驾驶员的驾照号、姓名和 所学专业。

  20. USE traffic SELECT驾照号,姓名,所学专 业 FROM jsy 执行结果如图4.1。

  21. 〖例4-2〗查询车辆表cl中所有数 据。 SELECT * FROM cl 执行结果如图4.2。

  22. (二)更换列名 前两例查询出的数据结果在 标题行直接显示列的名称,实际 上在执行查询时,你可以自定义 显示每一列标题行的名称,以便 查询结果更易于理解,尤其当表 定义的列名原为英文简写或缩写

  23. 时,以它作为查询结果的列标题,对用户而言,不易理解其数据含义。若查询时将其改为中文列标题名,会使查询结果的数据更清晰明了。时,以它作为查询结果的列标题,对用户而言,不易理解其数据含义。若查询时将其改为中文列标题名,会使查询结果的数据更清晰明了。 〖例4-3〗查询车辆表cl中每辆车 的里程表数字。

  24. SELECT 车牌号,类别,累计里 程AS ‘里程表数’ FROM cl 执行结果如图4.3。

  25. 〖例4-4〗查询jsy表中的部分列, 用英文表示列标题。 SELECT 驾照号 number, 姓名 name, 积分 mark FROM jsy 执行结果如图4.4。

  26. (三)输出列的计算值 查询数据时,经常需要得到 数据计算结果,如果数据量大, 人工计算是一件很费力的事, SELECT语句提供了查询时进行 数据计算的功能,即可以使用运算表达式作为查询结果。

  27. 〖例4-5〗查询cl 表中维修费用八折后的现价数据。〖例4-5〗查询cl 表中维修费用八折后的现价数据。 SELECT 车牌号,类别,’实际维修费’=维修费用*0.8 FROM cl 执行结果如图4.5。

  28. 三、输出行数的限制   输出行数的限制可以通过SELECT子句中的选项来设定,限制行数的SELECT子句格式如下: SELECT[ALL | DISTINCT][TOP n [PERCENT]]<col_list>

  29. 其中,ALL关键字指定保留结果集 中的所有行。 DISTINCT关键字指定消除重复的 行,只返回非重复的行。 TOP n返回结果集前n行,n是一个 正整数。当SELECT语句返回的结 果集的行数非常多时,可以使

  30. 用TOP n 选项限制其返回的行数 TOP n PERCENT为返回结果集 的前n%行。 〖例4-6〗查询车辆表cl中车的类 别。 SELECT 类别 FROM cl 执行结果如图4.6。

  31. 〖例4-7〗查询cl表中所有的车辆 类别名称,消除重复行。 SELECT DISTINCT 类别 AS ‘现有类别’ FROM cl 执行结果如图4.7。

  32. 〖例4-8〗查询行车表xc中每位调 度员曾调度过的车辆。 SELECT DISTINCT 调度号, 车牌号 FROM xc 执行结果如图4.8。

  33. 〖例4-9〗查询jsy 表中前5行数 据。 SELECT TOP 5驾照号,姓名, 所学专业 FROM jsy 执行结果如图4.9。

  34. 〖例4-10〗查询jsy 表中前5%行数据。 SELECT TOP 5 PERCENT驾照 号,姓名,所学专业 FROM jsy 执行结果如图4.10。

  35.   两条查询语句或多条查询语 句可以用GO命令联合起来同时执 行,以便观察和比较各个查询结 果。GO为批处理命令,指示系统 执行自上一次GO后所有的语句, 如果前面没有GO,则从开始处执 行所有语句。

  36. 四、筛选行的条件   使用WHERE子句可以从表格 的行集中过滤出符合条件的行, 使用格式为: SELECT select_list FROM table_name

  37. WHERE <search_condition> 其中search_condition为查询条 件。 WHERE子句中的搜索条件表达式 包括比较运算表达式、逻辑运算 表达式以及其他判断条件表达式

  38. 多个判定条件或搜索条件可以用 逻辑运算符AND和OR连接,逻辑 运算符AND、OR和NOT分别用 于: AND-连接多个搜索条件,表示 所有的搜索条件都成立。 OR-连接多个搜索条件,表示至

  39. 少一个搜索条件成立。 NOT-表示对逻辑表达式的否 定。 使用时WHERE子句必须紧跟在 FROM子句后面。 (一)比较运算符 比较运算用于比较两个表达式的

More Related