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 '湖南%';

相关推荐
armcsdn40 分钟前
基于Docker Compose部署Traccar容器与主机MySQL的完整指南
mysql·docker·容器
睿思达DBA_WGX40 分钟前
由 DB_FILES 参数导致的 dg 服务器无法同步问题
运维·数据库·oracle
袋鼠云数栈2 小时前
使用自然语言体验对话式MySQL数据库运维
大数据·运维·数据库·后端·mysql·ai·数据治理·数栈·data+ai
渣渣盟2 小时前
掌握MySQL函数:高效数据处理指南
sql·mysql·adb·dba
阿里云大数据AI技术2 小时前
数据 + 模型 驱动 AI Native 应用发展
大数据·数据库·人工智能
铅笔侠_小龙虾3 小时前
Docker 实战 -- Mysql
mysql·docker·容器
??? Meggie3 小时前
【SQL】使用UPDATE修改表字段的时候,遇到1054 或者1064的问题怎么办?
android·数据库·sql
一屉大大大花卷3 小时前
初识Neo4j之图数据库(二)
数据库·neo4j
天翼云开发者社区3 小时前
OLAP分析数据库适用场景及主流产品对比
数据库
Britz_Kevin3 小时前
从零开始的云计算生活——番外2,MySQL组复制
数据库·mysql·云计算·生活·#组复制