当前位置: 首页 > news >正文

掌握 SQL 数据操纵的基础技巧

在数据库管理中,SQL 数据操纵语言 (DML) 是至关重要的工具。它主要包括 INSERT、UPDATE 和 DELETE 语句,用于对数据库中的数据进行插入、更新和删除操作。本文将带你快速了解这些基本操作。

插入数据

在创建了一个表之后,最常见的操作就是插入数据。SQL 提供了两种插入数据的方式:INSERT…VALUES 和 INSERT…SET。

INSERT…VALUES

格式:

INSERT [INTO] <表名> [(字段名1, 字段名2, ..., 字段名n)]
VALUES (表达式1, 表达式2, ..., 表达式n),(表达式n+1, 表达式n+2, ..., 表达式2n), ...;

这种方式允许你指定一组或多组值来插入数据。例如:

INSERT INTO Department (dno, dname) VALUES ('D1', '计算机学院');

image

注意:字段的顺序可以和表中不一致,但表达式的顺序必须与字段一致。

INSERT…SET

格式:

INSERT [INTO] <表名> SET 字段名1 = 表达式1, 字段名2 = 表达式2, ...;

这种方式无需记住字段的顺序,只需指定字段和值即可:

INSERT INTO Student SET sno='S4', sname='贾哲', sex='女', dno='D1';

image

更新数据

语法:

UPDATE <表名>
SET 字段名1 = 表达式1[, 字段名2 = 表达式2, ...]
[WHERE <条件>][[ORDER BY 排序字段名]LIMIT n];

通过 UPDATE 语句,我们可以更新表中已存在的数据。其基本格式如下:

UPDATE <表名> SET 字段名1=值1 [WHERE 条件];

示例:将 Department 表中 D1 学院的办公地点更新为 C101。

UPDATE Department SET office='C101' WHERE dno='D1';

删除数据

格式:

DELETE FROM <表名> [WHERE <条件>] [[ORDER BY 排序字段名] LIMIT n];

使用 DELETE 语句可以删除表中的一个或多个记录。基本格式为:

DELETE FROM <表名> [WHERE 条件];

示例:删除 Department 表中 D4 学院的记录。

DELETE FROM Department WHERE dno='D4';

参照完整性

在操作数据库时,参照完整性是一个重要概念。当对表进行操作可能影响参照完整性时,DBMS 会进行检查并提供违约处理方式。

image

操作示例

  1. 插入数据时,如果外键不匹配,系统将拒绝插入。
  2. 更新外键时,如果新值在参照表中不存在,系统将拒绝更新。
  3. 删除被参照表的记录时,可能会拒绝删除或级联删除相关记录。

总结

通过掌握 INSERT、UPDATE 和 DELETE 的基本用法,你可以有效管理数据库中的数据。熟悉这些操作将帮助你在数据库管理中更加得心应手。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 点亮ESP 32 板载LED 灯
  • Java 入门指南:Java 并发编程 —— 并发容器 PriorityBlockingQueue
  • Spark2.x 入门:逻辑回归分类器
  • 简单的Linux Ftp服务搭建
  • 通过redis-operator 来部署 Redis Cluster 集群
  • 【大数据】Canal实现MySQL数据增量同步至Kafka:原理与配置解析
  • MSSQL数据库安全配置
  • 北京君正低功耗MCU芯片应用在柯氏音法电子血压计
  • 使用 ELK Stack 进行云原生日志记录和监控:AWS 中的开发运营方法
  • Python【1】
  • JS设计模式之“神奇的魔术师” - 简单工厂模式
  • Python3.8绿色便携版嵌入式版制作
  • 《JavaEE进阶》----7.<SpringMVC实践项目:【登录页面的验证】>
  • 深入解析Spring Boot中的`@Transactional`注解
  • 数据结构--带头双向循环链表
  • 深入了解以太坊
  • #Java异常处理
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • HTTP中GET与POST的区别 99%的错误认识
  • java小心机(3)| 浅析finalize()
  • js学习笔记
  • Linux后台研发超实用命令总结
  • Meteor的表单提交:Form
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python - 闭包Closure
  • Vue.js 移动端适配之 vw 解决方案
  • Vue2 SSR 的优化之旅
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 在Unity中实现一个简单的消息管理器
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 进程与线程(三)——进程/线程间通信
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • "无招胜有招"nbsp;史上最全的互…
  • #mysql 8.0 踩坑日记
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $.proxy和$.extend
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (力扣)1314.矩阵区域和
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *1 计算机基础和操作系统基础及几大协议
  • .JPG图片,各种压缩率下的文件尺寸
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net Winform开发笔记(一)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net反编译工具
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc