MySQL小练习(仅适合初学者,非初学者勿进)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 查询各位学生的学号、班级和姓名查询课程的全部信息查询数据库中有哪些专业班级查询学时大于60的课程信息查询出生在1986年出生的学生的学号、姓名和出生日期查询三次作业成绩都在80分以上的学号、课程号查询姓张的学生的学号、姓名和专业班级查询05级的男生信息查询没有作业成绩的学号和课程号 查询学号为0538的学生的作业1总分查询选修了K001课程的学生人数 查询数据库中共有多少个班级查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分

题目:

查询各位学生的学号、班级和姓名


查询课程的全部信息


查询数据库中有哪些专业班级


查询学时大于60的课程信息


查询出生在1986年出生的学生的学号、姓名和出生日期


查询三次作业成绩都在80分以上的学号、课程号


查询姓张的学生的学号、姓名和专业班级


查询05级的男生信息


查询没有作业成绩的学号和课程号


查询学号为0538的学生的作业1总分


查询选修了K001课程的学生人数


查询数据库中共有多少个班级


查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分





1.创建数据库

create database  if not exists  db2 ;



好了创建成功 ,然后我们打开控制台



2.创建表


1.创建学生表



分析:


学号:字符型


姓名:字符型


性别:字符型 性别是一个字 所以 varchar(1)


专业班级:字符型


出生日期:时间类型 date  


联系电话:字符型    电话号码11位  varchar(11)即可。





drop table if exists student;
create table student
(
    id     varchar(10) comment '学号',
    name   varchar(10) NOT NULL comment '姓名',
    gender char(1) comment '性别',
    class  varchar(20) comment '专业班级',
    date   date comment '出生日期',
    iphone varchar(11) comment '联系电话'
)
    comment '学生表';
select * from student;


2.创建课程表


drop table if exists student_course;
create table student_course
(
    course_id     varchar(10)  comment '课程号',
    course_name   varchar(15) comment '课程名',
    course_number double unsigned comment '学分数',
    student_time  int unsigned comment '学时数',
    teacher       varchar(10) comment '任课教师'
)
    comment '课程表';
select *
from student_course;


3.学生作业表


drop table if exists student_homework;
create table student_homework
(
    course_id  varchar(10) comment '课程号',
    id      varchar(10)    comment '学号',
    homework_1 int comment '作业1成绩',
    homework_2 int comment '作业2成绩',
    homework_3 int comment '作业3成绩'
)
    comment '学生作业表';
select *
from student_homework;



3.添加数据

照着图片上的数据一个个打出来的,呜呜呜


1.学生表

insert into student
values ('0433', '张艳', '女', '生物04', '1986-9-13', null),
       ('0496', '李越', '男', '电子04', '1984-2-23', '1381290xxxx'),
       ('0529', '赵欣', '男', '会计05', '1984-1-27', '1350222xxxx'),
       ('0531', '张志国', '男', '生物05', '1986-9-10', '1331256xxxx'),
       ('0538', '于兰兰', '女', '生物05', '1984-2-20', '1331200xxxx'),
       ('0591', '王丽丽', '女', '电子05', '1984-3-20', '1332080xxxx'),
       ('0592', '王海强', '男', '电子05', '1986-11-1', null);

查询一下:

select * from student;

4.开始做题


1.查询各位学生的学号、班级和姓名


2.课程表


INSERT INTO student_course
values ('K001', '计算机图形学', 2.5, 40, '胡晶晶'),
       ('K002', '计算机应用基础', 3, 48, '任泉'),
       ('K006', '数据结构', 4, 64, '马跃先'),
       ('M001', '政治经济学', 4, 64, '孔繁新'),
       ('S001', '高等数学', 3, 48, '赵晓尘');

查询一下:

select *
from student_course;


3.学生作业表



insert into student_homework values
('K001','0433',60,75,75),
('K001','0529',70,70,60),
('K001','0531',70,80,80),
('K001','0591',80,90,90),
('K002','0496',80,80,90),
('K002','0529',70,70,85),
('K002','0531',80,80,80),
('K002','0538',65,75,85),
('K002','0592',75,85,85),
('K006','0531',80,80,90),
('K006','0591',80,80,80),
('M001','0496',70,70,80),
('M001','0591',65,75,75),
('S001','0531',80,80,80),
('S001','0538',60,null,80);

查询一下:

select *
from student_homework;


4.开始做题


1.查询各位学生的学号、班级和姓名

select id,class,name from student;


2.查询课程的全部信息

select *
from student_course;


3.查询数据库中有哪些专业班级

select  class from student;


4.查询学时大于60的课程信息

select course_id,course_name from student_course where student_time>60;

 


5.查询出生在1986年出生的学生的学号、姓名和出生日期

select id,name,date from student where date>=('1986-1-1') AND date<('1987-1-1');

 


6.查询三次作业成绩都在80分以上的学号、课程号


一开始我是用这个查询了一遍:


select * from student_homework where homework_1>80 and homework_2>80 and homework_3>80;


7.查询姓张的学生的学号、姓名和专业班级


错误示范:


由于几百年没写SQL了, 我竟然写成(给自己一巴掌):

select id,name,class from  student where name = '张%';
select id,name,class from  student where name like '张%';


8.查询05级的男生信息

select * from student where class like '%05' and gender='男';


9.查询没有作业成绩的学号和课程号

select id,course_id from student_homework where homework_1 is null or homework_2 is null or homework_3 is null ;


10.查询学号为0538的学生的作业1总分

select sum(homework_1) '总分' from student_homework where id='0538';


11.查询选修了K001课程的学生人数

select count(*) from student_homework where course_id='K001';


12.查询数据库中共有多少个班级

select count(*) from student where class is not null ;


13.查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分


select student.id, avg(homework_1), avg(homework_2), avg(homework_3)
from student
         left join student_homework on student.id = student_homework.id
group by student.id
having count(course_id) >= 3;

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
MySQL数据库子查询练习——EXISTS(存在)
MySQL数据库子查询练习——EXISTS(存在)
285 1
|
关系型数据库 MySQL 数据挖掘
MySQL窗口函数详解(概念+练习+实战)
MySQL窗口函数详解(概念+练习+实战)
3041 2
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列15、电子邮件管理系统
MySQL数据库基础练习系列15、电子邮件管理系统
186 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列14、博客后台管理系统
MySQL数据库基础练习系列14、博客后台管理系统
199 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列13、用户注册与登录系统
MySQL数据库基础练习系列13、用户注册与登录系统
251 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列12、论坛管理系统
MySQL数据库基础练习系列12、论坛管理系统
209 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列11、新闻发布系统
MySQL数据库基础练习系列11、新闻发布系统
150 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列10、访客登记系统
MySQL数据库基础练习系列10、访客登记系统
271 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列9、在线投票系统
MySQL数据库基础练习系列9、在线投票系统
192 1
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列8、成绩录入与分析系统
MySQL数据库基础练习系列8、成绩录入与分析系统
207 1

推荐镜像

更多