zoukankan      html  css  js  c++  java
  • 实验楼—Mysql—查找最爱学的课程

    转载:https://www.shiyanlou.com/challenges/2651

    背景

    从上节题目构建的课程数据库中提取每个用户最爱学的课程数据。

    右边桌面是实验楼的服务器,服务器中的 MySQL 还没有启动,请注意 MySQL 的 root 账户默认密码为空。启动 MySQL 后会发现已经有了一个 shiyanlou 的数据库,访问的用户名为 shiyanlou,密码为 shiyanlou,shiyanlou 数据库中包含三个表:

    1. user:1000名实验楼用户数据,包含两列,用户ID和用户名
    2. course:10门实验楼课程数据,包含两列,课程ID和课程名
    3. usercourse:100条用户课程学习记录,包含四列,ID,用户ID,课程ID和学习时间(分钟)

    目标

    查询并将查询结果创建一个新表,任务完成后满足以下要求:

    1. MySQL 服务处于运行状态
    2. 新的表名称为 favorite,包含四列:id(主键),user_name(用户名),course_name(课程名),study_time(学习时间)
    3. favorite 表中存储的是所有在 usercourse 表中有学习记录的用户学习时间最长的课程,如果有多门课程学习时间相同,则都存入该表

    提示语

    注意 favorite 表中存储的不是用户ID和课程ID,而是用户名和课程名。

    知识点

    1. SQL 基本语句
    2. SQL 分组和排序语句
    3. SQL 查询结果创建新表

    来源

    实验楼测试团队功能测试场景

    ————————————————————分割线——————————————————————————————————————

    1.Linux环境下操作数据库,相对比较麻烦,不能修改,建议先在本机上写好代码再照抄

    2.有几个地方需要注意的,前期时间都花在处理坑上了

    1)需要启动mysql服务,然后就报错了,报the partition with /var/lib/mysql is too full! #意思是分区满了

     解决办法:重启mysql服务(先关闭再重启)

     sudo service mysql stop

       sudo service mysql start

       mysql -ushiyanlou -pshiyanlou  #(重启后直接连接就可以了)

    2)写好代码后需要转变字符格式成utf8,可以自行百度(mysql表编码格式转换)

    ——————————————————————分割线————————————————

    以下是示例代码(亲测结果为PASS,如有错误请自行检查)

    查询到学习记录的用户学习时间最长的课程并排序

    select user.name,course.name,usercourse.study_time
    from user,course,usercourse
    where user.id = usercourse.user_id AND course.id = usercourse.course_id
    order by study_time desc

    新建一张表,这里不详细说了,很简单,可以自行百度(mysql新建表)

    插入前面的查询内容

    INSERT INTO favorite (user_name,course_name,study_time)
    select user_name,course_name,study_time
    from
    select user.name as user_name,course.name as course_name,usercourse.study_time
    from user,course,usercourse
    where user.id = usercourse.user_id AND course.id = usercourse.course_id
    order by study_time desc

    Win a contest, win a challenge
  • 相关阅读:
    pytest文档70-Hook钩子函数完整API总结
    pytest文档69-Hook函数之参数化生成测试用例pytest_generate_tests
    pytest文档68-pytest-lazy-fixture 插件解决 pytest.mark.parametrize 中使用 fixture 问题
    pytest文档67-pytest.mark.parametrize 中使用 fixture
    docker学习15-Docker 使用修改后容器来创建镜像
    pytest文档66-工厂化的 fixtures
    pytest文档65-内置 request 读取项目的根目录 rootdir
    jenkins学习16-无法连接仓库:Error performing git command: git ls-remote -h
    多屏切换神器
    邀请推广:Office 365 开发入门指南教程
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/8853459.html
Copyright © 2011-2022 走看看