一.sql语句基础

1.顯示德國 Germany 的人口

SELECT population FROM world
 WHERE name = 'Germany'

2.查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總值

SELECT name, gdp/population FROM world
 WHERE area > 5000000

3.顯示“Ireland 愛爾蘭”,“Iceland 冰島”,“Denmark 丹麥”的國家名稱和人口。

SELECT name, population FROM world
 WHERE name IN ('Ireland', 'Iceland', 'Denmark');

4.顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。

SELECT name, area FROM world
 WHERE area BETWEEN 200000 AND 250000

二.文字样式匹配查询

1. 找出以 Y 為開首的國家。

SELECT
`name`
FROM
world
WHERE
`name` LIKE 'Y%'

找出以 Y 為結尾的國家。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%Y'

3. 找出所有國家,其名字包括字母x。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%x%'

4. 找出所有國家,其名字以 land 作結尾。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%land'

5. 找出所有國家,其名字以 C 作開始,ia 作結尾。

SELECT
`name`
FROM
world
WHERE
`name` LIKE 'C%ia'

6. 找出所有國家,其名字包括字母oo。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%oo%'

7. 找出所有國家,其名字包括三個或以上的a。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%a%a%a%'

8. 找出所有國家,其名字以t作第二個字母。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '_t%'
ORDER BY
`name`

9. 找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔着。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '%o__o%'

10. 找出所有國家,其名字都是 4 個字母的。

SELECT
`name`
FROM
world
WHERE
`name` LIKE '____'

11. 顯示所有國家名字,其首都和國家名字是相同的。

SELECT
`name`
FROM
world
WHERE
`name` = capital

12. 顯示所有國家名字,其首都是國家名字加上”City”。

SELECT
`name`
FROM
world
WHERE
capital = concat(
`name`,
' City'
)

13. 找出所有首都和其國家名字,而首都要有國家名字中出現。

SELECT
capital,
`name`
FROM
world
WHERE
capital LIKE concat(
'%',
`name`,
'%'
)

14. 找出所有首都和其國家名字,而首都是國家名字的延伸。

SELECT
`name`,
capital
FROM
world
WHERE
capital LIKE concat( `name`, '%' )
AND (capital != `name`)

15. 顯示國家名字,及其延伸詞,如首都是國家名字的延伸。

SELECT
`name`,
REPLACE ( capital, `name`, '' ) AS ext
FROM
world
WHERE
capital LIKE concat( `name`, '%' )
AND (capital != `name`)

三.SELECT from WORLD Tutorial

觀察運行一個簡單的SQL命令的結果。

`SELECT name, continent, population FROM world`

顯示具有至少2億人口的國家名稱。 2億是200000000,有八個零。

SELECT name FROM world
WHERE population > 200000000

找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。

SELECT name,gdp/population FROM world
WHERE population > 200000000

顯示’South America’南美洲大陸的國家名字和以百萬為單位人口數。將人口population 除以一百萬(1000000)得可得到以百萬為單位人口數。

SELECT name, population/1000000 FROM world
WHERE continent = 'South America'

顯示法國,德國,意大利(France, Germany, Italy)的國家名稱和人口。

SELECT name, population FROM world
WHERE name IN ('France','Germany','Italy')

顯示包含單詞“United”為名稱的國家。

SELECT name FROM world
WHERE name LIKE '%United%'

成為大國的兩種方式:如果它有3百萬平方公里以上的面積,或擁有250百萬(2.5億)以上人口。

SELECT name, population, area FROM world
WHERE area > 3000000 OR population > 250000000

美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。

SELECT name, population, area FROM world
WHERE (area > 3000000 AND population < 250000000) OR(area < 3000000 AND population > 250000000)

除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。

SELECT name, ROUND(population/1000000, 2), ROUND(gdp/1000000000, 2) FROM world
WHERE continent = 'South America'

