数据库技术与应用实验 实验4 数据查询

实验4 数据查询 学号:18103317 专业:电子信息工程

一、实验内容和步骤

1.在studentsdb数据库中,使用下列SQL语句将输出什么?并说明语句中使用函数所实现的功能。

(1)SELECT COUNT(*) FROM 成绩表

(2) SELECT SUBSTRING(姓名,1,2) FROM 学生表

(3)SELECT UPPER(‘kelly’) (小写字母->大写字母) (4)SEIECT Replicate(‘kelly’,3) (将“kelly”重复3次) (5) SELECT SQRT(分数) FROM 成绩表 WHERE 分数>=85 (SQRT()开根号) (6)SELECT 2,3,POWER(2,3) (乘方,即23) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在学生表中,查询每个学生的学号、姓名、出生日期信息。 (2)查询学号为0002的学生的姓名和家庭住址。 (3)找出所有男同学的学号和姓名。 3.使用SELECT语句进行条件查询

(1)在成绩表中查找分数在80~90范围内的学生的学号和分数。 (2)在成绩表中查询课程编号为C003的学生的平均分。

SELECT AVG(分数) FROM 成绩表 WHERE 课程编号='C003' (3)在成绩表中查询学习各门课程的人数。

SELECT COUNT(*) FROM 成绩表 GROUP BY 课程编号

南京师范大学中北学院

1

数据库技术与应用实验 实验4 数据查询

(4)将学生按出生日期由大到小排序。

SELECT * FROM 学生表 ORDER BY 出生年月 DESC (5)查询所有姓“张”的学生的学号和姓名。

SELECT * FROM 学生表 WHERE 姓名 LIKE '张%' 4.嵌套查询

(1)在学生表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。 SELECT 姓名,出生年月 FROM 学生表

WHERE 性别= (SELECT 性别

FROM 学生表 WHERE 姓名='刘卫平')

(2)使用IN子查询查找所修课程编号为C002、C005的学生学号、姓名、性别。 SELECT 学号,姓名,性别 FROM 学生表

WHERE 学生表.学号 IN (SELECT 学号 FROM 成绩表

WHERE 课程编号 IN('C002','C005'))

