sql练习
链接: link.
创建database;
create database student;
创建table;
create table student(
学号 VARCHAR(20) NOT NULL PRIMARY KEY,
姓名 VARCHAR(20) NOT NULL,
出生日期 NOT NULL,
性别 datetime
);
create table score(
学号 VARCHAR(255) NOT NULL,
课程号 VARCHAR(255) NOT NULL,
成绩 FLOAT(3) NOT NULL
);
alter table score add primary key (学号,课程号);
create table course(
课程号 VARCHAR(255) NOT NULL PRIMARY KEY,
课程名称 VARCHAR(255) NOT NULL,
教师号 VARCHAR(255) NOT NULL
);
create table teacher(
教师号 VARCHAR(20) NOT NULL PRIMARY KEY,
教师姓名 VARCHAR(20)
);
修改表和列的编码为utf-8, 添加数据
student
修改数据表编码:
alter table score default character set utf8;
show create table score; 查看编码
alter table score change 学号 学号 varchar(20) character set utf8;
alter table score change 课程号 课程号 varchar(20) character set utf8;
alter table score change 成绩 成绩 varchar(20) character set utf8;
show create table score; 查看编码
insert into student(学号,姓名,出生日期,性别)
values('0001' , '猴子' , '1989-01-01' , '男');
insert into student(学号,姓名,出生日期,性别)
values('0002' , '猴子' , '1990-12-21' , '女');
insert into student(学号,姓名,出生日期,性别)
values('0003' , '马云' , '1991-12-21' , '男');
insert into student(学号,姓名,出生日期,性别)
values('0004' , '王思聪' , '1990-05-20' , '男');
2)成绩表(score)
alter table score default character set utf8;
show create table score; 查看编码
alter table score change 学号 学号 varchar(20) character set utf8;
alter table score change 课程号 课程号 varchar(20) character set utf8;
alter table score change 成绩 成绩 varchar(20) character set utf8;
show create table score; 查看编码
insert into score(学号,课程号,成绩)
values('0001' , '0001' , 80);
insert into score(学号,课程号,成绩)
values('0001' , '0002' , 90);
insert into score(学号,课程号,成绩)
values('0001' , '0003' , 99);
insert into score(学号,课程号,成绩)
values('0002' , '0002' , 60);
insert into score(学号,课程号,成绩)
values('0002' , '0003' , 80);
insert into score(学号,课程号,成绩)
values('0003' , '0001' , 80);
insert into score(学号,课程号,成绩)
values('0003' , '0002' , 80);
insert into score(学号,课程号,成绩)
values('0003' , '0003' , 80);
course
alter table course default character set utf8;
alter table course change 课程名称 课程名称 varchar(20) character set utf8;
alter table course change 课程号 课程号 varchar(20) character set utf8;
alter table course change 教师号 教师号 varchar(20) character set utf8;
show create table course;
insert into course(课程号,课程名称,教师号)
values('0001' , '语文' , '0002');
insert into course(课程号,课程名称,教师号)
values('0002' , '数学' , '0001');
insert into course(课程号,课程名称,教师号)
values('0003' , '英语' , '0003');
teacher
alter table teacher default character set utf8;
alter table teacher change 教师姓名 教师姓名 varchar(20) character set utf8;
alter table teacher change 教师号 教师号 varchar(20) character set utf8;
show create table teacher;
-- 教师表:添加数据
insert into teacher(教师号,教师姓名)
values('0001' , '孟扎扎');
insert into teacher(教师号,教师姓名)
values('0002' , '马化腾');
-- 这里的教师姓名是空值(null)
insert into teacher(教师号,教师姓名)
values('0003' , null);
-- 这里的教师姓名是空字符串('')
insert into teacher(教师号,教师姓名)
values('0004' , '');
查询课程编号为“0002”的总成绩
select sum(成绩) from score where 课程号=‘0002’;
查询选了课程的学生人数
select count(distinct 学号) as 选课人数 from score;
查询各科成绩最高和最低的分, 以如下的形式显示:课程号,最高分,最低分
select 课程号, max(成绩) as 最高分, min(成绩) as 最低分 from score group by 课程号;