MySQL———作业实验

一、创建数据库表

1.创建数据库

mysql> create database mydb11_stu;

mysql> use mydb11_stu;

2.建表

(1)创建student表

mysql> create table student (

-> id int(10) not null unique primary key,

-> name varchar(20) not null,

-> sex varchar(4),

-> birth_year int,

-> department varchar(20),

-> address varchar(50)

-> );

2)创建score表

mysql> 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表插入记录如下:

mysql> insert into student values (901, '张三丰', '男', 2002, '计算机系', '北京海淀区');

mysql> insert into student values (902, '李四平', '男', 2000, '中文系', '北京顺义区');

mysql> insert into student values (903, '王小明', '男', 2003, '英语系', '北京朝阳区');

mysql> insert into student values (904, '李白', '男', 1999, '英语系', '辽宁省鞍山市');

mysql> insert into student values (905, '赵云', '男', 2004, '艺术系', '湖南省衡阳市');

mysql> insert into student values (906, '黄蓉', '女', 1998, '计算机', '湖南省常德市');

2.向score表插入记录如下:

mysql> insert into score values (null, 901, '计算机', 98);

mysql> insert into score values (null, 901, '英语', 80);

mysql> insert into score values (null, 902, '计算机', 65);

mysql> insert into score values (null, 902, '中文', 88);

mysql> insert into score values (null, 903, '中文', 94);

mysql> insert into score values (null, 904, '计算机', 78);

mysql> insert into score values (null, 905, '英语', 85);

mysql> insert into score values (null, 906, '计算机', 94);

mysql> insert into score values (null, 906, '英语', 83);

三、查询

1.分别查询student表和score表的所有记录

mysql> select * from student;

mysql> select * from score;

2.查询student表的第2条到5条记录

mysql> select * from student limit 1, 4;

3.从student表中查询计算机系和英语系的学生的信息

mysql> select * from student where department in ('计算机系', '英语系');

4.从student表中查询年龄小于22岁的学生信息

mysql> select * from student where (year(curdate()) - birth_year) < 22;

5.从student表中查询每个院系有多少人

mysql> select department, count(*) as student_count from student group by department;

6.从score表中查询每个科目的最高分

mysql> select c_name, max(grade) as highest_grade from score group by c_name;

7.查询李广昌的考试科目(c_name)和考试成绩(grade)

mysql> select c_name, grade from score where stu_id = (select id from student where name = '李广昌');

8.用连接的方式查询所有学生的信息和考试信息

mysql> select s.*, sc.c_name, sc.grade

-> from student s

-> join score sc on s.id = sc.stu_id;

9.计算每个学生的总成绩

mysql> select stu_id, sum(grade) as total_grade from score group by stu_id;

10.计算每个考试科目的平均成绩

mysql> select c_name, avg(grade) as average_grade from score group by c_name;

11.查询计算机成绩低于95的学生信息

mysql> select s.* from student s join score sc on s.id = sc.stu_id where sc.c_name = '计算机' and sc.grade < 95;

12.将计算机考试成绩按从高到低进行排序

mysql> select * from score where c_name = '计算机' order by grade desc;

13.从student表和score表中查询出学生的学号,然后合并查询结果

mysql> select id as stu_id from student union select stu_id from score;

14.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

mysql> select s.name, s.department, sc.c_name, sc.grade from student s join score sc on s.id = sc.stu_id where s.name like '张%' or s.name like '王%';

15.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

mysql> select s.name, (year(curdate()) - s.birth_year) as age, s.department, sc.c_name, sc.grade from student s join score sc on s.id = sc.stu_id where s.address like '湖南%';

相关推荐
johnny2332 分钟前
数据库客户端:DBGate、DBX、dblab、SQLQueryStress、openhare、DBcooper、RedisME
数据库
IT策士9 分钟前
Redis 从入门到精通:缓存经典难题 —— 穿透、击穿、雪崩
数据库·redis·缓存
huisheng_qaq17 分钟前
【项目篇-01】Vmware虚拟机和环境安装配置
redis·mysql·canal·rocketmq·es·vaware虚拟机
湘美书院--湘美谈教育18 分钟前
湘美谈教育湘美书院考古教育系列:湖南史前文化序列整理
大数据·数据库·人工智能·深度学习·神经网络·机器学习
IT策士20 分钟前
Redis 从入门到精通:内存管理与淘汰策略
数据库·redis·缓存
承渊政道22 分钟前
【MySQL数据库学习】(MySQL内置函数)
数据库·学习·mysql·ubuntu·bash·数据库开发·数据库系统
weixin_3077791323 分钟前
在 Azure 上构建数据库路由与异构整合层:原理、方案与最佳实践
数据库·人工智能·后端·云计算·azure
爱基百客25 分钟前
植物单细胞配受体数据库:PlantCellChatDB详解
数据库·单细胞·单细胞分析
A.说学逗唱的Coke9 小时前
【大模型专题】向量数据库深度解析:从原理到实战,构建企业级 AI 知识检索底座
数据库·人工智能