-- 第一题
CREATE TABLE BBc1(
NAME VARCHAR(10),
region VARCHAR(10),
AREA NUMERIC(10,2),
population NUMERIC(18),
gdp NUMERIC(18)
);
-- 插入中国
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('中国','亚洲',960,1200000000,1002800000000);
-- 插入美国
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('美国','北美洲',937,300000000,1752800000000);
-- 插入日本
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('日本','亚洲',37,125000000,484600000000);
-- 插入德国
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('德国','欧洲',35,81640000,379400000000);
-- 插入英国
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('英国','欧洲',24,58800000,282800000000);
-- 插入巴西
INSERT INTO BBc1 (NAME,region,AREA,population,gdp) VALUES ('巴西','南美洲',854,160000000,221600000000);
-- 查看bbc1表
SELECT * FROM bbc1;
Renderings
-- 查询出所有国家的平均人口。平均GDP。
SELECT SUM(b.`population`)/COUNT(*) AS 所有国家的平均人口,SUM(b.gdp)/COUNT(*) AS 所有国家的gdp FROM bbc1 b ;
Renderings
-- 查询出人口最少的国家的人数。
SELECT b.`NAME`,b.`population` FROM bbc1 b ORDER BY b.`population` LIMIT 0,1 ;
Renderings
-- 查询出GDP最多的国家的GDP
SELECT b.`gdp`,b.`NAME` FROM bbc1 b ORDER BY b.`gdp` DESC LIMIT 0,1;
Renderings
-- 查询出各大洲的国家有几个。人口总数是多少,总GDP是多少。
SELECT b.`region`,COUNT(*) ,SUM(b.`population`) AS 人口总数,SUM(b.`gdp`) AS 总GDP FROM bbc1 b GROUP BY b.`region`;
Renderings
-- 第二题
CREATE TABLE nobe2(
ID INT PRIMARY KEY AUTO_INCREMENT ,
yr NUMERIC(4),
SUBJECT VARCHAR (10),
winner VARCHAR(10),
AREA VARCHAR(10)
);
-- 插入张三
INSERT INTO nobe2 VALUES (NULL,2000,'java','张三','中国');
-- 插入李四
INSERT INTO nobe2 VALUES (NULL,2001,'c++','李四','中国');
-- 插入王五
INSERT INTO nobe2 VALUES (NULL,2002,'c','王五','日本');
-- 插入赵六
INSERT INTO nobe2 VALUES (NULL,2002,'java','赵六','日本');
-- 插入刘八
INSERT INTO nobe2 VALUES (NULL,2002,'c','刘八','美国');
-- 插入罗九
INSERT INTO nobe2 VALUES (NULL,2002,'c++','罗九','美国');
-- 插入朱十
INSERT INTO nobe2 VALUES (NULL,2003,'java','朱十','美国');
-- 插入陈十一
INSERT INTO nobe2 VALUES (NULL,2004,'足球','陈十一','美国');
-- 插入唐十二
INSERT INTO nobe2 VALUES (NULL,2005,'篮球','唐十二','美国');
-- 插入隔壁老王
INSERT INTO nobe2 VALUES (NULL,2006,'乒乓球','隔壁老王','美国');
-- 查看nobe2
SELECT * FROM nobe2;
Renderings
-- 查询出每年颁发的诺贝尔奖的个数。
SELECT b.`yr`,COUNT(*) FROM nobe2 b GROUP BY b.`yr`;
Renderings
-- 查询出得到诺贝尔奖个数超过2次的年份。
SELECT b.`yr` FROM nobe2 b GROUP BY b.`yr` HAVING COUNT(*)>2;
Renderings
-- 查询出各国,各年份获奖次数,并按获奖次数降序
SELECT b.`area`,b.`yr`,COUNT(*) AS 获奖次数 FROM nobe2 b GROUP BY b.`area`,b.`yr` ORDER BY COUNT(*) DESC;
Renderings
-- 查询出2002年之后获得奖项的国家.
SELECT b.`SUBJECT`,b.`area` FROM nobe2 b WHERE b.`yr`>2002 GROUP BY b.`SUBJECT`,b.`area`;
Renderings