bbc表示是全球国家概况信息
CREATE DATABASE Globe;--
Globe是地球仪的意思不用在意 自己取的名字
USE DATABASE Globe;
CREATE TABLE bbc ( NAME VARCHAR(50) PRIMARY KEY NOT
NULL, -- 国家名称
region VARCHAR(60)
, -- 国家所处地区
AREA DECIMAL(10)
, --
面积
population
DECIMAL(11)
, -- 人口
gdp
DECIMAL(14) --
国民生产总值
) ;
-- 数据太多了就写一条吧
insert into bbc values
('China','Asia-Pacific',9600000,1300000000,1677000000000);
。。。
-- 1. 显示世界人口总和.
SELECT SUM(population) FROM bbc;
-- 2. 列出所有的地区,但每个地区只能显示一次.
SELECT DISTINCT region FROM bbc;
-- 同时也可以使用 GROUP BY 来做这道题。如:
SELECT
region FROM bbc GROUP BY region;
-- 3. 显示GDP超过所有Africa(非洲)国家总和的国家.
SELECT NAME FROM bbc
WHERE gdp>(SELECT SUM(gdp) FROM
bbc WHERE region='Africa')
-- 4. 显示每个地区以及的该地区的国家总数.
SELECT COUNT(NAME) 国家总数,region FROM bbc GROUP BY region;
-- 5.显示每个地区的总人口数和总面积,以总人口来排序。
SELECT SUM(AREA) 总面积, SUM(population) 总人口数 FROM bbc GROUP BY
region
ORDER BY SUM(population)
总人口数;
-- 6.
显示每个地区以及的该地区国家总人口数不少于1000万的国家总数.
SELECT region,COUNT(NAME)
FROM bbc GROUP BY region HAVING
SUM(population)>=10000000;
-- 7.列出人口总数不少于1亿的地区.
SELECT region FROM bbc GROUP BY region HAVING
SUM(population)>=100000000;
-- 8.显示欧洲的人口总数和总GDP.
SELECT
SUM(population),SUM(gdp) FROM bbc WHERE region='Europe' ;
--
9.显示每个地区的总人口数和总面积.以总人口来排序.仅显示那些面积超过1000000的地
SELECT
region,SUM(population),SUM(AREA) FROM bbc
GROUP
BY region HAVING SUM(AREA)>1000000 ORDER BY
SUM(population) DESC;
nobel(诺贝尔)表是诺贝尔奖基本信息
create database Explosives;-- Explosives是炸药的意思 诺贝尔和炸药有关嘛 自己随便取
use Explosives;
create
table nobel(
yr
int, -- 得奖年份
Subject
varchar(15), -- 奖项
winner varchar(50) -- 获奖人
);
-- 数据也有点多 不方便一一打出来 以一条为例
insert into nobel values
(2005,'Physics','Theodor W. H?¤ch');-- 获奖人名字有奇怪的没事 不影响
。。。
-- 1.给出诺贝尔获奖总人数
SELECT COUNT(winner) FROM nobel;
-- 2.给出诺贝尔物理奖(Physics)的获奖总次数
SELECT COUNT(SUBJECT) FROM nobel WHERE SUBJECT='Physics';
-- 3.显示每个奖项的获奖总次数
SELECT SUBJECT,COUNT(SUBJECT) FROM nobel GROUP BY
SUBJECT;
-- 4.显示每个奖项第一次获得该奖的年份
SELECT SUBJECT,MIN(yr) FROM nobel GROUP BY
SUBJECT;
-- 5.显示每个奖项在2000年获奖的人数
SELECT SUBJECT,COUNT(winner) FROM
nobel WHERE yr=2000 GROUP BY SUBJECT
-- 6.显示每个奖项不同获奖者的人数
SELECT
SUBJECT,COUNT(DISTINCT winner) FROM nobel GROUP BY
SUBJECT;
-- 7.显示每个奖项有多少年获奖
SELECT SUBJECT,COUNT(DISTINCT yr) FROM nobel GROUP BY
SUBJECT;
-- 8.显示当年有三个物理奖(Physics)的年份
SELECT yr,COUNT(winner) FROM nobel WHERE SUBJECT='Physics'
GROUP BY yr HAVING COUNT(winner)=3;
-- 9.显示得奖超过一次的获奖者
SELECT winner FROM nobel GROUP BY winner HAVING
COUNT(SUBJECT)>1;
-- 10.显示得到多个奖项的获奖者
SELECT winner FROM nobel GROUP BY winner HAVING COUNT(DISTINCT
SUBJECT)>1;
--
11.显示2000年及以后,有三个人获得同一奖项的年份以及奖项
SELECT yr,SUBJECT FROM
nobel WHERE yr>=2000 GROUP BY yr,SUBJECT HAVING
COUNT(winner)=3;