创建如下所示的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');
得到如下表格:
任务:编写一个 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;
得到如下结果:
编写一个 SQL 查询,来删除 email 表中所有重复的电子邮箱,重复的邮箱里只保留 **Id ***最小 *的那个。
DELETE m1
FROM mail as m1,mail as m2
WHERE m1.email=m2.email AND m1.id>m2.id;