数据库-DML语言-数据操作语言

news2024/9/20 9:27:32

定义

DML是对表中数据进行操作的语言,涉及的关键字:INSERT UPDATE DELETE

  • INSERT:向表中插入新数据的语句
  • UPDATE:修改表中数据的语句
  • DELETE:删除表中数据的语句

准备工作

USE mydb;					使用mydb库
CREATE TABLE person(		创建表person
	name VARCHAR(30),
    age INT(3)
)

INSERT语句-向表中插入数据

语法
INSERT INTO 表名 (字段1,字段2,字段3,...) VALUES (1,2,3,...)
向表中插入一条记录,将值1插入的到字段1中,将值2插入到字段2
向person表中插入记录
INSERT INTO person (name,age) VALUES ('张三',22);
INSERT INTO person (age,name) VALUES (33,'李四');

INSERT INTO person (name,age) VALUES (36,'王五');   不可以,值的顺序与前面指定的字段不匹配
INSERT INTO person (name,age) VALUES ('王五')       不可以,值的个数与前面指定的字段不匹配

注:

  • 在数据库中,字符串的字面量是使用单引号括起来的,需要注意
  • 在INSERT语句中指定的字段与VALUES后面指定的值顺序,个数,类型要完全一致
  • 在INSERT语句中字段指定时的顺序和个数可以与表结构定义时不一致
补充
查询表中数据的语法
SELECT * FROM 表名
SELECT * FROM person

在这里插入图片描述

插入默认值

INSERT语句中指定字都时,忽略的字段会被插入默认值。当表中字段没有被明确指定默认值时,默认值一律为NULL

INSERT INTO person (name) VALUES ('王五')
此时该条记录插入后,age字段使用默认值NULL

在这里插入图片描述

默认值的指定

注:指定默认值是属于DDL语句的范畴

使用DEFAULT关键字来为字段指定默认值,可以在创建表时,也可以在修改表时指定

在创建表时为字段指定默认值
CREATE TABLE person(
	name VARCHAR(30) DEFAULT '无名氏',
	age INT(3) DEFAULT 30
)

修改表时为字段指定默认值
ALTER TABLE person CHANGE name name VARCHAR(30) DEFAULT '无名氏'

可以使用DESC 表名 在查看表结构时看到字段的默认值

在这里插入图片描述

此时向person表中插入数据时,若不指定name字段,该字段默认值插入’无名氏’

INSERT INTO person (age) VALUES (55)

在这里插入图片描述

全列插入

在INSERT语句中不指定字段时,为全列插入,此时要求VALUES子句后面指定的值的个数,顺序,类型必须与表结构中字段完全一致

补充说明
子句

在SQL语句中一个关键字可以组成一个子句

INSERT INTO person(name,age)		INSERT子句
VALUES('张三',22)					   VALUES子句
这两个子句整体构成了INSERT语句
语法
INSERT INTO 表名 VALUES(1,2,...)	此时就要求VALUES子句中指定的值必须与表结构一致
INSERT INTO person VALUES('赵六',15)   

插入默认值
INSERT INTO person VALUES(DEFAULT,15)	使用DEFAULT关键字表达该字段插入默认值

插入NULLINSERT INTO person VALUES(NULL,78)		使用NULL关键字表达该字段插入NULL值

下面是错误示范:
INSERT INTO person VALUES(15,'赵六')	 不可以,与person表结构字段顺序不一致
INSERT INTO person VALUES('赵六')      不可以,与person表结构字段顺序不一致
批量插入
语法
INSERT INTO 表名(字段...) VALUES(第一组值...),(第二组值...),....
一次插入三条记录
INSERT INTO person(name,age) VALUES('阿猫',11),('阿狗',22),('阿三',33) 

在这里插入图片描述

UPDATE语句-修改表数据

语法
UPDATE 表名
SET 字段1=新值,字段2=新值,...
[WHERE 过滤条件]
UPDATE person
SET age=40
此时该SQL执行后,person表中每条记录的age字段都会被改为40

注:当UPDATE语句中不添加WHERE子句时,会将表中所有记录进行修改,这种操作实际开发中很少见

WHERE子句在UPDATE中的作用

当UPDATE语句添加了WHERE子句时,只有满足WHERE子句要求的记录才会被修改

修改张三的年龄为22
UPDATE person
SET age=22
WHERE name='张三'

数据库在修改记录时对表是逐行进行的,每一行是否进行修改取决于该行记录是否满足WHERE子句的条件要求

在这里插入图片描述

40岁的人改为36UPDATE person
SET age=36
WHERE age=40

在这里插入图片描述

WHERE子句基础条件

WHERE子句会在后面DQL中详细展开介绍

WHERE中基础条件:>,>=,<,<=,=,<>(首先"=“在数据库中表达等于,”<>“在数据库中表达不等于。”!="也可以表达不等于,但不是SQL92标准)

