jtahstu的博客

root@jtahstu.com   Github   英文博客  

最新碎语:以后没事写写小的知识点吧

您的位置:jtahstu的博客 >笔记> MySQL期末考试

MySQL期末考试

以下为本人考试的解答,有错误的地方欢迎指正,by jtahstu on 2016/1/5 19:25

假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 number(2),专业 varchar(20),入学日期 Date)和Score(学号 char(8),课程名varchar(10),成绩 number (5,2),总学分int),course(cno,cname,ccredit(学分))三张表。

1.  从Students表中查询出所有当年(系统时间)入学的学生记录。

select * fromstudents where year(Date)=year(now());

2.  从score表中查询出大于等于平均成绩的所有记录。

select * fromscore where 成绩 >=all(select avg(number) from score);

3.  求出score表中最高成绩与最低成绩的分数之差。

select max(成绩)-min(成绩) from score;

4. 从students表中查询姓名以“王”开头的同学。

select * fromstudents where 姓名 like “王%”;

5. 显示出AAA库中所有学生的记录信息及选课成绩

select * fromstudents,score where students.学号=score.学号;

6. 将score表中学号为‘20080001’ 的学生的数学成绩修改为84。

update scoreset 成绩=84where 学号=“20080001” and 课程名=”数学”;

7. 向score表中插入学号为‘20081006’、课程名为数据库、成绩为86的学生成绩记录。

Insert intoscore(学号,课程名,成绩) values(“20081006”,“数据库”,86);

8. 显示出score表中成绩大于等于80分的所有记录。

select * fromscore where 成绩>=80;

9. 定义计算机专业的学生信息视图CS-R,其中包括学号、姓名、性别

create viewCS-R

        as select 学号,姓名,性别 from studentswhere 专业=“计算机”;

10. 查询学号为‘20081008’的成绩大于其平均成绩的课程名、成绩。

Select 课程名,成绩 from scorewhere 成绩>all(select avg(number) from score where学号=“20081008”);

 

编程题

1. 求1到100之间所有偶数和.

delimiter $$

create procedure sum100(outsum int(4))

begin

    set @sum=0;

    set @i=2;

    label :loop

if @i>100 then

       leave label;

    end if;

       set @sum=@sum+@i;

       set @i=@i+2;

end$$

delimiter;

------------------------------------------------------

delimiter $$

create procedure sum100()

begin

    set @sum=(2+100)*50/2;

end$$

delimiter;

2.创建触发器向score表插入一行数据,若成绩>=60,则总学分加上该课程的学分,否则总学分不变。

delimiter $$

create trigger add_scoreafter

    insert  on score for eachrow

begin

    declare jt int(1);

    select ccredit into jt from course where cno=new.cno;

    if new.成绩>=60 then

       update score set 总学分=总学分+jt where 学号=new.学号;

    end if;

end$$

delimiter;

---

本文章采用 知识共享署名2.5中国大陆许可协议 进行许可,欢迎转载,演绎或用于商业目的。

---

二维码加载中...

扫一扫移动端访问O(∩_∩)O

发表评论

83 + 66 =
路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交
正在加载中……