1.子查询

(1)where 子查询

①多行单列

配合innot in操作(类似于数据范围查询)

例:

显示工资与各个经理相同的雇员信息(包含经理本身)。

select * from emp

where sal=(select sal from emp where job='MANAGER');

(2)HAVING 子查询

伴随着GROUP BY子句出现,在HAVING子句中子查询的一般返回单行单列数据。

例:

查询出平均工资最低的职位信息、此职位的人数。此职位的平均工资

SELECT job,COUNT(empno),AVG(sal)
FROM emp
GROUP BY job
HAVING AVG(sal)=(
SELECT MIN(asal)
FROM (SELECT AVG(sal) asal
FROM emp
GROUP BY job));

更简便的做法:

SELECT job,COUNT(empno),AVG(sal)

FROM emp

GROUP BY job

ORDER BY AVG(sal) ASC

LIMIT 1;

(3)select 子查询(很少用)

例:

显示所有雇员的姓名、职位、部门名称和部门位置。

方便演示,强行使用SELECT子查询这种非主流子写法:
关联empdept两个表进行多表查询更简便。

SELECT e.ename,e,job,

(SELECT dname FROM dept WHERE deptno=e.deptno),

(SELECT loc FROM dept WHERE deptno=e.deptno)

FROM emp e;

(4)from 子查询

其用多表查询也能实现效果,其主要目的是提升效率,提高查询性能。

例:

查询出每个部门的编号、名称、位置、部门人数、平均工资。

多表查询:

SELECT d.deptno,dname,loc,COUNT(empno),AVG(sal)

FROM dept d LEFT JOIN emp e

ON d.deptno=e.deptno

GROUP BY d.deptno;

其计数数据量:emp表14行,dept表4行;

        14*4=56

from子查询:

SELECT d.deptno,dname,loc,num,asal

FROM dept d LEFT JOIN

(

        SELECT deptno,COUNT(empno) num,AVG(sal) asal

        FROM emp

        GROUP BY deptno

) temp

ON d.deptno = temp.deptno;

其计算数据量:

        其子查询先通过emp表查询,对其进行整理分组为三组(14,3),再对dept表(4)进行配对。

        14+3*4=26

2.更新操作

(1)数据的更新操作

(增、删、改)

针对DML两类

  • 查询DQL

(执行顺序:FROM-->WHERE-->GROUP BY-->HAVING-->SELECT-->ORDER BY-->LIMIT)

  • 更新增加删除修改

复制表语句:

CREATE TABLE myemp AS SELECT * FROM emp;

删除表语句:

drop table myemp; 

(2)插入数据

数据类型分类
  • 数字直接数字
  • 字符串使用单引号括起来表示
  • 日期
  • 符合格式字符串例如: '2025-07-16 14:10:00'
  • DATETIMEDATE函数返回值

SQLite数据类型还有:

插入数据语法格式

INSERT INTO 表名称[(字段,字段,...)] VALUES(,);

其有两种写法:

①可省略null部分,只需字段与值一一对应。

②省略字段部分,但不可省略null且得按表顺序写值。

如:

insert into myemp (empno,ename,job,hiredate,sal,deptno) 

values (1314,'GOUSHENG','PRESIDENT',

DATETIME('now','localtime'),6666,40);

insert into myemp

values (5200,'MARRY','SECRETARY',

DATETIME('now','localtime'),3000,99999,40);

(3)修改数据

语法

UPDATE 表名称 SET 字段=,字段=,... [WHERE 更新条件(s)]

如果不写WHERE表示修改所有数据

例:

        1.将所有销售的基本工资修改为2000

UPDATE myemp SET sal=2000 WHERE job='SALESMAN';

        2.将公司最早雇佣的雇员的基本工资增长20%

UPDATE myemp SET sal=sal*1.2 
WHERE hiredate=(SELECT MIN(hiredate)
FROM myemp);

        3.将公司基本工资最低的雇员的基本工资修改为公司的平均工资。

--公司的最低基本工资
SELECT MIN(sal) FROM myemp;
--公司的平均工资
SELECT AVG(sal) FROM myemp;
--嵌套
UPDATE myemp SET sal=(SELECT AVG(sal) FROM myemp)
WHERE sal=(SELECT MIN(sal) FROM myemp);

        4.将所有雇员的雇佣日期修改为今天。