将年龄高于30岁的人改为29
UPDATE person
SET age=29
WHERE age>30

在这里插入图片描述

使用表达式修改
将每个人的年龄涨一岁
UPDATE person
SET age=age+1
修改多字段
将李四的名字改为'李老四',年龄改为66
UPDATE person
SET name='李老四',age=66
WHERE name='李四'

DELETE语句-删除表中数据

语法
DELETE FROM 表名
[WHERE 过滤条件]

注:DELETE语句通常不会忽略WHERE子句,否则是清空表操作!

删除person表中'李老四'
DELETE FROM person
WHERE name='李老四'			//仅删除person表中name字段为'李老四'的记录

删除年龄小于25岁的人
DELETE FROM person
WHERE age<25
清空表
DELETE FROM person

总结

  • INSERT语句,向表中插入数据的语言
    • INSERT语句指定的字段顺序,个数可以与表结构不一致,但是VALUES子句后指定的值必须与指定的字段顺序,类型,个数完全一致
    • INSERT语句在指定字段时,可以忽略某些字段,此时插入数据时被忽略的字段会插入默认值
    • INSERT语句中可以使用关键字DEFAULT显示声明插入默认值
    • INSERT语句中可以使用关键字NULL显示声明插入NULL值
    • INSERT语句中不指定字段时为全列插入,此时VALUES后指定的值的顺序,个数,类型要与表结构完全一致。实际开发中不推荐这样的写法。
  • UPDATE语句,修改表中记录的语言
    • UPDATE语句通常要指定WHERE子句,如果不指定则为全表修改
  • DELETE语句,删除表中记录的语言
    • DELETE语句通常要指定WHERE子句,否则是清空表操作

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

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

相关文章

AAAI‘25 今日截稿!SD 核心成员开源比 Midjourney 还强的文生图模型,现已提供一键启动

Midjourney 真的不香了&#xff01;继 Stable Diffusion 3 于 6 月开源后&#xff0c;Stability AI 前核心成员 Robin Rombach 带领着新团队在本月初推出了 FLUX.1 图像生成模型家族。官方声称 FLUX.1 在多个关键指标上超越了 Midjourney v6.0 和 DALLE 3 等文生图的头部模型&a…

VMware Workstation Pro 安装 Ubuntu Server

这里写目录标题 VMware Workstation Pro 安装 Ubuntu Server1. 启动选项2. 系统语言3. 安装程序升级4. 键盘配置5. 安装类型6. 网卡配置7. 代理配置8. 系统镜像配置9. 硬盘配置10. 账户配置11. Ubuntu Pro 版本12. SSH 服务13. 推荐软件14. 安装成功15. 第一次重启报错16. 登录…

JavaScript调试:console 命令的使用

1、console 命令介绍 console 对象用于 JavaScript 调试。JavaScript 原生中默认是没有 console 对象&#xff0c;这是宿主对象&#xff08;也就是浏览器&#xff09;提供的内置对象。 用于访问调试控制台,在不同的浏览器里效果可能不同。 console 对象常见的两个用途&#x…

【计算机操作系统】覆盖与交换

覆盖与交换 覆盖与交换是实现内存空间扩充的技术&#xff0c;虚拟存储技术后续会详细讲解 覆盖技术 为了解决程序大小超过物理内存总和的问题引入了覆盖技术 覆盖技术的思想&#xff1a; 将程序分为多个段&#xff08;多个模块&#xff09;&#xff0c;常用的段常驻内存&…

Go Kafka 操作详解

Go Kafka 操作详解 引言 Apache Kafka 是一个分布式流处理平台&#xff0c;广泛应用于构建实时数据管道和流应用程序。在 Go 语言中&#xff0c;使用 github.com/IBM/sarama 库可以方便地与 Kafka 进行交互。本文将详细介绍如何使用 Sarama 库在 Go 中实现 Kafka 的生产者和消…

等保测评中的安全需求分析:构建精准的信息安全防护体系

在数字化转型的时代背景下&#xff0c;信息安全成为企业发展的关键因素之一。等保测评&#xff0c;作为我国信息安全等级保护制度的重要组成部分&#xff0c;要求企业进行详细的安全需求分析&#xff0c;以构建精准、有效的信息安全防护体系。本文旨在探讨等保测评中的安全需求…

