数据库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表示不存在

相关推荐
瀚高PG实验室8 小时前
Navicat导入Excel至瀚高数据库
数据库·excel·瀚高数据库
dreams_dream9 小时前
Django 数据库迁移命令
数据库·python·django
gsfl9 小时前
redis单线程模型
数据库·redis·缓存
jingfeng51410 小时前
I/O 多路转接select、poll
linux·数据库·sql
彩旗工作室10 小时前
用 Supabase 打造统一认证中心:为多应用提供单点登录(SSO)
服务器·前端·数据库
木子_lishk10 小时前
SpringBoot 不更改 pom.xml 引入各种 JDBC 驱动 jar 包
数据库·spring boot
清风66666610 小时前
基于51单片机宠物喂食系统设计
数据库·单片机·毕业设计·51单片机·课程设计·宠物
一语雨在生无可恋敲代码~11 小时前
RAG Day06 查询重建
数据库
对着晚风做鬼脸11 小时前
MySQL进阶知识点(八)---- SQL优化
数据库
nbsaas-boot11 小时前
使用 DuckDB 构建高性能 OLAP 分析平台
java·服务器·数据库