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
  • 相关阅读:
    ACM训练计划
    动态规划 最长公共子序列LCS
    Floyd最短路
    邻接表拓扑排序
    数字三角形(数塔) DP入门
    hdu 5533 计算几何 判断是否为正方形
    威尔逊定理--HDU2973
    二分--POJ-3258
    01背包--hdu2639
    矩阵快速幂--51nod-1242斐波那契数列的第N项
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/8853459.html
Copyright © 2011-2022 走看看