astak16/blog-mysql

10 大的国家

Opened this issue · 0 comments

题目

编写一个 SQL 查询报告大国的国家名称、人口和面积。

满足下述任一条件之一,记为大国:

  • 面积至少为 300 万平方公里(3000000 km²)
  • 人口至少为 2500 万(25000000)
create table world (
	name varchar(255),
	continent varchar(255),
	area int,
	population int,
	gdp bigint
);

insert world values
('afghanistan', 'asia', 652230, 25500100, 2034000000),
('albania', 'europe', 28748, 2831741, 12960000000),
('algeria', 'africa', 2381741, 37100000, 188681000000),
('andorra', 'europe', 468, 78115, 3712000000),
('angola', 'africa', 1246700, 20609294, 100990000000);

SQL:方法一

select name, population, area from world where
area >= 3000000 or population >= 25000000;

解析

使用 or 连接两个条件

SQL

select name, population, area from world where area >= 3000000
union
select name, population, area from world where population >= 25000000;

解析

将两个条件分别查询,使用 union 将两次查询连接起来。