MySQL 基础教程[2]

本文是一个MySQL基础教程,通过示例介绍了如何使用SQL语句添加表字段、更新数据、创建视图、建立索引以及管理用户权限。同时,展示了如何设计存储函数以获取课程最高分,以及设定事件定期备份数据。
摘要由CSDN通过智能技术生成

  • 本系列MySQL 基础教程通过“问题-代码”的方式介绍各类方法,每篇设置2个MySQL综合问题,并给出解决方案。

问题1

学生数据库 db_student中有学生表tb_student和课程成绩表tb_score, tb_student包含的字段有 sno (学号)、sname (姓名)、sage (年龄) 和smajor (专业), tb_score包含的字段有 sno (学号) 、cname (课程名 称) 和grade (成绩) 。

  1. 使用SQL语句, 在tb_student表中添加一个字段ssex, 数据类型为 char, 长度为 1 , 缺省值为 " M " M " M" "。
  2. 用SQL语句将学号为 100 的学生的专业改为“计算机”。
  3. 用SQL语句在tb_score表上建立一个视图 v \mathrm{v} v avg(cname,caverage), 视图的内容包含课程名称及课程的平均成绩。
  4. 用 SQL语句在tb_student表上建立关于学号的唯一性索引idx stu。
  5. 新建一个名称为newuser的用户, 主机名为 localhost, 并为其授予对tb_student表的select权限。

问题1代码

#【1】
alter table tb_student add column ssex char(1) default "M";
#【2】
update tb_student set smajor="计算机" where sno=100;
#【3】
create view v_avg(cname, caverage) as select cname avg(grade) from tb_score group by cname;
#【4】
create unique index idx_stu on tb_student(sno);
#【5】
create user 'newuser'@'localhost';
grant select on  tb_student to 'newuser'@'localhost' with grant option;

问题2

  1. 设计一个名称为 fn_cmax的存储函数, 根据给定的课程名返回选修该课程的最高分, 并写出调用函数的语句。

  2. 设计一个名称为ev_bak的事件, 每日将学生数据库db_student中学生表tb_student的数据备份到考生文件夹下的文 件bakfile.txt中。

问题2代码

#【1】
DELIMITER $$
CREATE function fn_cmax(cn CHAR(20))
RETURNS int
DETERMINISTIC
BEGIN
	DECLARE tmp INT;	
	SELECT max(grade) INTO tmp 
	FROM tb_score
	WHERE cname=cn;
	RETURN tmp;
END $$
DELIMITER ;


#【2】
DELIMITER $$
CREATE event ev_bak ON SCHEDULE  every 1 DAY
DO
BEGIN
    SELECT * FROM db_student.tb_student INTO OUTFILE 'bakfile.txt' FIELDS TERMINATED BY ',';
END $$
DELIMITER ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山莫衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值