(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

SELECT 课程编号,分数 FROM 成绩表

WHERE 学号='0001'AND 分数>ANY (SELECT 分数

FROM 成绩表 WHERE 学号='0002') (4)列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。

SELECT 课程编号,分数 FROM 成绩表

WHERE 学号='0001'AND 分数>(SELECT MAX(分数)

FROM 成绩表 WHERE 学号='0002')

南京师范大学中北学院 2

数据库技术与应用实验 实验4 数据查询

5.多表查询

(1)查询分数在80~90范围内的学生的学号、姓名、分数。 SELECT 学生表.学号,姓名,分数 FROM 学生表,成绩表

WHERE 学生表.学号=成绩表.学号 AND 分数 BETWEEN 80 AND 90 (2)查询学习“C语言程序设计”课程的学生的学号、姓名、分数。 SELECT 学生表.学号,姓名,分数

FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号=成绩表.学号 INNER JOIN 课程表 ON 课程表.课程编号=成绩表.课程编号 WHERE 课程表.课程名称='C语言程序设计'

(3)查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。 SELECT 学生表.学号,姓名,课程名称,分数

FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号=成绩表.学号 INNER JOIN 课程表 ON 课程表.课程编号=成绩表.课程编号 WHERE 学生表.性别='男'

(4)查询各门课程的最高成绩,要求列出课程编号、课程名称、分数。 SELECT b.课程编号,c.课程名称,MAX(b.分数)AS 最高分

FROM 成绩表 b INNER JOIN 课程表 c ON b.课程编号=c.课程编号 GROUP BY b.课程编号,c.课程名称

(5)查询所有学生的总成绩,要求列出学号、姓名、总成绩。 SELECT b.学号,姓名,SUM(b.分数)AS 最高分

FROM 学生表 a LEFT JOIN 成绩表 b ON a.学号=b.学号 GROUP BY b.学号,a.姓名 提示:使用左外连接。

(6)查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数。 SELECT b.课程编号,a.课程名称,COUNT(b.课程编号) AS 选修人数 FROM 课程表 a RIGHT JOIN 成绩表 b ON a.课程编号=b.课程编号 GROUP BY b.课程编号,a.课程名称 提示:使用右外连接。

南京师范大学中北学院 3

数据库技术与应用实验 实验4 数据查询

(7)查询所有没有选修课C002的学生信息,返回结果包括学号、姓名、性别。 SELECT 学号,姓名,性别 FROM 学生表

WHERE NOT EXISTS (SELECT * FROM 成绩表

WHERE 课程编号='C002' AND 学号=学生表.学号)

提示:使用条件运算符EXISTS。

(8)在学生表和成绩表之间实现交叉连接。 SELECT 学生表.学号,姓名,成绩表.课程编号,分数 FROM 学生表 CROSS JOIN 成绩表

(9)查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行(各课成绩)。

SELECT 学号,课程编号,分数 FROM 成绩表 ORDER BY 学号

COMPUTE SUM(分数)BY 学号

提示:使用SELECT语句的COMPUTE选项。

南京师范大学中北学院 4

按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)相关推荐

  1. 数据库实验报告 数据查询

    桂 林 理 工 大 学 实  验  报  告 班级软件2班学号3162052051734姓名梁振宇同组实验者 实验名称数据查询日期 2018年 06 月05 日 一.实验目的: 1.      观察查 ...

  2. 数据库——实验二 数据查询

    1.实验目的 理解SQL 程序设计基本规范,熟练运用SQL 语言实现数据查询,包括单表查询.分组统计查询和连接查询.嵌套查询合和集合查询. 2.实验内容和要求 针对tpch 数据库或自建数据库test ...

  3. 数据库实验三 数据查询二

    第1关:多表查询 任务描述 本关任务:查询来自借阅.图书.读者数据表的数据 为了完成本关任务,你需要掌握: 如何多表查询 相关知识 查询多个数据表 在实际应用中,查询经常会涉及到几个数据表. 基于多个 ...

  4. 数据库-实验二-数据查询

    --查询"红楼梦"目前可借的各图书编号,及所属版本信息 select 图书编号,出版单位 from 书目,图书 where 书目.isbn=图书.isbn  and 书名='红楼梦 ...

  5. mysql查询2个isbn数据,数据库实验二 数据查询

    ALTER TABLE 书目 ADD 出版年份 VARCHAR(100); UPDATE 书目 SET 出版年份='2005' WHERE ISBN='7040195836'; UPDATE 书目 S ...

  6. 数据库实验三 数据查询一

    第1关:按条件查询单表的所有字段 任务描述 本关任务:按条件查询数据表的所有字段 为了完成本关任务,你需要掌握: 如何查询数据表的所有字段 相关知识 查询数据表 命令格式: select * from ...

  7. 实验4mysql查询数据_数据库实验四 复杂查询.doc

    实验四 复杂查询 一.实验目的 掌握两个表以上的连接查询的应用,包括嵌套查询. 二.实验内容 (1)查询比"林红"年纪大的男学生信息. select * from Studentw ...

  8. 实验5 数据查询--连接查询

    实验5 数据查询--连接查询 一.实验目的 1.熟悉等值联接查询的方法. 2.熟悉非等值联接查询的方法. 3.熟悉自身联接查询的方法. 4.熟悉外联接查询的方法. 5.熟悉复合条件联接的方法. 二.实 ...

  9. 实验6 数据查询--高级查询

    实验6 数据查询--高级查询 一.实验目的 1.掌握查询结果排序的方法. 2.掌握排序结果进行计算的方法. 3.掌握排序结果分组的方法. 4.掌握排序结果分组后再选择的方法. 二.实验要求 应用SEL ...

最新文章

  1. mybatis mysql Druid_mybatis+Druid连接池的问题
  2. 威纶通触摸屏与mysql_威纶通 与 信捷XC\XD系列PLC 通讯
  3. Centos7 下Redis3安装
  4. 基于双向匹配的陌生人社交策略及算法思考
  5. pythonlinux加入自己写的模块_利用ngx_python模块嵌入到Python脚本
  6. 方法引用_通过对象名引用成员方法
  7. mysql load 占位符_Mysql占位符插入
  8. 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)
  9. python mro文件_Python MRO
  10. dirsearch工具(Web目录爆破)
  11. Android程序打开和关闭输入法
  12. 最新cuDNN 7[Linux]百度云下载[免费] 适用于CUDA 10.0
  13. 【转帖】防止ASP.NET按钮多次提交的办法
  14. swiper vue 初始化方法_详解swiper在vue中的应用(以3.0为例)
  15. java B2B2C Springcloud电子商城系统- Gateway初体验
  16. 一文带你了解SpringMVC框架的基本使用
  17. 教大家集中注意力的训练方法
  18. colab常见问题解答
  19. 微软服务器ip,微软服务器环境中的IP地址管理
  20. 关于高德地图问题总结 (二)地理围栏的使用

热门文章

  1. 还有谁!!!?谁是Uber下一个要颠覆的行业?
  2. “共享经济”何以真“共享”——区块链技术赋能共享出行
  3. jsp未正确拼写字 mysql_JAVA字符编码
  4. 解决由于权限问题导致YUM安装失败
  5. WEB渗透测试(一)被动信息收集1(DNS信息收集、DNS字典爆破、DNS注册信息)
  6. 【51码儿】【Linux学习笔记】第1章 安装、登录CentOS7
  7. (个人)AR电子书系统创新实训第一周(1)
  8. “阿里云之父”王坚:硅谷不应当成为我们的天花板 | 腾讯2017年Q3营收同比增61%
  9. TimingWheel 令人拍案叫绝的设计
  10. app开通支付宝支付简要流程