当前位置: 首页 > article >正文

第五次作业

  1. 创建数据库并使用
    • CREATE DATABASE mydbl1_stu;:创建名为mydbl1_stu的数据库。
    • USE mydbl1_stu;:切换到刚创建的数据库,后续操作都在此数据库环境下进行。
  2. 创建 student 表
    • CREATE TABLE student(id INT(10) NOT NULL UNIQUE PRIMARY KEY, name VARCHAR(20) NOT NULL, sex VARCHAR(4), birth YEAR, department VARCHAR(20), address VARCHAR(50));
  3. 创建 score 表
    • CREATE TABLE score(id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT, stu_id INT(10) NOT NULL, c_name VARCHAR(20), grade INT(10));

问题查询操作:

  1. 分别查询 student 表和 score 表的所有记录
    • SELECT * FROM student;:查询student表的所有行和列。
    • SELECT * FROM score;:查询score表的所有行和列。
  2. 查询 student 表的第 2 条到 5 条记录
    • SELECT * FROM student LIMIT 1,4;
    • LIMIT子句用于限制查询结果的数量。第一个参数1表示从第 2 条记录开始(索引从 0 开始),第二个参数4表示查询 4 条记录。
  3. 从 student 表中查询计算机系和英语系的学生的信息
    • SELECT * FROM student WHERE department IN ("计算机系","英语系");
    • WHERE子句用于筛选满足条件的行。IN关键字用于判断列值是否在指定的集合中。
  4. 从 student 表中查询年龄小于 22 岁的学生信息
    • SELECT * FROM student WHERE 2024 - birth < 22;
    • 通过计算当前年份与出生年份的差值来判断年龄是否小于 22 岁。
  5. 从 student 表中查询每个院系有多少人
    • SELECT department, COUNT(*) AS count FROM student GROUP BY department;
    • GROUP BY子句用于按照department列进行分组,COUNT(*)函数用于计算每组的行数,AS count用于给计算结果列命名。
  6. 从 score 表中查询每个科目的最高分
    • SELECT c_name, MAX(grade) AS max_grade FROM score GROUP BY c_name;
    • 类似地,按照c_name列分组,使用MAX函数获取每组中的最高分。
  7. 查询李广昌的考试科目 (c_name) 和考试成绩 (grade)
    • SELECT c_name, grade FROM score JOIN student ON score.stu_id = student.id WHERE student.name = "李广昌";
    • 通过JOIN操作将score表和student表连接起来,根据stu_idid的对应关系进行关联,然后在WHERE子句中筛选出name为 "李广昌" 的记录。
  8. 用连接的方式查询所有学生的信息和考试信息
    • SELECT student.*, score.c_name, score.grade FROM student JOIN score ON student.id = score.stu_id;
    • 连接student表和score表,获取所有学生的详细信息以及对应的考试科目和成绩。
  9. 计算每个学生的总成绩
    • SELECT student.id, student.name, SUM(score.grade) AS total_grade FROM student JOIN score ON student.id = score.stu_id GROUP BY student.id, student.name;
    • 连接两表后,按照学生的idname分组,使用SUM函数计算每个学生的总成绩。
  10. 计算每个考试科目的平均成绩
  • SELECT c_name, AVG(grade) AS average_grade FROM score GROUP BY c_name;
  • 11查询计算机成绩低于 95 的学生信息
  • SELECT student.* FROM student JOIN score ON student.id = score.stu_id WHERE score.c_name = "计算机" AND score.grade < 95;
  • 12将计算机考试成绩按从高到低进行排序
  • SELECT * FROM score WHERE c_name = "计算机" ORDER BY grade DESC
  • 13从 student 表和 score 表中查询出学生的学号,然后合并查询结果
  • SELECT id FROM student UNION SELECT stu_id FROM score;
  • UNION操作符用于合并两个查询结果集,去除重复行。
  • 14查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
  • SELECT student.name, student.department, score.c_name, score.grade FROM student JOIN score ON student.id = score.stu_id WHERE student.name LIKE "张%" OR student.name LIKE "王%";
  • 通过JOIN操作连接两表,在WHERE子句中使用LIKE操作符筛选出姓名以 "张" 或 "王" 开头的记录。
  • 15查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
  • SELECT student.name, 2024 - student.birth AS age, student.department, score.c_name, score.grade FROM student JOIN score ON student.id = score.stu_id WHERE student.address LIKE "湖南省%";

http://www.kler.cn/a/381160.html

相关文章:

  • 对javascript语言标准函数与箭头函数中this的理解(补充)
  • 【pycharm】远程服务器之后如何打开终端
  • CSPM认证最推荐学习哪个级别?
  • 算法题(13):异或变换
  • 【机器学习与数据挖掘实战】案例06:基于Apriori算法的餐饮企业菜品关联分析
  • java后端传时间戳给前端的三种方式
  • L1G3000 提示工程(Prompt Engineering)
  • 【Spring】Spring的简单创建和使用
  • 11.5日志
  • labview学习总结
  • Linux终端退出程序后,TCP地址仍被占用
  • 【前端】Fetch:数据请求
  • C++之数组和字符串
  • ffplay 实现视频流中音频的延迟
  • 手机ip地址怎么切换外省
  • 【大模型】海外生成式AI赛道的关键玩家:OpenAI、Anthropic之外还有谁?
  • 二、 问题发现(监控工具和方法)
  • 【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决
  • Qt 视口和窗口
  • 使用RestTemplate发送post请求,入参是多层嵌套的JSON
  • C++优选算法五 位运算
  • SEO
  • UE5相机系统初探(一)
  • 网关(Gateway)和DNS(Domain Name System)
  • 无人机声学侦测算法详解!
  • 构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统