多个查询语句 联表查询 对比_SQL~查询语句

注:下文中所使用表格student和course完整数据如下:

4199d086be3060568eb310b146d50b29.png
student

cf1c7893fa04a70f46de687034799ed3.png
course

一、MySQL常用到语句--基础查询语句

SELECT <列名1>,<列名2>,<列名3>... FROM <表名>;

tips1:查询学生表示例:

823aa72b5fe1ff7cf0f23d40621090cd.png

二、指定查询条件

指定条件查询,是在SELECT * FROM 之后增加条件,即WHERE语句。

SELECT <列名1>,<列名2>,<列名3>... FROM <表名> WHERE 条件1 AND 条件2...; 

tip2:关于上面语句的运行顺序,首先运行FROM,其次是WHERE,最后是SELECT。所以,优化FROM和WHERE条件可以提高查询速度,缩短运行时间。

运行顺序如下所示:

c41fe2c35fa7b2b7dfcb0c2a0f910136.png

三、运算符的使用

在查询语句中经常使用到运算符,主要分以下三种:算术运算符(+,-,*,/)、比较运算符(=,<>,>,>=,<,<=)、逻辑运算符(not,and,between,or,in)。

算术运算符示例:

09bc177079603b7880f58f56f9f455e7.png

比较运算符示例:

322b2b0f0c62582df02324b17ede06ea.png

逻辑运算符示例:

dcc342c8bf5dc691702682c9b1a790b1.png

四、模糊查询

很多时候限定条件不能精确匹配,就需要使用模糊查询,即LIKE 和 '%' , '_'组合使用。

模糊查询示例:

fe311046fcc0ef0571edac9f5679b247.png

以上三种模糊查询,语句1和3结果一致,由于student表中没有名字为“猴”的学生,故语句2结果为空。

五、SQLzoo练习 https://sqlzoo.net/wiki/SELECT_basics

971f7005b195528d50f09403d3c88261.png
world

1、SELECT basics

(1)显示德国的人口;

SELECT population
FROM world
WHERE name='Germany';

d1649061751f9fab0afbda64e72968a8.png

(2)查询面积>5000000的每个国家人均国内生产总值;

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

a7f96888469253127cf1d9f584397cb4.png

(3)显示'Ireland','Iceland','Denmark'的国家名称和人口;

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

80be73b21aa2e71456dab1a5981b12cc.png

(4)查询国家面积为200000和250000之间的国家名称和面积;

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

05500c671520ee1b7c49baf7562e44f6.png

2、SELECT from world

(1)显示具有至少2亿人口的国家名称;

SELECT name
FROM world
WHERE population>200000000;

992ede2362c5c0339ea45200c54edd86.png

(2)找出有至少200百万(2亿)人口的国家名称,及人均国内生产总值;

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

e3e2339f65f651dddc201e77fd15c037.png

(3)显示'South America'南美洲大陆的国家名字和以百万为单位人口数。 将人口population 除以一百万(1000000)得可得到以百万为单位人口数;

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

f302c1059fca0a8958c8d8899fd1f864.png

(4)显示法国,德国,意大利(France, Germany, Italy)的国家名称和人口;

SELECT name,sum(population)
FROM world
WHERE name in ('France','Germany','Italy')
GROUP BY name;

f1c9406a1eb679b89d383a89f4758ce9.png

(5)显示包含单词“United”为名称的国家;

SELECT name
FROM world
WHERE name like '%United%';

ec61547dd92ba9f7d38ca269b2440490.png

(6)成为大国的两种方式:如果它有3百万平方公里以上的面积,或拥有250百万(2.5亿)以上人口。展示大国的名称,人口,面积;

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

81dad4ddbeba74051cc826820848f727.png

(7)美国、印度、和中国(USA, India, China)是人口又大,同时面积又大的国家。排除这些国家。展示以人口或面积为大国的国家,但不能同时两者,展示国家名称,人口和面积;

SELECT name,population,area
FROM world
WHERE name NOT IN ('USA','India','China') 
AND ((area>3000000 and population<250000000) OR (area<3000000 and population>250000000)); 

ea7b9e6df255efb2f5dbb56ef8ff753e.png

(8)除以为1000000(6个零)是以百万计。除以1000000000(9个零)是以十亿计。使用 ROUND 函数来展示的数值到小数点后两位。对于南美显示以百万计人口,以十亿计2位小数GDP;

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

1c14d5232495c0056fca4a41f6bd84f4.png

(9)显示国家有至少一个万亿元国内生产总值(万亿,也就是12个零)的人均国内生产总值。四舍五入这个值到最接近1000。显示万亿元国家的人均国内生产总值,四舍五入到最近的$1000;

SELECT name,ROUND(gdp/population,-3)
FROM world
WHERE gdp>1000000000000;

c0c37980dc1afc29ef72b61b9858fe67.png

总结:以上练习题目分别用到“=”,“>”,“>=”,“IN”,“BETWEEN”,“LIKE”,“AND”,“OR”,“ROUND”等运算符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值