UPDATE myemp SET hiredate=DATETIME('now','localtime');

(4)删除数据

语法

DELETE FROM 表名称 [WHERE 删除条件(s)];

如果不写WHERE表示删除所有数据

例:

        1.删除公司工资最高的雇员。

DELETE FROM myemp 
WHERE sal=(SELECT MAX(sal) FROM myemp);

        2.删除没有领导的雇员。

DELETE FROM myemp WHERE mgr IS NULL;

        3.删除所有雇员。

DELETE FROM myemp;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91860.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91860.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/91860.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【甲烷数据集】Sentinel-5P 卫星获取的全球甲烷数据集-TROPOMI L2 CH₄

目录 数据概述 传感器 & 卫星信息 监测目标:甲烷(CH₄) 数据产品内容 空间与时间覆盖 云筛选与协同观测 技术文档资源 数据下载 Python 代码绘制 CH4 数据 参考 数据概述 Sentinel-5 Precursor Level 2 Methane (TROPOMI L2 CH₄) 数据集是由欧洲哥白尼计划的 Sentinel…

【数据结构】单链表练习(有环)

1.判断是否是环形链表 141. 环形链表 - 力扣(LeetCode) bool hasCycle(struct ListNode *head) {struct ListNode *fast,*slow;fastslowhead;while(fast&&fast->next){fastfast->next->next;slowslow->next;if(fastslow)return tr…

VR 污水厂初体验:颠覆传统认知​

第一次戴上 VR 设备走进 VR 污水厂时,那种震撼的感觉至今难以忘怀。仿佛一瞬间,我被传送到了一个全新的世界,平日里只能在图纸或实地看到的污水厂,此刻就立体地呈现在眼前。脚下是纵横交错的管道,头顶巨大的处理设备有…

父类 div 自适应高度 子类如何撑满其高度

使用绝对定位 如果你想要子元素完全撑满父元素的高度&#xff0c;可以使用绝对定位。这种方法适用于当子元素需要完全覆盖父元素时。<div class"parent"><div class"child"><!-- 子类内容 --></div> </div>.parent {positio…

从0开始学习R语言--Day51--PH检验

在用cox回归做分析时&#xff0c;我们一般会得出各种变量在结局的风险影响&#xff08;HR大于1&#xff0c;就代表变量值增大&#xff0c;对应结局影响的风险就随之增大&#xff09;&#xff0c;但是这里有个坏处是&#xff0c;cox回归得到的是瞬时风险值&#xff0c;我们最多得…

Docker 网络原理

Linux 常见网络虚拟化 虚拟网卡:tun/tap虚拟网卡&#xff08;又称虚拟网络适配器&#xff09;&#xff0c;即用软件模拟网络环境&#xff0c;模拟网络适配器。在计算机网络中&#xff0c;tun 与 tap 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网络适配器实现的设备&…

【通识】PCB文件

1. PCB文件的导入 在PORTEL99 PCB编辑器的文件菜单中选择导入先前绘制的CAD文件。导入成功后&#xff0c;编辑器将显示出元件封装的基本图形&#xff0c;为后续操作奠定基础。将需要抄板的PCB放置于扫描仪中随后启动扫描仪&#xff0c;之后启动AUTO CAD软件&#xff0c;之后插入…

分布式弹性故障处理框架——Polly(1)

1 前言之服务雪崩 在我们实施微服务之后&#xff0c;服务间的调用变得异常频繁&#xff0c;多个服务之前可能存在互相依赖的关系&#xff0c;当某个服务出现故障或者是因为服务间的网络出现故障&#xff0c;导致服务调用的失败&#xff0c;进而影响到某个业务服务处理失败&…

【机器学习深度学习】大模型推理速度与私有化部署的价值分析

目录 前言 一、主流推理框架速度对比 二、为什么 HuggingFace 框架更适合微调验证&#xff1f; 三、大模型私有化部署的必要性分析 ✅ 私有化部署的主要动因 1. 数据隐私与业务安全 2. 可控性与性能保障 ❌ 哪些情况不建议私有部署&#xff1f; 四、总结与选型建议 &…

elementui-admin构建

1、vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 功能&#xff1a;介绍 | vue-element-adminA magical vue adminhttps://panjiachen.github.io/vue-element-admin-site/zh/guide/# GitHub地址&#xff1a;https://github.com/PanJia…

深入排查:编译环境(JDK)与运行环境(JRE/JDK)不一致时的常见 Java 错误及解决方案

深入排查&#xff1a;编译环境&#xff08;JDK&#xff09;与运行环境&#xff08;JRE/JDK&#xff09;不一致时的常见 Java 错误及解决方案 在后端 Java 项目中&#xff0c;编译环境&#xff08;JDK&#xff09; 与 运行环境&#xff08;JRE/JDK&#xff09; 版本不一致&…

[JS逆向] 微信小程序逆向工程实战

博客配套代码与工具发布于github&#xff1a;微信小程序 &#xff08;欢迎顺手Star一下⭐&#xff09; 相关爬虫专栏&#xff1a;JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 逆向知识点合集 前言&#xff1a; 微信小程序对于很多尝试JS逆向的人群来说&#xff0c;都是一个…

基于5G系统的打孔LDPC编码和均匀量化NMS译码算法matlab性能仿真

目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.算法涉及理论知识概要 4.1打孔技术 4.2 均匀量化NMS译码 5.参考文献 6.完整算法代码文件获得 1.引言 在5G通信系统中&#xff0c;信道编码技术是保障高速率、高可靠性数据传输的核心支撑&#xff0c;而低…

基于Java标准库读取CSV实现天地图POI分类快速导入PostGIS数据库实战

目录 前言 一、天地图POI分类简介 1、数据表格 2、分类结构 二、从CSV导入到PG数据库 1、CSV解析流程 2、数据转换及入库 3、入库成果及检索 三、总结 前言 在之前的博客中&#xff0c;曾经对高德地图和百度地图的POI分类以及使用PostGIS数据库来进行管理的模式进行了详…

人-AI交互中的信息论不同于传统的信息论,其信息的增量≠不确定性的减量

在人机交互&#xff08;Human-AI Interaction, HAI&#xff09;领域&#xff0c;信息论的应用确实与传统的信息论有所不同。这种差异主要源于人机交互HAI中信息的复杂性、动态性以及人类认知的特点。1. 传统信息论的核心概念传统信息论由克劳德香农&#xff08;Claude Shannon&…

K8s 通过 Scheduler Extender 实现自定义调度逻辑

1. 为什么需要自定义调度逻辑 什么是所谓的调度? 所谓调度就是指给 Pod 对象的 spec.nodeName 赋值 待调度对象则是所有 spec.nodeName 为空的 Pod 调度过程则是从集群现有的 Node 中为当前 Pod 选择一个最合适的 实际上 Pod 上还有一个平时比较少关注的属性&#xff1a;…

7.19 换根dp | vpp |滑窗

lcr147.最小栈通过两个栈 维护实现class MinStack { public:stack<int> A, B;MinStack() {}void push(int x) {A.push(x);if(B.empty() || B.top() > x)B.push(x);}void pop() {if(A.top() B.top())B.pop();A.pop();}int top() {return A.top();}int getMin() {retur…

以太坊的心脏与大脑:详解执行客户端(EL)与共识客户端(CL)

好的&#xff0c;各位技术同道&#xff0c;欢迎再次光临我的博客。在上一篇文章中&#xff0c;我们聊了如何搭建一个以太坊测试节点&#xff0c;并提到了节点需要同时运行“执行客户端”和“共识客户端”。很多朋友对此表示了浓厚兴趣&#xff0c;想深入了解这两者究竟是什么&a…

Debian-10,用glibc二进制预编译包,安装Mysql-5.7.44 笔记250716

Debian-10,用glibc二进制预编译包,安装Mysql-5.7.44 笔记250716 &#x1f4e6; 一步脚本 #!/bin/bash### 安装依赖 apt install -y libaio1 libnuma1 libncurses5### 下载MySQL-5.7.44 的 glib二进制包: mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ,(如果不存在) mkdir…

用逻辑回归(Logistic Regression)处理鸢尾花(iris)数据集

# 导入必要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from…