DataWhale SQL 组队打卡学习营【任务二】

作业

项目三

创建如下所示的courses 表 ,有 student (学生) 和 class (课程)。

create tables courses(
    student varchar(20),
    class varchar(20)
);

插入数据

insert into courses values('A''math');
insert into courses values('B''english');
insert into courses values('C''math');
insert into courses values('D''biology');
insert into courses values('E''math');
insert into courses values('F''computer');
insert into courses values('G''math');
insert into courses values('H''math');
insert into courses values('I''math');
insert into courses values('A''math');

得到如下表格:
DataWhale SQL 组队打卡学习营【任务二】_第1张图片
任务:编写一个 SQL 查询,列出所有超过或等于5名学生的课,学生在每个课中不被重复计算。

SELECT class,COUNT(*) FROM courses
GROUP BY class
HAVING COUNT(class)>5;

项目四

交换工资

创建一个 salary表,如下所示,有m=男性 和 f=女性的值 。
例如:

id name sex salary
1 A m 2500
2 B f 1500
3 C m 5500
4 D f 500

交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。

运行你所编写的查询语句之后,将会得到以下表:

id name sex salary
1 A f 2500
2 B m 1500
3 C f 5500
4 D m 500

建立表格并插入数据。

INSERT salary VALUE('1','A','f','2500');
INSERT salary VALUE('2','B','m','1500');
INSERT salary VALUE('3','C','f','5500');
INSERT salary VALUE('4','D','m','500');

交换所有的 f 和 m 值:

UPDATE salary SET sex='x' WHERE sex='m';
UPDATE salary SET sex='m' WHERE sex='f';
UPDATE salary SET sex='f' WHERE sex='x';

项目五

表联结:组合两张表

创建如下两张表
在这里插入图片描述
在这里插入图片描述
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, Stat

SELECT firstname,lastname,city,state FROM adress,person 
WHERE adress.personid=person.personid;

得到如下结果:

DataWhale SQL 组队打卡学习营【任务二】_第2张图片

项目六

删除重复邮箱

编写一个 SQL 查询,来删除 email 表中所有重复的电子邮箱,重复的邮箱里只保留 **Id ***最小 *的那个。

DELETE m1 
FROM mail as m1,mail as m2
WHERE m1.email=m2.email AND m1.id>m2.id;

你可能感兴趣的:(MySQL学习)