数据库 MySQL 练习
一.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 练习的更多相关文章
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...
- Robot Framework-DatabaseLibrary数据库(MySql)
Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...
- paip.导入数据英文音标到数据库mysql为空的问题之道解决原理
paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙, E ...
- paip.解决 数据库mysql增加列 字段很慢添加字段很慢
paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6 数据仅仅3w alter table xxx add column yyy int default ...
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...
- 数据库MySQL多个数据库服务冲突
一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭 —— 注意:如果防火墙不关闭 ...
- paip.将数据导入到在英语语音数据库mysql道路解决空原则问题
paip.将数据导入到在英语语音数据库mysql道路解决空原则问题 #---原因:mysql 导入工具bug #---解决:不要使用双引号括注音. 笔者 老哇爪 Attilax 艾龙. EMAIL: ...
- Yii Framework2.0开发教程(5)数据库mysql性能
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...
- cpanel导入大数据库(mysql)的方法
phpmyadmin是一件很方便的在线管理MySQL数据库的工具,但对于较大的数据库的导出和导入却很容易出错.特别是导入工作,通常5M已经是它的极限了.这里,主要介绍一下如何通过cPanel导入大型的 ...
- 前端学习数据库MYSQL
这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...
随机推荐
- 【宇哥带你玩转MySQL】索引篇(一)索引揭秘,看他是如何让你的查询性能指数提升的
场景复现,一个索引提高600倍查询速度? 首先准备一张books表 create table books( id int not null primary key auto_increment, na ...
- 面试:给我说说你平时是如何优化MySQL的?
面试:给我说说你平时是如何优化MySQL的? 1.explain 在MySQL优化的时候.我们使用最多的是explain查看 SQL 的执行计划 类型 解释 type 连接类型.一个好的SQL语句至少 ...
- Django-on_delete
一.外键的删除 关于on_delete的总结 1.常见的使用方式(设置为null) class BookModel(models.Model): """ 书籍表 &quo ...
- localStorage应用(写的时间缓存在本地浏览器)
最近用了下localStorage,于是想记录加深下映象: 有关更详细的介绍,可以去看https://www.cnblogs.com/st-leslie/p/5617130.html: 我这引用了这个 ...
- DOM--选取文档元素
大多数的客户端JavaScript程序在运行时都是在操作一个或者多个文档元素,而为了操作文档中的元素我们就必须要通过某种途径或者方法获得或者选取这些引用文档元素的Element对象.DOM定义了许多种 ...
- Azure安装win2016的服务器,并下载安装mysql数据库心得
随便写写 第一部分:新建虚拟机创建win2016服务器 这部分内容跟着微软云提示操作即可, 基本步骤:创建一堆名字,选择一个地区的服务器,配置一些基本信息,然后azure就会自动创建虚拟机并安装你选择 ...
- 1027 Colors in Mars (20 分)
People in Mars represent the colors in their computers in a similar way as the Earth people. That is ...
- Redis 练习(一)
来自<Redis 实战>第一章 对于 Redis 数据结构类型及使用不太清楚的可以参考 此链接 需求: 网站需要根据文章的发布时间和文章获得的投票数量计算出一个评分,然后按照这个评分来决定 ...
- Nagios监控服务
Nagios监控服务 案例1:常用系统监控命令 案例2:搭建nagios监控服务器 案例3:配置文件及插件使用 案例4:监控远程主机的公有数据 案例5:监控远程主机的私有数据 1 案例1:常用系统监控 ...
- pm2 开机启动egg项目
1.在服务器上安装PM2 npm install pm2 -g 2.对PM2进行更新 pm2 update 3.进入服务器中egg项目更目录,并新建server.js文件,并在其中写入以下代码 con ...