SQL基础操作指南:增删改查入门

前言

在日常数据库操作中,掌握增删查改是每个开发者必备的技能。下面我将通过实例解析SQL的核心操作要点,帮你避开常见陷阱。


一、新增数据(INSERT)

  • 单行插入:明确指定字段和值
INSERT INTO 表名(字段1, 字段2) VALUES (1,2);
  • 多行插入:批量操作高效写入
INSERT INTO 表名(字段1, 字段2) VALUES(1,2),(3,4),(5,6);

字段与值必须严格对应


二、查询数据(SELECT)

1. 基础查询

类型语法实例说明
全列查询SELECT * FROM 表返回全表结果
指定列SELECT 列1, 列2 FROM 表查找特定字段
表达式SELECT (价格 * 0.8) FROM 商品实时计算字段
去重SELECT DISTINCT 部门 FROM 员工剔除重复值

2. 别名使用与限制

SELECT 字段1 AS 别名1, 字段2 AS 别名2 FROM;  
  1. 别名仅当前SELECT有效(临时标签)
  2. 不可跨SELECT语句使用(每个查询独立)
  3. WHERE条件中禁止使用别名(SQL执行顺序:WHERE > SELECT别名)

3. 排序控制(ORDER BY)

-- 默认升序(ASC可省略)
SELECT * FROM 成绩表 ORDER BY 分数;-- 显式降序
SELECT * FROM 商品表 ORDER BY 价格 DESC;

4. 条件查询(WHERE)

基础结构:

SELECT * FROM 表名 WHERE 条件表达式;

完整运算符体系

运算符类型语法实例说明
比较运算符=, >, <, >=, <=, !=基本数值/字符比较
范围查询BETWEEN 值1 AND 值2闭区间范围匹配
枚举查询IN(值1, 值2, ...)多值匹配
空值判断IS NULL / IS NOT NULL空值检测
模糊匹配LIKE '模式'通配符搜索
逻辑组合AND, OR, NOT条件组合与取反

① 比较运算符:

数值/字符串/日期均可比较

-- 字符串比较(按字典序)  
SELECT * FROM 学生 WHERE 姓名 > '李四';  

② BETWEEN AND:

闭区间匹配(含边界)

-- 等价于 价格>=50 AND 价格<=100  
SELECT * FROM 商品 WHERE 价格 BETWEEN 50 AND 100;  

③ IN 运算符:

多值匹配

-- 查找特定学院学生  
SELECT * FROM 学生 WHERE 学院 IN ('计算机', '电子工程');  

④ NULL 判断:

必须用 IS

-- 错误写法:WHERE 电话 = NULL (永远返回空)  
SELECT * FROM 用户 WHERE 电话 IS NULL;  

⑤ 模糊查询(LIKE):

-- % 匹配任意数量字符(包括0个)
WHERE 姓名 LIKE '张%'   -- 找所有姓张的人-- _ 匹配单个字符
WHERE 学号 LIKE '2023_01' -- 找2023级01班的学生

⑥ 逻辑组合:

运算符优先级陷阱

-- 错误写法(AND优先级高于OR):
WHERE 部门 = '销售' OR 部门 = '技术' AND 工资 > 10000-- 正确写法(用括号明确逻辑):
WHERE (部门 = '销售' OR 部门 = '技术') AND 工资 > 10000

5. 分页查询(LIMIT/OFFSET)

SELECT * FROM 订单表
LIMIT 10 OFFSET 20;  -- 跳过前20条,取10条数据
  • OFFSET:跳过的记录数(偏移量)
  • LIMIT:返回的记录数

OFFSET类似于翻书跳过的页数;LIMIT类似于本页显示的行数


三、修改数据(UPDATE)

UPDATE 商品表  
SET 价格=价格*1.1, 库存=库存-1  -- 修改多个字段  
WHERE 分类='电子产品';          -- 必须有WHERE条件!  

注意:无WHERE条件将导致更新全表数据


四、删除数据(DELETE)

