学习云数据库RDS的基本用法(体验学生课程成绩管理)
参加了《数据库全栈成长计划》的学习,从中学习了数据库的基础知识,GaussDB(for MySQL)云数据库的特性和应用场景,了解数据库相关的系统结构,数据库安全性,数据备份迁移等内容。
RDS(Relational Database Service,关系型数据库服务)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。
购买数据库实例
免费领取活动页:https://activity.huaweicloud.cn/free_test/index.html
打开华为云官网:https://www.huaweicloud.cn/
1.登录账号,进入“控制台”,点击左侧服务列表-数据库-云数据库 RDS,或者在搜索框输入“RDS”
2.点击“云数据库 RDS”
3.点击“购买数据库实例”
计费模式:按需计费
实例名称:rds-test
数据库引擎:MySQL
数据库版本:5.7
虚拟私有云:选择已创建好的虚拟私有云
数据库端口:默认 3306
安全组:选择已创建好的安全组(在安全组添加数据库端口规则)
管理员密码:Huawei@123456
确认密码:Huawei@123456
其余默认即可,点击“立即购买”成功后,返回实例管理列表,看到运行状态“正常”,说明数据库实例已经创建成功了。
登录数据库实例
点击左侧“实例管理”,打开数据库实例列表。
在创建好的实例名称“rds-test”最后面点击“更多”,点击“登录”
输入数据库用户名和密码,点击“测试连接”,提示连接成功,点击“登录”,进入管理控制台
创建数据库
点击“新建数据库”,输入名称后点击“确定”
数据库名称:自定义 dbtest
创建数据库表
点击创建好的数据库右侧的“新建表”;或者点击“数据库名称”,点击“新建表”。
表名:自定义student
点击下一步,创建列
输入列名,类型,长度;点击“添加”,创建多个列。
点击“下一步”直到完成。
点击“SQL窗口”,通过脚本创建表。
输入创建表的脚本,点击“执行SQL”,创建表成功。
--学生表
create table student(sno int,sname varchar(100),ssex char(4),sage int);
--课程表
create table course(cno int,cname varchar(20),credit int);
--成绩表
create table elective(sno int,cno int,grade decimal(5,1));
插入数据
向创建好的表中插入数据,在“SQL查询”窗口执行脚本如下:
-- student表插入
insert into student values (1,'张三','男',19);
insert into student values (2,'李四','男',19);
insert into student values (3,'王五','男',23);
insert into student values (4,'赵六','男',22);
insert into student values (5,'小明','男',19);
-- course表插入
insert into course values (101,'数学',5);
insert into course values (102,'英语',6);
insert into course values (103,'物理',5.5);
insert into course values (104,'化学',3);
insert into course values (105,'生物',5);
-- elective表插入
insert into elective values (1,101,80),(1,102,80.5),(1,103,60),(1,104,55),(1,105,90);
insert into elective values (2,101,83),(2,102,60.5),(2,103,70),(2,104,55),(2,105,99);
insert into elective values (3,101,50),(3,102,80.5),(3,103,80),(3,104,59),(3,105,90);
insert into elective values (4,101,80),(4,102,40.5),(4,103,60),(4,104,59),(4,105,60);
insert into elective values (5,101,60),(5,102,70.5),(5,103,70),(5,104,89),(5,105,66);
insert into elective values (6,101,50),(6,102,80.5),(6,103,60),(6,104,59),(6,105,83);
查询数据
查询学生编号为10的学生的姓名信息
select sname from student where sno = 10;
设置主键
如果创建表的时候没有添加主键,就会存在数据重复。
将 student 表中的学生编号设置为主键。
ALTER table student add PRIMARY KEY (sno);
创建索引
为 elective 表中的学生编号和课程编号创建 UNIQUE 索引。
alter table elective add unique key sno_cno(sno,cno);
创建视图
创建一个视图,显示学生的姓名、课程名称以及获得的分数。
CREATE VIEW v_student_course AS
SELECT
stu.sname,cos.cname,el.grade
FROM
student stu,
course cos,
elective el
WHERE
stu.sno = el.sno
AND cos.cno = el.cno
创建函数
编写一个函数,返回某个学生的分数总和。
CREATE FUNCTION GetAvgGradeById (id INT) RETURNS INT
BEGIN
RETURN (
SELECT
avg(el.grade) as grade
FROM
student stu,
course cos,
elective el
WHERE
stu.sno = el.sno
AND cos.cno = el.cno
AND stu.sno = id
GROUP BY stu.sname
);
END
查看SQL执行计划
查询数学这门课程学生的平均成绩,并查看执行计划。
SELECT
avg(el.grade) as grade
FROM
student stu,
course cos,
elective el
WHERE
stu.sno = el.sno
AND cos.cno = el.cno
AND cos.cname = '数学'
温馨提示
文章内容如果写的存在问题欢迎留言指出,让我们共同交流,共同探讨,共同进步~~~
文章如果对你有帮助,动动你的小手点个赞,鼓励一下,给我前行的动力。
- 点赞
- 收藏
- 关注作者
评论(0)