8.2.4 多表连接查询
图8.10 通过查询基本表检查记录是否插入成功
(2)通过视图V_stu修改学生基本信息
将学生黄凰的电话号码修改成“10090070777”,T-SQL语句如下:
UPDATE v_stu
SET tel=′10090070777′
WHERE sn=′黄凰′
GO
(3)通过视图V_stu删除学生基本信息
将黄凰同学的记录删除,T-SQL语句如下:
DELETE FROM v_stu WHERE sn=′黄凰′
GO
8.2 相关知识
数据查询是数据库最基本的应用,SQL(Structure Querry Language结构化查询语言)是所有关系数据库都支持的标准语言。Transaction-SQL(简称为T-SQL)是微软公司所推出的一个SQL扩展集。
SQL的功能极为强大,主要包括数据定义、数据操作、数据查询和数据控制等4项数据库必备的基本功能。本节主要介绍和学习SQL数据查询语句的基本知识。
8.2.1 数据查询语句———SELECT语句的基本格式
SQL语言提供的查询语句SELECT可从数据表中检索出符合用户需要的数据,并以表格的形式返回结果。SELECT语句可完成对单一数据表的查询,也可从多张数据表中进行关联查询,可对查询结果进行统计、排序或合并等。
完整的SELECT语句语法较为复杂,其主要子句可归纳如下:
SELECT[TOP|ALL|DISTINCT]<列名1>[,<列名2>]爥
[INTO<新表名>]
[FROM<基本表表名或视图名>[,<基本表表名或视图名>]爥
[WHERE<查询条件>]
[GROUP BY<分组字段>]
[HAVING<分组检索条件>]
[ORDER BY<排序列名>[ASC|DESC]]
[COMPUTE[BY<汇总列名>]]
格式说明:
SELECT:SELECT子句用于指明要返回的列。它实现对关系的投影运算,是查询语句的主要关键字(保留字)。其中的<TOP n>,ALL和DISTINCT是3个选项,<TOP n>表示仅显示查询结果集中最前面的n行,ALL表示返回所有记录(默认选项,即ALL可以不写),DIS-TINCT表示不返回重复的记录。<列名>是返回结果中包含的列,可以是表中的字段也可以是计算的结果,如果不止一列则各个列名之间用逗号分隔。
INTO:INTO子句指明将查询结果插入一个新的数据表中,<新表名>就是该新表的名称。
FROM:FROM子句指明查询的数据源,它们可以是基本表也可以是视图。如果是多个数据源则每两个数据源之间用逗号分隔。从多个数据源查询是对关系的连接运算。
WHERE:WHERE子句用于描述查询的条件。它实现对关系的选择运算。
GROUPBY:GROUPBY子句用于实现按<分组字段>的值分组查询。<分组字段>可以是一个字段也可以是多个字段,各字段名之间用逗号分隔。
HAVING:HAVING子句指明对分组查询结果按<分组检索条件>检索出符合条件的分组。
ORDER BY:ORDER BY子句表示要求对查询结果进行排序显示。排序方式为ASC或DESC,分别表示升序、降序。若缺省排序方式,则按升序排列。
8.2.2 单表查询
单表查询是指仅针对一张表(视图)的查询,即数据源仅一张基本表或一个视图。下面对jxgl数据库中的基本表或视图进行查询介绍SELECT语句的基本用法。
(1)查询表中指定的字段
通过指定字段可以只对指定字段的数据进行查询,从而“过滤”不关注的数据。
例8.1 查询课程表中的课程号(cno)、课程名(cn)和学分数(credit)。
查询语句如下:
use jxgl
select cno,cn,credit from course
go
在SQL Server2005的SSMS中新建查询,编辑以上语句,单击工具栏“执行”按钮或直接按键盘功能键F5执行语句。其执行结果如图8.11所示。