DELETE FROM 用户表
WHERE 最后登录时间 < '2020-01-01';  -- 删除不活跃用户  

注意:无WHERE条件将导致整个表被清空


五、SQL操作执行流程图

SELECT
INSERT
UPDATE
DELETE
开始SQL操作
操作类型
基础查询
WHERE条件过滤
ORDER BY排序
LIMIT/OFFSET分页
VALUES插入
字段值匹配校验
SET修改字段
WHERE条件验证
WHERE条件验证
WHERE存在?
执行操作
谨慎操作

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

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

相关文章

Linux系统安装Docker及部署Node.js 20.15.0(含pnpm、pm2)完整指南

前言&#xff1a;在应用项目部署中&#xff0c;“环境不一致”往往是开发与运维的痛点——本地能跑的代码到了服务器就报错&#xff0c;依赖版本、系统配置差异都可能成为隐患。而Docker的容器化技术恰好能解决这一问题&#xff0c;通过“一次构建&#xff0c;到处运行”的特性…

python的多线程无法并行只能并发,why?

标题python的多线程无法并行只能并发&#xff0c;why&#xff1f;python的多线程无法并行只能并发&#xff0c;why&#xff1f; 在 Python 中&#xff0c;特别是使用 CPython 解释器时&#xff0c;由于存在 全局解释器锁&#xff08;GIL&#xff09;&#xff0c;即使在多核处理…

Kotlin比较接口

在 Kotlin 中&#xff0c;Comparable 和 Comparator 是两个允许开发者对相同或不同类的对象进行比较的接口。这两个接口通常用于基于一个或多个属性对对象集合进行排序与排序操作。本文将概述 Kotlin 的 Comparable 和 Comparator 接口&#xff0c;解释它们的用法&#xff0c;并…

day41 简单CNN

DAY 41 首先回顾下昨天的代码。 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 设置中文字…

[实战]巴特沃斯滤波器全流程解析:从数学原理到硬件实现

巴特沃斯滤波器全流程解析&#xff1a;从数学原理到硬件实现 文章目录巴特沃斯滤波器全流程解析&#xff1a;从数学原理到硬件实现1. 数学原理2. 工程实现梯形网络结构3. Python理论仿真4. 硬件仿真与PCB考虑5. 完整设计工具6. 输出结果示例7. 设计注意事项巴特沃斯滤波器是特别…

《机器学习数学基础》补充资料:标准差与标准化

1 标准差 我们经常使用平均数来大致了解一组数据&#xff0c;例如平均成绩、平均身高、平均寿命等等。但是如果只看平均数&#xff0c;不一定能充分了解整体情况。比如说你和某首富住同一个社区&#xff0c;你们社区平均每户年收入两千万&#xff0c;那么你家是有钱还是没钱&am…

深度学习 | 多类交叉熵(Categorical Cross Entropy)详解 + Python实现

在多分类任务中&#xff0c;模型输出一个概率分布&#xff0c;常用的损失函数是 Categorical Cross Entropy&#xff08;多类交叉熵&#xff09;。本文将带你理解其数学本质、应用场景、数值稳定性及完整 Python 实现。&#x1f4d8; 一、什么是 Categorical Cross Entropy&…

MyBatis-Plus通用中等、大量数据分批查询和处理

函数式接口 获取分页数据接口 主要用于获取数据 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;FunctionalInterface public interface MyBatisPlusPageFunctionInterface<T> {Page<T> selectPage(Page<T> page);}数据处理接口 import…

Ps 2025安装包(Adobe Photoshop 2025)安装包免费免激活版下载 附图文详细安装教程

[软件名称]&#xff1a;Ps2025 V26.3 [软件大小]&#xff1a;4.86 G [系统要求]&#xff1a;支持Win7及更高版本 [夸克网盘下载https://pan.quark.cn/s/d35677af9ef9 &#xff08;建议用手机保存到网盘后&#xff0c;再用电脑下载&#xff09;更多免费软件见https://docs.qq.co…

