简单数据查询

编程入门 行业动态 更新时间:2024-10-26 13:19:46

简单<a href=https://www.elefans.com/category/jswz/34/1768796.html style=数据查询"/>

简单数据查询

一、实验目的

      熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练地使用SQL 语句的各种形式。

二、实验平台

操作系统:Windows x64 

DBMS:SQL Server 2016

三、程序清单

1、简单查询操作

(1)列出所有教授的姓名和工资:

SELECT 姓名,工资FROM 教工WHERE 职称= '教授'

(2)列出教授的所有信息。

SELECT  *FROM 教工WHERE 职称='教授'


(3)列出教工表中的系编号并消除重复的元组。

SELECT  DISTINCT  系编号FROM  教工

(4)已知学分=学时/17,计算每一门课程的学分数。

SELECT 课程名称,学时/17  AS 学分FROM  课程

(5)显示教授的工资和提高10%的工资额。

SELECT 姓名,工资,工资*1.1  AS  '工资*1.1'FROM  教工 WHERE 职称='教授'

(6)显示田平平同学出生100天的日期。

SELECT  姓名, 出生年月+100  AS  '出生年月+100'FROM   学生WHERE  姓名='田平平'

(7)列出教工表中工资在3000元以上的名单。

SELECT 姓名FROM   教工WHERE  工资>= 3000

(8)列出学生表中1980年1月1日之后出生的学生名单。

SELECT 姓名FROM  学生WHERE 出生年月>= '1980-1-1'

(9)列出学生表中在1980年1月1日之后出生的男同学名单。

SELECT 姓名FROM  学生WHERE 出生年月>= '1980-1-1' AND 性别='男'

(10)列出教工表中教授或副教授中工资低于3000元的名单。

SELECT 姓名FROM  教工WHERE (职称='教授' OR 职称='副教授')AND 工资<3000

(11)查出所有不是教授的教工姓名。

SELECT 姓名FROM  教工WHERE 职称 NOT LIKE '教授'

(12)检索工资在1000元到2000元范围内的职工信息。

SELECT  *  FROM 职工WHERE 工资 BETWEEN  1000  AND  2000

(13)按学号的升序,显示系编号等于101的学生信息

SELECT  *FROM    学生WHERE  系编号=101ORDER BY 学号

(14)求教工表中教授工资的平均值。

SELECT  AVG (工资) AS 平均工资FROM  教工WHERE 职称='教授'

(15)求所有教工的工资总和。

SELECT  SUM (工资)  AS 工资总和FROM  教工

(16)找出教工中最高工资和最低工资。

SELECT  MAX(工资)AS 最高工资,MIN(工资)AS 最低工资FROM  教工

(17)显示学生中最早和最晚的出生日期。

SELECT  MIN (出生年月)AS 最早日期,MAX (出生年月) AS 最晚日期FROM   学生

(18)查询学生的总人数  

SELECT  COUNT(*)AS 人数FROM  学生

2、复杂查询

(19)如果要统计成绩表中所有选课的学生人数,即不管一名学生选了几门课程,都只计算一次

SELECT  COUNT (DISTINCT (学号)) AS 人数FROM  成绩

(20)统计学生表中男生和女生的人数。

SELECT 性别, COUNT (*)AS 人数FROM  学生GROUP BY 性别

(21)统计成绩表中,每一门课程的平均成绩

SELECT 课程编号,AVG (分数)AS 平均成绩FROM  成绩GROUP BY 课程编号

(22)查询教工表中每一种职称的最高工资和最低工资

SELECT 职称, MAX (工资)AS 最高工资, MIN (工资) AS 最低工资FROM  教工GROUP BY 职称

(23)统计成绩表中选修人数超过2以上的课程编号和人数   

SELECT 课程编号,COUNT (*)AS 人数FROM  成绩GROUP BY 课程编号HAVING  COUNT(*)>2

(24)列出成绩表中分数在60以上、选课数大于2且平均分超过70的学号、选课数目和平均分

SELECT 学号,COUNT(课程编号)AS 选课数目, AVG (分数)AS 平均分FROM 成绩WHERE 分数>=60GROUP BY 学号HAVING COUNT(课程编号)>2 AND AVG(分数) >70

(25)统计各系学生的人数,结果按升序排列

SELECT 系编号,COUNT(学号)AS 人数FROM 学生GROUP BY 系编号ORDER BY COUNT(学号)

(26)按系统计各系学生的平均年龄,结果按降序排列(2020-year(出生年月))

SELECT 系.系编号,AVG(2020-year(出生年月)) AS 平均年龄FROM 学生,系WHERE 学生.系编号=系.系编号GROUP BY 学生.系编号,系.系编号ORDER BY 平均年龄 DESC 

(27)查询每门课程的课程名;

SELECT 课程编号,课程名称FROM 课程

(28)统计每位学生选修课程的门数、平均成绩;

SELECT 姓名,成绩.学号,COUNT(课程编号)AS 选课门数,AVG(分数)AS 平均分FROM 成绩,学生GROUP BY 成绩.学号,姓名,学生.学号Having 成绩.学号=学生.学号

(32) 统计选修每门课程的学生人数及各门课程的平均成绩;

SELECT 课程.课程编号,课程名称,COUNT(*)AS 选课人数,AVG(分数)AS 平均成绩FROM 成绩,课程GROUP BY 成绩.课程编号,课程.课程名称,课程.课程编号Having 课程.课程编号=成绩.课程编号

(33) 找出平均成绩在85分以上的学生,结果按平均成绩的升序排列;

SELECT 姓名,成绩.学号,COUNT(课程编号)AS 选课门数,AVG(分数)AS 平均分FROM 成绩,学生GROUP BY 成绩.学号,姓名,学生.学号Having 成绩.学号=学生.学号 AND AVG(分数)>=75ORDER BY AVG(分数)

(34) 查询选修了“C101”或“C102”号课程的学生学号和姓名;

SELECT 成绩.学号,姓名           FROM 成绩,学生WHERE 课程编号='C101' AND 成绩.学号=学生.学号UNIONSELECT 成绩.学号,姓名  FROM 成绩,学生            WHERE 课程编号='C102' AND 成绩.学号=学生.学号

(35)查询选修了“C101”和“C102”号课程的学生学号和姓名;

SELECT 成绩.学号,姓名           FROM 成绩,学生WHERE 课程编号='C101' AND 成绩.学号=学生.学号INTERSECTSELECT 成绩.学号,姓名  FROM 成绩,学生            WHERE 课程编号='C102' AND 成绩.学号=学生.学号

(36) 查询选修了3门以上课程的学生学号;

SELECT 学号            FROM 成绩 GROUP BY 学号              HAVING COUNT(*)>=3

(37)查询选修课程成绩至少有一门在80分以上的学生学号

SELECT 成绩.学号FROM 学生,成绩WHERE 分数>=80GROUP BY 成绩.学号HAVING COUNT(课程编号)>=1

 

 

 

更多推荐

简单数据查询

本文发布于:2024-02-12 00:06:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684484.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据查询   简单

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!