本文仅仅是我自己的mysql期末复习练习题,相对应的文件我发在附件中,请查看85951677487382757.pdf2xsgl.sql1xxgl.sql3market.sql

数据库查询操作

新建 XSGL 数据库,运行给出的 2xsgl 数据库文件,实现以下查询操作:

1.查询计算机系女学生的学号和姓名。

select S_no,s_name from student where S_sex='女' and s_dept='计算机';

统计每门课程与其选课人数和最高分,并按课程号降序显示。

select course.C_no,count(sc.C_no) 选课人数,max(sc.SC_sco) 最高分 from course join sc on course.C_no=sc.C_no group by C_no order by course.C_no desc;

用两种方法求020102考试课程成绩为80分以上的课程信息(可用联接或嵌套)

select course.* from sc join course on sc.C_no=course.C_no where S_no='020101' and SC_sco>80;

查询考了操作系统课程的学生学号,分数及该课程教材。

select course.C_book,sc.S_no,sc.SC_sco from course join sc on course.C_no=sc.C_no where c_name='操作系统';

查询和胡国强在同一个班的学生的姓名和性别。(可用自联接或嵌套)

select s1.s_name,s1.S_sex from student s1 join student s2 on s1.s_class= s2.s_class where s2.s_name='胡国强';

查询所有学生的选课及得分情况(没选课的学生在相应课程号和成绩列为 null)。

select course.c_pno,sc.SC_sco from course left join sc on course.C_no=sc.C_no;

查询所有课程的被选及得分情况(没人选的课对应学号和成绩为NULL)

select course.c_name,sc.SC_sco from course left join sc on couse.C_no=sc.C_no;

、两种方法查询系办公室在办公楼 422 的学生学号及考试的课程号和成绩。

-- 自连接
select sc.S_no,sc.C_no,sc.Sc_sco from sc where C_no in(select  D_no from dept where D_office='办公楼422');
-- 多表查询
select sc.S_no,sc.C_no,sc.Sc_sco  from sc join dept on sc.C_no =dept.D_no where
dept.D_office='办公楼422';

将计算机系和经贸系的学生信息输出到新表 stu 中。

CREATE table stu1 like student;
insert into stu1 (select* from student where s_dept='计算机' or s_dept='经贸');
SELECT * from stu1;

将 PB 程序设计课程的成绩都减 2 分。

update sc set SC_sco=Sc_sco-2 where C_no in (select C_no from course where C_book='《PB程序设计基础》') ;

将胡国强的所有成绩都删除。

DELETE  FROM sc WHERE S_no in (SELECT S_no from student WHERE s_name='胡国强');
SELECT * FROM sc;

建立视图,用于从 goods 表中检索数据,列出高于平均价格的货品信息。体会视图的作用和点。

create view v2 as select * from goods where G_money>(select avg(G_money)from goods);
--查看视图
show create view v2;

建立存储过程,带有输入参数,用来根据客户名字检索客户的订单号及货品名称。执行此存储过程,查出客户李红的相关信息。体会存储过程的作用和特点。

create PROCEDURE p2(in a char(8))
BEGIN85951677487382757.pdf2xsgl.sql1xxgl.sql3market.sql85951677487382757.pdf2xsgl.sql1xxgl.sql3market.sql
SELECT customers.C_name,orders.O_id,goods.G_name FROM goods JOIN orders ON goods.G_name=orders.G_name
JOIN customers on orders.C_id=customers.C_id WHERE customers.C_name='李红';
END;
CALL p2('李红');