基于SpringBoot+VUE的在线视频教育平台(源码+文档+部署

主要内容&#xff1a;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等 业务范围&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写…

TQX310光口自环检测

本历程实现X310的光口自环测试&#xff0c;以及查看眼图。需要准备板卡以及好烧写的文件&#xff0c;文件在文档末尾的连接中提供。 X310连接好JTAG与电源线&#xff0c;在MGT x4口插入光口自环模块&#xff0c;并开机。 打开vivado&#xff0c;打开硬件管理器&#xff0c;会识…

Kubernetes—k8s集群存储卷(pvc存储卷)

目录 一、PVC 和 PV 1.PV 2.PVC 3.StorageClass 4.PV和PVC的生命周期 二、实操 1.创建静态pv 1.配置nfs 2.创建pv 3.创建pvc 4.结合pod&#xff0c;将pv、pvc一起运行 2.创建动态pv 1.上传 2.创建 Service Account&#xff0c;用来管理 NFS Provisioner 在 k8s …

Harmony OS 后台任务-代理提醒

三、代理提醒 传送门 1.什么是代理提醒 应用退到后台或进程终止后&#xff0c;仍然有一些提醒用户的定时类任务&#xff0c;例如购物类应用抢购提醒等&#xff0c;为满足此类功能场景&#xff0c;系统提供了代理提醒&#xff08;reminderAgentManager&#xff09;的能力。当…

Linux系统使用Typecho搭建个人网站并一键发布公网远程管理本地站点

文章目录 前言1. 安装环境2. 下载Typecho3. 创建站点4. 访问Typecho5. 安装cpolar6. 远程访问Typecho7. 固定远程访问地址8. 配置typecho &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大…

Python 数据可视化,怎么选出合适数据的图表

数据可视化最佳实践 1. 引言&#xff1a;为什么数据可视化最佳实践很重要 数据可视化是数据分析和决策过程中不可或缺的一部分。通过有效的可视化&#xff0c;复杂的数据可以转化为易于理解的信息&#xff0c;从而帮助观众快速做出正确的判断。然而&#xff0c;糟糕的可视化可…

Qt-认识tT(1)

目录 QT是做什么的&#xff1f; 什么是QT GUI开发的各种技术方案 QT支持的平台 Qt的版本和优点 开发工具概述 Qt是做什么的&#xff1f; Qt是用来干嘛的&#xff1f; 什么是Qt Qt是⼀个跨平台的C图形用户界⾯应用程序框架。它为应用程序开发者提供了建立艺术级图形界⾯所…

Vue3+Ts封装类似el-drawer的抽屉组件

提供9个字段对drawer组件进行控制&#xff1a; modelValue: 对抽屉显示隐藏进行控制, width: 控制抽屉的宽度, title: 控制抽屉的标题, appendToBody: 是否将抽屉添加至body, closeOnClickModal: 是否点击遮罩层关闭抽屉, showConfirm: 是否显示确认按钮, showCancel: 是…

Linux网络:基于OS的网络架构

Linux网络&#xff1a;OS视角下的网络架构 网络分层模型OSI 七层模型TCP/IP 五层模型 协议操作系统与网络网络相关命令ifconfigpingnetstat 本博客将基于操作系统&#xff0c;讲解计算机网络的设计理念&#xff0c;帮助大家理解操作系统与网络之间的关系。 网络分层模型 网络…

DIAdem 与 LabVIEW

DIAdem 和 LabVIEW 都是 NI (National Instruments) 公司开发的产品&#xff0c;尽管它们有不同的核心功能和用途&#xff0c;但它们在工程、测试和测量领域中常常一起使用&#xff0c;以形成一个完整的数据采集、分析、处理和报告生成的解决方案。 1. 功能和用途 LabVIEW (Lab…

杭州造价信息_杭州造价信息网建设工程材料信息价

杭州造价信息&#xff0c;全称为《杭州造价信息》&#xff0c;简称为“杭州市信息价”或“杭州市建材信息价”&#xff0c;是杭州市建设工程主管部门发布的建筑建材市场指导价&#xff0c;也是杭州市建筑工程项目招标与结算的建材价格标准。这一信息由杭州市住建局或共享建材汇…

【深度学习基础】关于卷积神经网络你了解多少?

文章目录 卷积稀疏交互参数共享池化层全连接层转置卷积空洞卷积卷积神经网络与全连接神经网络 本篇博客主要是讲解一些本人对于卷积的理解&#xff0c;包括&#xff1a; 为什么会出现卷积操作&#xff1f;最基本的卷积操作&#xff1f;卷积的优缺点。空洞卷积等等。卷积操作牵扯…

启明智显借 AI 之翼重塑人机交互,强劲赋能智能硬件升级腾飞

在科技日新月异的今天&#xff0c;启明智显作为人机交互&#xff08;HMI&#xff09;与物联网人工智能&#xff08;AIoT&#xff09;硬件领域的领航者&#xff0c;正以前所未有的决心和行动力&#xff0c;推动着智能硬件行业的深刻变革。公司不仅致力于将最先进的人工智能技术融…

Java 中高级面试题:16题

1. Java 中有哪些不同类型的线程优先级&#xff1f;JVM 分配的线程默认优先级是多少&#xff1f; 线程优先级是这样的概念&#xff1a;每个线程都有一个优先级&#xff0c;用外行人的语言来说&#xff0c;可以说每个对象都有优先级&#xff0c;用 1 到 10 之间的数字表示。Jav…