Codeforces Round 1037 (Div. 3)(补题)

文章目录前言A.Only One DigitB.No Casino in the MountainsC. I Will Definitely Make ItD.This Is the Last TimeE.G-C-D, Unlucky!总结前言 感觉前四道&#xff0c;就是考对于题目的理解能力&#xff0c;以及自己的模拟能力 A.Only One Digit 题目传送门&#xff1a;Only …

基于单片机智能插座设计/智能开关

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 随着我国的电子计算机技术的快速发展以及居民对现实生活的要求也在不断提升&#xff0c;所以很多…

[Linux]git_gdb

一、git1. git 常用指令git status 查看仓库状态git add <文件名> 把文件添加到仓库暂存区git commit -m "信息" 把文件加入仓库git push 把本地仓库同步到远端git pull …

医疗AI与融合数据库的整合:挑战、架构与未来展望(下)

🩺 解决方案:引入融合数据库(Multi-modal Data Fusion DB) 医院引入一款支持图、向量、表、流的融合数据库(如Oracle ADW、Milvus+PostgreSQL、或某国产平台),完成了以下集成: 数据类型 来源系统 格式/模型 示例内容 基因组数据 NGS平台 VCF / JSON / 图 EGFR突变、A…

【深度强化学习】MIP-DQN 实现案例(完整Python代码)

目录MIP-DQN 算法概述建模基础训练阶段&#xff08;Training&#xff09;部署阶段&#xff08;Online Execution&#xff09;DNN 网络转化为 MIP 表达式性能指标完整 Python 代码实现主函数&#xff1a;random_generator_battery模型函数&#xff1a;MIP_DQN基础/专用库包安装模…

微信小程序 wx.request() 的封装

基于微信小程序的wx.request()方法封装下面是一个封装方案&#xff0c;满足您提出的所有要求&#xff1a;class HttpService {constructor() {this.baseUrl ; // 基础URLthis.pendingRequests new Map(); // 请求缓存池this.interceptors {request: [],response: []};}// 设…

yolo8实时识别目标(和平精英敌人+骨骼关键点)

现在需要识别人物的肢体&#xff08;姿态/骨骼关键点&#xff09;&#xff0c;即所谓的「姿态估计&#xff08;pose estimation&#xff09;」&#xff0c;以下是一些主流、训练好可直接使用的开源模型推荐&#xff0c;支持多人识别与骨骼关键点检测&#xff0c;适合你后续用于…

MyBatis动态SQL全解析:五大核心标签实战指南

MyBatis动态SQL全解析&#xff1a;五大核心标签实战指南 一、动态SQL的价值&#xff1a;告别硬编码时代 传统SQL拼接的痛点 // 传统方式需要手动拼接SQL字符串 StringBuilder sql new StringBuilder("SELECT * FROM orders WHERE 11"); if (status ! null) {sql.app…

线上 CPU 过高怎么排查

通过以下几个命令解决1、top命令&#xff0c;找到 CPU 过高的pid(进程); ​编辑 2、根据pid(进程)找到CPU过高的线程id;top -H -p pid(进程)3、把线程id转换16 进制的printf 0x%x\n 线程id4、导致CPU 飙升的线程异常信息&#xff0c;-A 30表示打印 30 行记录jstack pid(进程id)…

Letter Combination of a Phone Number

IntroduceProblem Analysis (Using “258” as example) //2 a b c //5 j k l //8 t u vPossible letter combinations: a, j, t (no further options, this is one combination)a, j, u (no further options, another combination)a, j, v (another c…

【问题解决】npm包下载速度慢

问题描述&#xff1a; npm包下载速度慢 问题原因&#xff1a; 为什么下载 npm 包速度慢&#xff1f; 在使用npm下包的时候&#xff0c;默认从国外的https://regitry.npmjs.org/服务器进行下载。此时&#xff0c;网络数据的传输需要经过漫长的海底光缆&#xff0c;因此下包速度…