首页 理论教育实用SQLServer数据库技术:数据查询任务训练

实用SQLServer数据库技术:数据查询任务训练

【摘要】:掌握基本的SELECT查询语句及其相关子句的用法。进行多表复杂查询。在BlogDB数据库中,统计已发表评论的用户人数。代码如下:USE BlogDBGOSELECT x.Username,x.Sex,y.Subject,y.ShiJianFROM Users x LEFT OUTER JOIN Article yON x.Username=y.Username4.问题讨论SELECT查询语句能否修改数据库中的数据?子查询能嵌套使用吗?

1.实验目的

(1)熟悉查询窗口环境

(2)掌握基本的SELECT查询语句及其相关子句的用法。

(3)掌握复杂的SELECT查询语句及其相关子句的用法。

2.实验内容

(1)完成本章实例内容。

(2)进行单表简单查询。

(3)进行多表复杂查询。

3.实验步骤

启动SSMS,在“查询编辑器”中编辑、分析和执行T-SQL的SELECT查询语句。

(1)在BlogDB数据库中,统计已发表评论的用户人数。代码如下:

USE BlogDB

GO

SELECT DISTINCT Username FROM Comment

(2)查询在博客发表的文章中,内容为空的文章。代码如下:

USE BlogDB

GO

SELECT*FROM Article WHERE Content IS NULL

(3)查询只发表了一篇文章的开博用户。代码如下:

USE BlogDB

GO

SELECT Username,COUNT(*)AS篇数

FROM Article

GROUP BY UserName

HAVING COUNT(*)=1

(4)查询每位开博用户发表的文章篇数,并按篇数降序排列。代码如下:(www.chuimin.cn)

USE BlogDB

GO

SELECT Username,COUNT(*)AS篇数

FROM Article

GROUP BY UserName

ORDER BY篇数DESC

(5)查询开博用户每篇文章的评论记录数。代码如下:

USE BlogDB

GO

SELECT x.Username,y.Subject,COUNT(y.ArticleID)AS评论数

FROM Users AS x,Article AS y,Comment AS z

WHERE x.Username=y.Username AND y.ArticleID=z.ArticleID

GROUP BY x.Username,y.Subject

(6)显示所有博客用户的姓名、性别、发表的文章主题及发表时间(使用左外连接)。代码如下:

USE BlogDB

GO

SELECT x.Username,x.Sex,y.Subject,y.ShiJian

FROM Users x LEFT OUTER JOIN Article y

ON x.Username=y.Username

4.问题讨论

(1)SELECT查询语句能否修改数据库中的数据?

(2)SELECT查询语句中的各种子句之间有执行顺序吗?

(3)子查询能嵌套使用吗?子查询只能用在WHERE子句中吗?

知识拓展