数据库系统概论——综合实验

 

 

#查询平均成绩大于等于90的学号、课程成绩;
SELECT 学号,课程成绩
FROM `学生`
WHERE 课程成绩>='90';

#查询选修了课程名为“信息系统”的学生的学号姓名;
SELECT 学号,姓名
FROM `学生`,`课程`
WHERE `学生`.`课程号`=`课程`.`课程号` AND `课程`.`课程名`='信息系统';

#(2)嵌套:
SELECT 学号,姓名
FROM `学生`
WHERE `课程号` IN
(SELECT `课程号`
FROM `课程`
WHERE 课程名='信息系统');

#创建视图 IG_view
CREATE VIEW IG_view (学号,姓名,课程号,课程成绩)
AS
SELECT 学号,姓名,课程号,课程成绩
FROM 学生,学校
WHERE `学生`.`系编号`=`学校`.`系编号` AND `系名`='计算机系'; 

#统计每门课程选修人数,输出课程号和人数,结果按人数降序
SELECT 课程号,COUNT(学号)
FROM `学生`
GROUP BY 课程号
# HAVING COUNT(学号)>='3'
ORDER BY COUNT(学号) DESC,`课程号`  ;

#授权用户u1对学生表(姓名)、课程表,有查询、修改权限,并给其他用户授权(密码:123)
CREATE USER u1 @'host' IDENTIFIED BY '123';

# SHOW GRANTS FOR 'u1'@'HOST';

GRANT SELECT,UPDATE
ON TABLE 课程
TO u1@'HOST';

GRANT SELECT(姓名),UPDATE(姓名)
ON TABLE 学生
TO u1@'HOST';


/*
Show triggers;
#查看某个触发器的内容:
SHOW CREATE TRIGGER update_cno;
drop trigger update_cno;

*/
#  设置触发器
#  1.修改课程中课程号时,学生表中可以自动修改

CREATE TRIGGER update_cno
after update on 课程
for each row
begin

UPDATE 学生 SET 课程号=new.`课程号` WHERE 课程号=old.课程号 ;

end;

#创建触发器,在插入或修改学生信息时,如果年龄低于18岁,自动修改为18岁

CREATE TRIGGER update_age
BEFORE UPDATE on 学生
for each row
begin

IF(new.年龄<'18')
 THEN  SET new.`年龄`='18';
END IF;
 
end;

CREATE TRIGGER insert_age
BEFORE INSERT on 学生
for each row
begin

IF(new.年龄<'18')
 THEN  SET new.`年龄`='18';
END IF;
 
end;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值