顯示國家有至少一個萬億元國內生產總值(萬億,也就是12個零)的人均國內生產總值。四捨五入這個值到最接近1000。

SELECT name, ROUND(gdp/population/1000)*1000 FROM world
WHERE gdp > 1000000000000

四.SUM and COUNT 群组函数

1.展示世界的總人口。

SELECT SUM(population)
FROM world

2.列出所有的洲份, 每個只有一次。

SELECT DISTINCT(continent)
FROM world

3.找出非洲(Africa)的GDP總和。

SELECT SUM(gdp)
FROM world
WHERE continent = 'Africa'

4.有多少個國家具有至少百萬(1000000)的面積。

SELECT COUNT(name)
FROM world
WHERE area > 1000000

5.(‘France’,‘Germany’,‘Spain’)(“法國”,“德國”,“西班牙”)的總人口是多少?

SELECT SUM(population)
FROM world
WHERE name IN ('France', 'Germany', 'Spain')

6.對於每一個洲份,顯示洲份和國家的數量。

SELECT continent, COUNT(name)
FROM world
GROUP BY continent

7.對於每一個洲份,顯示洲份和至少有1000萬人(10,000,000)口國家的數目。

SELECT continent, COUNT(name)
FROM world
WHERE population > 10000000
GROUP BY continent

8.列出有至少100百萬(1億)(100,000,000)人口的洲份。

SELECT continent
FROM world
GROUP BY continent
HAVING SUM(population)>= 100000000

五.JOIN 合并两个表格

1.修改此SQL以列出 賽事編號matchid 和球員名 player ,該球員代表德國隊Germany入球的。要找出德國隊球員,要檢查: teamid = ‘GER’

SELECT matchid, player FROM goal
WHERE teamid LIKE 'GER'

2.只顯示賽事1012的 id, stadium, team1, team2

SELECT id,stadium,team1,team2
FROM game
WHERE id = 1012

3.修改它來顯示每一個德國入球的球員名,隊伍名,場館和日期。

SELECT player, teamid, stadium, mdate
FROM game ga JOIN goal go ON (ga.id = go.matchid)
WHERE teamid LIKE 'GER'

4.列出球員名字叫Mario (player LIKE ‘Mario%’)有入球的 隊伍1 team1, 隊伍2 team2 和 球員名 player

SELECT team1, team2, player
FROM game ga JOIN goal go ON (ga.id = go.matchid)
WHERE player LIKE 'Mario%'

5.列出每場球賽中首10分鐘gtime<=10有入球的球員 player, 隊伍teamid, 教練coach, 入球時間gtime

SELECT player, teamid, coach, gtime
FROM eteam e JOIN goal g ON (e.id = g.teamid)
WHERE gtime < 10

6.列出’Fernando Santos’作為隊伍1 team1 的教練的賽事日期,和隊伍名。

SELECT mdate, teamname
FROM eteam e JOIN game g ON (e.id = g.team1)
WHERE coach = 'Fernando Santos'

7.列出場館 'National Stadium, Warsaw’的入球球員。

SELECT player
FROM game ga JOIN goal go ON (ga.id = go.matchid)
WHERE stadium = 'National Stadium, Warsaw'

8.列出全部賽事,射入德國龍門的球員名字。

SELECT DISTINCT(player)
FROM game ga JOIN goal go ON (ga.id = go.matchid)
WHERE teamid!='GER' AND (team1 = 'GER' OR team2 = 'GER')

9.列出隊伍名稱 teamname 和該隊入球總數

SELECT teamname, COUNT(teamid)
FROM goal g JOIN eteam e ON (g.teamid= e.id)
GROUP BY teamname

10.列出場館名和在該場館的入球數字。

SELECT stadium, COUNT(player)
FROM game ga JOIN goal go ON (ga.id= go.matchid)
GROUP BY stadium

11.列出賽事編號 matchid, 日期date 和入球數字。

