数据库part2---子查询

注:这里依然是在用game这个数据库

子查询

where 后为条件

如果想要用一个查询结果作为条件再进行查询

我们可以用子查询

如下例子

我们想用玩家的平均等级来作为条件找出高于平均等级的玩家

我们可以这样做

sql 复制代码
SELECT AVG(level) FROM player; --这个是条件
SELECT * FROM player WHERE level > (SELECT AVG(level) FROM player);

select 后为新表列

同样子查询可以用在select后面

比如我们需要看玩家的等级与平均等级和玩家等级和平均之间的差距

sql 复制代码
select level, ROUND((SELECT AVG(level) from player)), level - ROUND((SELECT AVG(level) from player)) from player;

我们可以用as对表头进行定义

as 起表名

update、delete、insert、create语句后都可以使用子查询

create 后创新表

在create后面用子查询可以得到输出查询结果返回的表

如下,就是查询结果是返回所有低于五级的玩家,并把他们归到一个新创建的表

sql 复制代码
CREATE TABLE new_player SELECT * FROM player WHERE level < 5;

如果现在想插入level 6~10的玩家到刚刚创建的新表(new_player)中

那我们可以用

insert 插数据

先查看6~10级都有哪些玩家

EXISTS 判断是否存在

如果我们想看看是否有等级大于100的玩家

那我们可以用exists

sql 复制代码
SELECT EXISTS(SELECT * FROM player WHERE level > 100)

那我们试着查询一下是否有等级大于10的玩家

1表示存在,0表示不存在

相关推荐
是店小二呀1 小时前
全面探索 KingbaseES 在线数据库平台:从开发到优化的全方位体验
数据库
将心ONE1 小时前
subprocess.check_output和stdout有什么不同 还有run和popen
java·数据库·microsoft
isNotNullX2 小时前
据字典是什么?和数据库、数据仓库有什么关系?
大数据·数据库·数据仓库·oracle·数据治理
考虑考虑3 小时前
数据库唯一索引
数据库·后端·mysql
AA-代码批发V哥3 小时前
MySQL之事务深度解析
数据库·mysql
里探3 小时前
在Django中把Base64字符串保存为ImageField
数据库·django
全栈小53 小时前
【数据库】零门槛在线体验KingbaseES平台,SQL Server模式高阶玩法,动态创建数据体验函数、存储过程等功能
数据库·sql server·金仓·kingbasees平台
奈斯ing4 小时前
【MySQL篇】高效学习官方文档指南(基于MySQL8.0版本详解)
运维·数据库·学习·mysql
Tapdata 钛铂数据5 小时前
信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks
数据库·oceanbase