MySQL数据库应用技术实验八 表数据的高级查询.docx
MySQL数据库应用技术实验八 表数据的高级查询实验八 表数据的高级查询实验学时:2学时实验类型:设计实验要求:必做一、实验目的本实验的目的是使学生熟练掌握MySQL查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。二、实验内容在数据库world中完成以下操作。1、 查询所有国家名称及相应的城市、语言。 USE world;SELECT country.Name,city.Name,countrylanguage.LanguageFROM country,city,countrylanguageWHERE country.Code= city.CountryCodeAND city.CountryCode = countrylanguage.CountryCode;2、 查询国家政体为共和国且国家人口在一千万以上的城市的名称和城市人口、所属国家。USE world;SELECT city.Name,city.Population,country.NameFROM country,cityWHERE city.CountryCode = country.CodeAND country.Population > 10000000;3、 统计country表中共和国政体的国家数。 USE world;SELECT COUNT(Code)FROM countryWHERE GovernmentForm = 'Republic'4、 统计country表中共和国政体国家的平均人口。 USE world;SELECT AVG(Population)FROM countryWHERE GovernmentForm = 'Republic'5、 统计countrylanguage表中官方语言数。 USE world;SELECT COUNT(CountryCode)FROM countrylanguageWHERE IsOfficial = 'T'6、 分组统计country表中各政体的国家个数。 USE world;SELECT GovernmentForm,count(*) FROM country GROUP BY GovernmentForm;7、 分组统计各大洲平均每国人口数。 USE world;SELECT Continent,AVG(Population) FROM country GROUP BY Continent;8、查询有超过两条城市记录的国家的名称。USE world;SELECT country.Name FROM city,countryWHERE city.CountryCode = country.Code GROUP BY city.CountryCodeHAVING COUNT(city.Name) > 2;9、查询非共和政体的国家的名称和政体。 USE world;SELECT Name,GovernmentFormFROM countryWHERE GovernmentForm <> 'Republic'10、查询独立年份未知的国家的缩写和名称USE world;SELECT Code,NameFROM countryWHERE IndepYear IS NULL; 11、查询欧洲国民生产总值GNP排名前20的国家名称及GNP值USE world;SELECT Name,GNPFROM countryWHERE Continent = 'Europe'ORDER BY GNP DESCLIMIT 0,20;11、查询平均每国人口数高于非洲的大洲名称及该平均数,以平均数的降序排列。USE world;SELECT Continent,AVG(Population)FROM countryGROUP BY ContinentHAVING AVG(Population) > (SELECT AVG(Population) FROM country WHERE Continent = 'Africa')ORDER BY AVG(Population) DESC;12、查询city表中多于3个城市记录且缩写以“A”开头的国家的名称和城市平均人口,以平均人口的升序排列。 USE world;SELECT city.CountryCode,country.Name,AVG(city.Population) FROM city,countryWHERE city.CountryCode LIKE 'A%'AND city.CountryCode = country.Code GROUP BY city.CountryCodeHAVING COUNT(city.Name) > 3ORDER BY AVG(city.Population);三、课后练习题1、建立名为SPJ的数据库。它包括S、P、J、SPJ 4个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。今有若干数据如下:S表 P表 J表 SPJ表第28题在数据库SPJ中完成。2、查询重量最轻的零件的零件代码。3、查询由供应商S1提供零件的工程项目名。4、查询同时为工程J1和J2提供零件的供应商代码。5、查询为位于上海的工程提供零件的供应商代码。6、查询同时为位于上海或北京的工程提供红色零件的供应商代码。7、查询供应商和工程所在城市相同的供应商能提供的零件代码。8、查询上海供应商不提供任何零件的工程代码。