觉得会却又忘记怎么写的SQL(二)

觉得会却又忘记怎么写的SQL(二)

SQL在线测试地址

SQL online 以下内容均可在此地址下找到对应模块并测试

tablename world

namecontinentareapopulationgdp
AfghanistanAsia6522302550010020343000000
AlbaniaEurope28748283174112960000000
AlgeriaAfrica238174137100000188681000000
AndorraEurope468781153712000000
AngolaAfrica124670020609294100990000000

select in select 我要的结果集在上个结果集中(单行数据)

	SELECT name FROM world
  	WHERE population >
    (
    	SELECT population FROM world 
    	WHERE name='Russia'
    )
    -- 小提示:当 条件是比较操作符,且子查询无ALL()函数包裹时,其子查询的结果集有且仅有一行且只有一列,就是一个数据

select in select in 我要的结果集在上一个结果集中(多行数据)

	SELECT name, continent FROM world
	WHERE continent in 
	(
	SELECT continent FROM world 
	WHERE name IN 		 
	('Argentina','Australia')
	) 
	ORDER BY name

select in select table 我要的结果在上个结果集里面

	-- 注意通常用于多表查询,本次仅做个示例
	-- 注意,一定要用别名将子查询结果转为一张表
	-- 子查询的结果集就是派生表/字表
	SELECT name, continent FROM
	(
		SELECT name,continent FROM world
	) as tmp 

ALL 我要对某个字段的多列数据进行比较所得结果集

    -- 得出世界上人口最多的国家, ALL()同这所有比较
    -- 假设 子查询结果集有5列,及有5个人口数值
    -- 则,此时ALL函数的作用是,
    -- 求一个国家人口比这5个结果都大于或者等于的国家名称
	SELECT name FROM world
 	WHERE population >= 
 	ALL(SELECT population FROM world
    WHERE population>0)
    -- ALL 函数支持的操作符 >=,<=,>,<

group by 对结果集进行分组后展示

	SELECT continent,SUM(population) 
	FROM world
	GROUP BY continent
	-- 注意:在有分组后,SUM函数是对分组后的字段项进行求和操作
	-- SUM(字段名称) 只会返回一个单独的值,在此处只,每个continent
	-- 下的总population
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值