一、实验目的
掌握SELECT语句的基本用法。掌握计算列的用法。掌握WHERE子句中各类查询条件的写法。
二、实验内容
1、在连接“MySQL”中新建数据库“world”,并将数据库文件world_inno.sql导入到该数据库之中
2、查询world数据库的country表中的国名(Name)、洲名(Continent)和地区(Region)。
步骤:点击“新建查询”,输入以下代码:
USE world;
SELECT NAME,Continent,Region From country;
点击执行,运行结果如下图所示:
3、从world数据库的city表中搜索返回前20条的数据。
步骤:点击“新建查询”,输入以下代码:
Use world;
SELECT * FROM city LIMIT 0,20;
其中,“LIMIT M,N”中的M表示从第M条(不包括M)开始
点击执行,结果如下图所示:
4、使用WHERE 子句从world 数据库的country表中检索出所有领土面积超过一百万平方公里的国家名称(Name)、洲名(Continent)以及领土面积(SurfaceArea)。
步骤:点击“新建查询”,输入以下代码:
Use world;
SELECT NAME,Continent,SurfaceArea
FROM country
WHERE SurfaceArea > 1000000
点击执行,结果如下图所示:
5、查询在world数据库的country表中Name以字母C开头的国家的洲名Continent,地区Region。
步骤:点击“新建查询”,输入以下代码:
Use world;
SELECT NAME,Continent,Region
FROM country
WHERE NAME like 'C%'
点击执行,运行结果如下图所示:
6、查询world数据库Country表中所有国家的Name和Condinent,并按生日SurfaceArea从小到大进行排列。
步骤:点击“新建查询”,输入以下代码:
Use world;
SELECT NAME,Continent,SurfaceArea
FROM country
ORDER BY SurfaceArea;
点击执行,运行结果如下图所示:
练习巩固
7、查询country表中政体(GovernmentForm)属于共和国(Republic)的国家的Name和Population、GovernmentForm。
Use world;
SELECT NAME,Population,GovernmentForm
FROM country
WHERE GovernmentForm = 'Republic'
8、country表中查询前20个非洲国家的名称。
Use world;
SELECT NAME
FROM country
WHERE Continent = 'Africa' limit 20
9、city表中查询阿富汗(Countrycode为AFG)的所有城市的名称和人口,并要求对查询结果按人口的降序排列。
Use world;
SELECT Name,Population
FROM city
WHERE CountryCode = 'AFG'
ORDER BY Population DESC
10、Country表中查询领土面积介于一百万和五百万平方公里之间的国家的名称和领土面积(领土面积以除以一万的结果显示)。
Use world;
SELECT NAME,SurfaceArea/10000
FROM country
WHERE SurfaceArea BETWEEN 1000000 and 5000000
11、查询名称以“C”开头的亚洲国家或非洲国家的名称和洲名
Use world;
SELECT NAME,Continent
FROM country
WHERE NAME like 'C%'
AND (Continent = 'Asia' OR Continent = 'Africa')
12、country表中查询独立年份为空的国家的名称、国家年份。
Use world;
SELECT NAME,IndepYear
FROM country
WHERE IndepYear is NULL
三、课后练习题
以下题目在数据库world中完成。
1、 查询country表中所有亚洲国家的名称、地区,要求查询结果按人口的升序排列。
Use world;
SELECT NAME,Continent
FROM country
ORDER BY Population
2、 查询city表中智利(CHL)或保加利亚(BGR)的城市名称。
Use world;
SELECT NAME
FROM city
WHERE CountryCode = 'CHL' or CountryCode = 'BGR'
3、 查询country表中Region字段包含“Europe”的国家的全部信息。
Use world;
SELECT *
FROM country
WHERE Region like '%Europe%'
4、 查询所有君主立宪制(Constitutional Monarchy)国家的名称和人口,按人口降序排列。
Use world;
SELECT NAME,Population
FROM country
WHERE GovernmentForm = 'Constitutional Monarchy'
ORDER BY Population DESC
四、出现的问题及解决方案
问题:
ORDER BY关键字降序排序问题
SQL AND & OR 运算符与优先级问题
WHERE语句的特殊条件——例如is null、between and、like模糊查询等问题
解决方案:
参考《数据库系统概论课本》、菜鸟教程(https://www.runoob.com/sql)和CSDN博客