二,上机实验:数据库基本操作

上机实验:MySQL的库、表与记录相关的操作

实验名称 MySQL的库、表与记录相关的操作

实验目的
1、掌握MySQL中的建库、建表基本操作;
2、掌握MySQL中各种数据增、删、改、查的相关操作。

上机重、难点
重点
1、掌握MySQL中的建库、建表基本操作;
2、掌握MySQL中各种数据增、删、改、查的相关操作。

难点
1、跨表查询;
2、分组查询;

上机要求
1、提前熟悉本次上机内容;
2、在做的过程中,务请记录下自己发现的一些问题及采取的解决办法;
3、上机后请大家完成本份上机实验报告并上传学习通,完成其中的上机内容、上机步骤操作记录及最后的收获与心得部分。

实验设备与
软件 设备 PC电脑或笔记本一台
软件 Wamp、ZendStudio

上机内容
任务1:创建学生成绩管理数据库score;

任务2:在score数据库中创建表1~表3,如下所示
表1 student表的表结构

字段名称数据类型长度是否允许NULL值说明
snochar10主键
snamevarchar8
ssexchar2取值:男或女
sbirthdaydate
saddressvarchar50

表2 course表(课程名称表)的表结构

字段名称数据类型长度是否允许NULL值说明
cnochar5主键
cnamevarchar20

表3 sc表(成绩表)的表结构

字段名称数据类型长度是否允许NULL值说明
snochar10组合主键,外键
cnochar5组合主键,外键
degreeint取值1~100

任务3:向表1~表3插入数据记录(自拟)

任务4:对任意一张表中的数据进行修改(自拟)

任务5:删除某张表中的记录(自拟)

任务6:数据查询
(1)查询学生表中所有男生信息

(2)统计学生表中男、女生人数

(3)查询选修了某门课程的学生的学号及其成绩,查询结果按分数降序排列(自拟)

(4)查询选修了某门课程的学生学号和姓名(自拟)




实操记录

此处完整写下任务1—任务6的SQL代码,并将运行结果截图粘贴到相应任务下。

任务1:创建学生成绩管理数据库score;

create database if not exists score;
use score;
select database();

在这里插入图片描述

任务2:在score数据库中创建表1~表3

drop table if exists tbl_student;
create table tbl_student(
    sno char(10) not null comment '学生学号',
    sname varchar(8) null comment '学生名字',
    ssex char(2) null comment '性别',
    sbirthday date null comment '出生日期',
    saddress varchar(50) null comment '地址',
    constraint chk_ssex check (ssex in ('男','女')),
    primary key (sno)
);

drop table if exists tbl_course;
create table tbl_course(
    cno char(5) not null comment '课程号',
    cname varchar(20) not null comment '课程名',
    primary key (cno)
);

drop table if exists tbl_sc;
create table tbl_sc(
    sno char (10) not null comment '学生编号',
    cno char (5) not null comment '课程号',
    degree int null check (degree between 1 and 100) comment '成绩',
    primary key (sno, cno),
    foreign key (sno) references tbl_student(sno),
    foreign key (cno) references tbl_course(cno)
);

show tables;
desc tbl_student;
desc tbl_course;
desc tbl_sc;

在这里插入图片描述

在这里插入图片描述

任务3:向表1~表3插入数据记录(自拟)

insert into tbl_student (sno, sname, ssex, sbirthday, saddress) values
('2302150601', 'ZD', '男', '2001-01-01', '广东省珠海市'),
('2302150602', 'LQT', '男', '2001-01-01', '广东省珠海市'),
('2302150603', 'DRB', '男', '2001-01-01', '广东省汕尾市'),
('2302150604', 'LJJ', '男', '2001-01-01', '广东省梅州市');

insert into tbl_course (cno, cname) values
('23001', '计算机系统'),
('23002', '数据结构'),
('23003', 'Java');

insert into tbl_sc (sno, cno, degree) values
('2302150601', '23001', '99'),
('2302150601', '23002', '95'),
('2302150601', '23003', '90'),
('2302150602', '23001', '90'),
('2302150602', '23002', '98'),
('2302150602', '23003', '100'),
('2302150603', '23001', '97'),
('2302150603', '23002', '90'),
('2302150603', '23003', '96'),
('2302150604', '23001', '91'),
('2302150604', '23002', '97'),
('2302150604', '23003', '96');
select sno, sname, ssex, sbirthday, saddress from tbl_student;
select cno, cname from tbl_course;
select sno, cno, degree from tbl_sc;

在这里插入图片描述

在这里插入图片描述

任务4:对任意一张表中的数据进行修改(自拟)

update tbl_student set sbirthday='2024-01-01' where sno='2302150601';
update tbl_student set sbirthday='2024-01-03' where sno='2302150602';
update tbl_student set sbirthday='2024-01-04' where sno='2302150603';
update tbl_student set sbirthday='2024-01-05' where sno='2302150604';
select sno,sname, ssex, sbirthday, saddress from tbl_student;

在这里插入图片描述

任务5:删除某张表中的记录(自拟)

delete from tbl_sc where sno='2302150601' and cno='23001';
delete from tbl_sc where sno='2302150601' and cno='23002';
select sno, cno, degree from tbl_sc;

在这里插入图片描述

任务6:数据查询

(1)查询学生表中所有男生信息
select * from tbl_student where ssex like '男';

在这里插入图片描述

(2)统计学生表中男、女生人数
select ssex,
count(*) as student_count
from tbl_student
where ssex in ('男', '女')
group by ssex; 

在这里插入图片描述

(3)查询选修了某门课程的学生的学号及其成绩,查询结果按分数降序排列(自拟)
select tbl_student.sno, degree
from tbl_student
join tbl_sc on tbl_student.sno = tbl_sc.sno
where tbl_sc.cno = '23003'
order by tbl_sc.degree desc;

在这里插入图片描述

(4)查询选修了某门课程的学生学号和姓名(自拟)
select tbl_student.sno, tbl_student.sname
from tbl_student
join tbl_sc on tbl_student.sno = tbl_sc.sno
where tbl_sc.cno = '23002';

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值