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;