SQL Sever中的单表查询

以下SQL语句均在SQL2008环境下执行

(1) 按照《数据库系统概论》(第五版)P79页的学生课程数据库及数据实现以下查询:

    1. 查询数学系(‘MA’)年龄不到21岁的所有女生的姓名和出生年份。

具体代码:

--查询数学系(‘MA’)年龄不到岁的所有女生的姓名和出生年份

SELECT Sname, YEAR(GETDATE())-Sage BIRTHDAY

FROM STUDENT

WHERE Sage<=21 AND Sdept='MA'

 

    1. 查询已被学生所选课的课号。

具体代码:

--查询已被学生所选课的课号

SELECT DISTINCT Cno

FROM SC

 

    1. 查询所有有成绩的学生学号和课程号,并为各列分别取相应的中文别名。

具体代码:

--查询所有有成绩的学生学号和课程号,并为各列分别取相应的中文别名

SELECT Sno 学号, Cno 课程号

FROM SC

WHERE Grade is NOT NULL

 

    1. 查询选修了’2’号课程的成绩在80~90分(包括80和90分)之间的学生的学号和成绩。

具体代码:

--查询选修了’2’号课程的成绩在~90分(包括和分)之间的学生的学号和成绩

SELECT Sno, Grade

FROM SC

WHERE Cno=2 AND GRADE>=80 AND GRADE<=90

 

    1. 查询姓名中包含‘晨’这个汉字的学生信息。

具体代码:

--查询姓名中包含‘晨’这个汉字的学生信息

SELECT *

FROM STUDENT

WHERE Sname LIKE '%晨%'

 

    1. 查询姓名以‘立’字结尾,包含二个汉字的学生信息。

具体代码:

--查询姓名以‘立’字结尾,包含二个汉字的学生信息

SELECT *

FROM STUDENT

WHERE Sname LIKE '_立'

 

    1. 根据student表,统计每一年龄组的男生人数,只显示那些男生人数超过10人的年龄组。

具体代码:

--根据student表,统计每一年龄组的男生人数,只显示那些男生人数超过10人的年龄组

SELECT Sage, COUNT(Sage) 年龄组个数

FROM STUDENT

WHERE Ssex='男'

GROUP BY Sage

HAVING COUNT(Sage)>10

 

    1. 根据SC表,检索学生学号和平均成绩。

具体代码:

--根据SC表,检索学生学号和平均成绩

SELECT Sno, AVG(GRADE) 平均成绩

FROM SC

GROUP BY Sno

 

(2) 按照《数据库系统概论》P70-71页中的SPJ数据库及数据实现以下查询:

  1. 查询地点在‘天津’、‘上海’的供应商代码和供应商名字。

具体代码:

--查询地点在‘天津’、‘上海’的供应商代码和供应商名字

SELECT SNO, SNAME

FROM S

WHERE CITY='天津' OR CITY='上海'

 

  1. 查询各个供应商所供应的零件的总数,要求对查询结果降序显示

具体代码:

--查询各个供应商所供应的零件的总数,要求对查询结果降序显示

SELECT SNO, SUM(QTY) 零件总数

FROM SPJ

GROUP BY SNO

ORDER BY SUM(QTY) DESC

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值