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

相关推荐
大布布将军6 分钟前
⚡️ 深入数据之海:SQL 基础与 ORM 的应用
前端·数据库·经验分享·sql·程序人生·面试·改行学it
唐人街都是苦瓜脸12 分钟前
踩坑记:ORA-01722 无效数字错误排查与解决(附实战案例)
sql·oracle
JIngJaneIL38 分钟前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
源代码•宸1 小时前
goframe框架签到系统项目(BITFIELD 命令详解、Redis Key 设计、goframe 框架教程、安装MySQL)
开发语言·数据库·经验分享·redis·后端·mysql·golang
川贝枇杷膏cbppg1 小时前
Redis 的 AOF
java·数据库·redis
TG:@yunlaoda360 云老大1 小时前
如何在华为云国际站代理商控制台进行SFS Turbo的性能与容量核查?
服务器·网络·数据库·华为云
ytttr8732 小时前
MATLAB基于LDA的人脸识别算法实现(ORL数据库)
数据库·算法·matlab
云老大TG:@yunlaoda3602 小时前
如何进行华为云国际站代理商跨Region适配?
大数据·数据库·华为云·负载均衡
思成不止于此3 小时前
【MySQL 零基础入门】事务精讲(二):ACID 特性与并发问题
数据库·笔记·学习·mysql
Boilermaker19923 小时前
[MySQL] 初识 MySQL 与 SQL 基础
数据库·mysql