mysql 编程题库_MySQL

以下为本人考试写的解答,有错误的地方可发邮件指正,by jtahstu on 2016/1/5 19:25 , 邮箱 : root@jtahstu.com

假设存在名为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 * from students where year(Date)=year(now());

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

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

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

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

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

select * from students where 姓名 like “王%”;

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

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

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

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

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

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

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

select * from score where 成绩>=80;

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

create view CS-R

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

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

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

编程题

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

delimiter $$

create procedure sum100(out sum 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_score after

insert  on score for each row

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值