SELECT matchid, mdate, COUNT(teamid)
FROM game ga JOIN goal go ON (ga.id= go.matchid)
WHERE (ga.team1 = 'POL' OR ga.team2 = 'POL')
GROUP BY matchid, mdate

12.列出賽事編號 matchid, 日期date 和德國的入球數字。

SELECT matchid, mdate, COUNT(teamid)
FROM game ga JOIN goal go ON (ga.id= go.matchid)
WHERE (ga.team1 = 'GER' OR ga.team2 = 'GER') AND teamid = 'GER'
GROUP BY matchid, mdate

数据库 MySQL 练习的更多相关文章

  1. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  2. Robot Framework-DatabaseLibrary数据库(MySql)

    Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...

  3. paip.导入数据英文音标到数据库mysql为空的问题之道解决原理

    paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙,  E ...

  4. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

  5. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递

    http://niuzhenxin.iteye.com/blog/1706203   Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...

  6. 数据库MySQL多个数据库服务冲突

    一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭  —— 注意:如果防火墙不关闭 ...

  7. paip.将数据导入到在英语语音数据库mysql道路解决空原则问题

    paip.将数据导入到在英语语音数据库mysql道路解决空原则问题 #---原因:mysql 导入工具bug #---解决:不要使用双引号括注音. 笔者 老哇爪 Attilax 艾龙.  EMAIL: ...

  8. Yii Framework2.0开发教程(5)数据库mysql性能

    继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...

  9. cpanel导入大数据库(mysql)的方法

    phpmyadmin是一件很方便的在线管理MySQL数据库的工具,但对于较大的数据库的导出和导入却很容易出错.特别是导入工作,通常5M已经是它的极限了.这里,主要介绍一下如何通过cPanel导入大型的 ...

  10. 前端学习数据库MYSQL

    这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...

随机推荐

  1. war 和 war exploded

    IDEA 开发项目时,部署 tomcat 的 Deployment 选项出现: war 模式 可以称之为发布模式.先将 WEB 工程打成 war 包,然后再将其上传到服务器进行发布. war expl ...

  2. Selenium系列(二十) - PageObject模式的详细介绍

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  3. 学习笔记-EL

    仅作为学习过程中笔记作用,若有不正确的地方欢迎指正 目标 理解El的作用,熟练使用EL EL表达式与Jsp表达式对比来记 EL表达式的概念,作用,语法 Jsp作用主要是用来实现动态网页的,而动态网页中 ...

  4. Django-CBV&FBV

    django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. urls.py from django.conf.u ...

  5. Java 中的递归

    递归 递归 一种通过调用某个方法来描述需要重复进行的操作.该方法的特点就是可以自己调用自己. 案例一 排队的问题 在生活中,我们经常需要排队.在排队中,我们怎么才能知道自己所排在第几位呢? 我们也许会 ...

  6. markdown中锚链接实现目录跳转以及注意事项

    当文章有分类,需要快速阅读,通常会先在文首部写一个目录,点击可以跳转. 为文章写目录,特别在文章较长的时候,有助于对内容的整体把握,能提高阅读效率. 以下,将写一个基本的锚目录demo,然后特别说明需 ...

  7. git 为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

    情况是这样的,现在远程有一个仓库,分支就一个,是master.然后我本地的仓库是从远程的master上clone下来的.大家都是clone下来,再在自己本地改好,再commit然后pull然后push ...

  8. Vue引用阿里图标库

    首先进入官网http://www.iconfont.cn/ 转载:https://blog.csdn.net/qq_34802010/article/details/81451278 选择图标库 在里 ...

  9. grub2手动引导linux

    仅需要三个命令 1.set root=(hd*,gpt*) hd*为系统所在磁盘,从0开始: gpt为磁盘分区表格式,*为第几分区,mbr分区表为msdos*: 2.linux /boot/vmlin ...

  10. JAVA中的==和equals()的区别

    一.先来说说Java的基本数据类型和引用类型 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char,其中占一个字节的是byte,short和ch ...