当前位置: 首页 > article >正文

数据库原理与应用(基于MySQL):实验六数据查询

实验6.1

对学生实验数据库(stuexpm)的学生信息表(StudentInfo)和成绩信息表(Scorelnfo)进行信息查询,编写和调试查询语句的代码,完成以下操作

(1)使用两种方式查询Studentlnfo表的所有记录
①使用列名表。
② 使用*.

use stuexpm;

select StudentID,Name,Sex,Birthday,Speciality,Address from studentinfo;
select * from studentinfo;


(2)查询Scorelnfo表的所有记录。

select * from scoreinfo;


(3)查询高等数学成绩低于90分的成绩信息,

select *
from scoreinfo
where CourseID='8001' and Grade<90;

(4)使用两种方式查询地址为上海市浦东区和成都市锦江区的学生的信息
① 使用 IN 关键字。
② 使用 OR 关键字。

select *
from studentinfo
where Address in('上海市浦东区','成都市锦江区');

select *
from studentinfo
where Address='上海市浦东区' or Address='成都市锦江区';


(5)使用两种方式查询分数为90~95分的成绩信息。
①使用BETWEEN AND 关键字
②使用AND关键字和比较运算符

select *
from scoreinfo
where Grade between 90 and 95;

select *
from scoreinfo
where Grade>=90 and Grade<=95;


(6)通过两种方式查询地址是北京的学生信息。
① 使用 LIKE 关键字。
② 使用 REGEXP 关键字。

select *
from studentinfo
where Address like '北京%';

select *
from studentinfo
where Address regexp '^北京';


(7)查询每个专业有多少人。

select Speciality,count(*) as '人数'
from studentinfo
group by Speciality;


(8)查询高等数学的平均成绩、最高分和最低分

select avg(Grade) as average,
       max(Grade) as highest,
       min(Grade) as lowest
from scoreinfo
where CourseID='8001';


(9)将英语成绩按从高到低的顺序排列。

select *
from scoreinfo
where CourseID='1201'
order by Grade desc ;


(10)通过两种方式查询英语成绩第3~5名的信息
① 使用 LIMIT offset row count 格式。
② 使用 LIMIT row_count OFFSET offset 格式。


select *
from scoreinfo
where CourseID='1201'
order by Grade desc
limit 2 offset 2;

select *
from scoreinfo
where CourseID='1201'
order by  Grade desc
limit 2 offset 2;

实验6.2

对学生实骏数据库(s1uexpm)的学生信息表(Studentlnfo)和成绩信息表(Scoreinin)行信息查询,编写和调试查询语句的代码,完成以下操作。
(1)对学生信息表和成绩信息表进行交叉连接,观察所有的可能组合

select *
from studentinfo,scoreinfo;


(2)查询每个学生选修课程的情况
①使用INNER JOIN 的显式语法结构。
②使用WHERE子句定义连接条件的隐式语法结构。

select s.StudentID,s.Name,s.Sex,s.Birthday,s.Speciality,s.Address,sc.Grade,sc.CourseID
from studentinfo s
inner join scoreinfo sc on s.StudentID=sc.StudentID;

select s.StudentID,s.Name,s.Sex,s.Birthday,s.Speciality,s.Address,sc.Grade,sc.CourseID
from studentinfo s,scoreinfo sc
where s.StudentID=sc.StudentID;


(3)采用自然连接查询每个学生选修课程的情况。

select s.StudentID,s.Name,s.Sex,s.Birthday,s.Speciality,s.Address,sc.Grade,sc.CourseID
from studentinfo s
natural join scoreinfo sc;


(4)查询源程不同、成绩相同的学生的学号、课程号和成绩。
①使用INNE JOIN的显式语法结构。
②使用WHERE子旬定义连接条件的隐式语法结构,

select a.StudentID,a.CourseID,a.Grade
from scoreinfo a
inner join scoreinfo b
on a.Grade=b.Grade and a.StudentID<>b.StudentID;

select a.StudentID,a.CourseID,a.Grade
from scoreinfo a,scoreinfo b
where a.Grade=b.Grade and a.StudentID<>b.StudentID;


(5)查询选修1004课程的学生的姓名、性别和成绩

select s.Name,s.Sex,sc.Grade
from studentinfo s
inner join scoreinfo sc on s.StudentID=sc.StudentID
where sc.CourseID='1004';


(6)查询逸修了8001课程且为计算机专业学生的姓名及成绩,查出的成绩按降序排列

select s.Name,sc.Grade
from studentinfo s
inner join scoreinfo sc on s.StudentID=sc.StudentID
where sc.CourseID='8001' and s.Speciality='计算机'
order by sc.Grade desc;


(7)查御地址为上海市浦东区的学生的姓名专业、课程号和成绩

select s.Name,s.Speciality,sc.CourseID,sc.Grade
from studentinfo s
inner join scoreinfo sc on s.StudentID=sc.StudentID
where s.Address='上海市浦东区';


(8)查询8001课程的成绩高于4002课程成绩的学生。


select s.StudentID,s.Name,sc1.Grade as Grade_8001,sc2.Grade as Grade_4002
from scoreinfo sc1
inner join scoreinfo sc2 on sc1.StudentID=sc2.StudentID
inner join studentinfo s on s.StudentID=sc1.StudentID
where sc1.CourseID='8001' and sc2.CourseID='4002' and sc1.Grade>sc2.Grade;


http://www.kler.cn/news/356864.html

相关文章:

  • 【Golang】Go语言http编程底层逻辑实现原理与实战
  • 大数据治理:技术挑战与解决方案
  • 免杀对抗—内存加载UUID标识IPV4地址MAC地址
  • webpack自定义插件 ChangeScriptSrcPlugin
  • 结合seata和2PC,简单聊聊seata源码
  • 暴雨讲堂:AI已成为交叉学科科研工具
  • 监督学习、无监督学习、半监督学习、强化学习、迁移学习、集成学习分别是什么对应什么应用场景
  • Facebook Marketplace无法使用的原因
  • 【Bootstrap】bootstrap-table 的打印按钮功能正常但缺失图标
  • python爬虫加解密分析及实现
  • OSI参考模型与TCP/IP模型
  • 《深空彼岸》TXT完整版下载,知轩藏书校对版!
  • QGIS的入门(实习指导)
  • Android SELinux——其他常见策略⽂件(十一)
  • Go语言基础学习(Go安装配置、基础语法)
  • SpringBoot实现桂林旅游的智能推荐
  • LED显示屏与手机连接:简单便捷的操作指南
  • Apache Seatunnel Zeta引擎-启动脚本分析
  • 【Hive】6-Hive函数、运算符使用
  • [mysql]mysql的全部单行函数