Mysql基础——DML

news2024/11/14 14:31:24

数据操作语言(DML,Data Manipulation Language)

DML语句用于对数据库中的数据进行操作(增删改查数据),主要包括:

  • INSERT:向表中插入数据,例如 INSERT INTO table_name (column1, column2) VALUES (value1, value2)
  • UPDATE:更新表中的数据,例如 UPDATE table_name SET column1 = value1 WHERE condition
  • DELETE:删除表中的数据,但不影响表结构,例如 DELETE FROM table_name WHERE condition

DML添加数据:

1. 基本的 INSERT INTO 语句

INSERT INTO 语句用于向表中插入一行或多行数据。

语法:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
  • 表名:需要插入数据的表名。
  • 列名1, 列名2, ...:插入的列名列表。
  • 值1, 值2, ...:每一列对应的值。

注意:
插入数据时,指定的字段顺序需要与值的顺序是一一对应的

字符串和日期型数据应该包含在引号中

插入的数据大小,应该在字段的规定范围内

2. 插入单行数据

示例:

假设有一个 users 表,它有三个字段:idnameemail。我们可以向表中插入一行数据:

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

这里:

  • id 列是自动递增(AUTO_INCREMENT),所以不需要在插入语句中指定。
  • nameemail 列分别插入 'Alice' 和 'alice@example.com'。

表中的数据:

+----+-------+------------------+
| id | name  | email            |
+----+-------+------------------+
| 1  | Alice | alice@example.com |
+----+-------+------------------+

 3. 插入部分列

如果只想插入部分列,其他未指定的列将会使用默认值(如果有默认值),或者为 NULL

示例:

users 表只插入 name 列:

INSERT INTO users (name) VALUES ('David');

这里没有提供 email 列的值,因此 email 将会被设置为 NULL(假设 email 列允许 NULL)。

4. 给全部字段添加数据

INSERT INTO 表名 VALUES (值1, 值2, ...);

这是向表中所有字段插入数据的写法,你不需要显式列出字段名,只要提供每个字段的值,按照表结构的顺序插入即可。

  • 示例:
INSERT INTO users VALUES (1, 'Bob', 'bob@example.com', CURRENT_TIMESTAMP);

这种形式对应于插入所有字段,适用于你有所有字段的值可以插入的情况。

5. 批量插入多行数据

你可以一次插入多行数据。

语法:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), ...;
示例:
INSERT INTO users (name, email) 
VALUES 
('Bob', 'bob@example.com'), 
('Charlie', 'charlie@example.com');

表中的数据:

+----+---------+---------------------+
| id | name    | email               |
+----+---------+---------------------+
| 1  | Alice   | alice@example.com    |
| 2  | Bob     | bob@example.com      |
| 3  | Charlie | charlie@example.com  |
+----+---------+---------------------+

总结:

#插入
insert into employee(id, name, gender, age) values(1,'小丽','女',10);
insert into employee(id, name, gender, age) values(2,'大宝','男',20);#单个数据插入
insert into employee values(3,'张三','男',52),(4,'阿梅','女',25);# 多个数据同时插入

通过以下代码来查看表格里面的数据

select * from employee;

控制台输出: 

DML 更新和删除

1. 更新数据:

基本语法

不区分大小写

UPDATA 表名   SET 子段1=值1,子段2=值2 where 条件;修改表中数据
  • SET:指定需要修改的列和新值。
  • where:用于限定更新哪些行。如果省略 where,所有行都会被更新。
update employee set name='不知道' where id=1;

 控制台输出表单:

#更新表中所有数据(不加where)
update  employee SET age='20';

  控制台输出表单:

2. 删除数据(DELETE)

DELETE 语句用于从表中删除一行或多行数据。

基本语法:

DELETE FROM 表名 WHERE 条件;
  • FROM:指定要删除记录的表。
  • WHERE:用于指定删除的条件。如果省略 WHERE,将删除表中的所有记录。
示例1:删除单行数据
DELETE FROM employee WHERE id = 1;

这条语句会删除 id 为1的用户。

2. 删除性别为女的数据
#删除数据
delete from employee where gender='女';

3. 删除所有数据 
#删除所有数据
delete from  employee;

DELETE 用于从表中删除数据,但保留表结构。它可以通过 WHERE 子句删除特定的行,或者删除所有行。

主要特点:
  • 删除数据:只删除表中的数据,不删除表结构。
  • 使用 WHERE 过滤:可以使用 WHERE 子句来删除特定的行。
  • 保留表结构:表的结构和索引、约束等保持不变。
  • 可回滚(在支持事务的存储引擎中,如InnoDB):如果操作在事务内,可以使用 ROLLBACK 回滚删除操作。
  • 不会重置 AUTO_INCREMENTDELETE 不会重置自动递增列的计数器。

TRUNCATE:直接清空表,比 DELETE 效率更高,但不能加 WHERE,并且会重置 AUTO_INCREMENT

 DROP 语句会彻底删除表,不仅删除表中的数据,还会删除表的结构。这意味着表一旦被 DROP,表及其所有的数据、索引、约束、以及触发器等相关信息都会被永久删除,无法恢复,除非有备份。

总结:

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

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

相关文章

超简单,3步训练Flux Lora模型,附整合包!

超简单,3步训练Flux Lora模型,附整合包! 🎉 12G显存也能炼Flux Lora模型?!3步速成,小白也能轻松上手! 兄弟们!AI绘画领域又迎来了一波革命!Flux Lora模型训练…

2024中国500强企业高峰论坛安然大健康分论坛圆满举办!

一场巅峰聚首的风云际会,一次引领未来的行业盛宴。 9月10日至11日,由中国企业联合会、中国企业家协会主办的2024中国500强企业高峰论坛在天津举行,本届高峰论坛以“向‘新’而行、打造更多世界一流企业”为主题,汇集业内知名企业…

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)

简介 随着生成式人工智能的兴起,传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求,今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight,利用生成式AI的能力来加速业务决策,从而提高业务生产力。…

【Qt应用】Qt编写简易登录注册界面

目录 引言 一、准备工作 二、设计思路 2.1 登录 2.2 注册 三、登录功能 3.1 创建账号与密码输入框 3.2 设置密码输入框格式 3.2.1 初始 3.2.2 创建一个显示隐藏按钮 3.2.3 信号与槽函数 3.3 创建登录按钮 3.4 创建可选功能 四、注册功能 4.1 账号和密码输入…

【Go】深入探索Go语言中运算符

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

路基边坡自动化监测解决方案

物联网云平台 平台登录--用户登录 输入网址:http://yun.sj2000.org.cn,进入系统登录界面,输入用户名及密码后进入系统平台。 设备详情--设备概览 登录系统平台后,用户可在界面左侧看到系统项目栏和子项目选项,登陆的…

【Python爬虫系列】_018.多线程与多进程

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数…

3. 进阶指南:自定义 Prompt 提升大模型解题能力

怎么判断 Prompt 的好坏,有什么问题有着标准答案么? 答:让大模型求解数学问题。 李宏毅老师的 HW4 正好提到了有关数学问题的 Prompt,所以我决定中间插一篇这样的文章。通过本文你将: 了解各种 Prompt 如何影响大型语言…

基于asp.net电子邮件系统设计与实现

1 引言 1.1 电子邮件介绍 电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的方法。通过连接全…

个人用户如何有效利用固态硬盘数据恢复工具

固态硬盘相较于机械硬盘来说更为小巧,所以很多人选择使用固态硬盘来进行数据的存储。这些存储设备都可能会遇到一些意外导致的数据丢失情况。好在现在的科技比较发达,这次我们来聊一聊有哪些固态硬盘数据恢复工具可以解决这个问题吧。 1.福晰数据恢复 …

Sentinel 高级

一、请求限流 1.介绍 处理并发量大时资源耗尽问题 Sentinel的请求限流功能主要体现在对QPS(每秒查询率)和线程数的控制上。当某个API接口或服务的请求量达到设定的QPS阈值时,Sentinel会触发限流规则,对这些超出阈值的请求进行限…

Selenium自动化测试面试题合集!

1、什么是自动化测试、自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。 自动化测试的优势: 1、减少回归测试成本 2、减少兼容性测试成本 3、提高测试反馈速度 4、提高测试覆盖率 5、让测试工程师做更有意义的…

官宣:Zilliz 在亚马逊云科技中国区正式开服!

01 Zilliz Cloud 正式上线亚马逊云科技宁夏区服务 9 月 4 日,Zilliz 正式官宣, Zilliz Cloud 正式上线亚马逊云科技在宁夏区的云服务。至此,Zilliz Cloud 已实现全球 5 大云 19 个节点 的全覆盖,成为全球首个提供海内外多云服务的…

读构建可扩展分布式系统:方法与实践01可扩展系统简介

1. 简介 1.1. 在过去20年里,软件系统的规模、复杂性和容量都出现了前所未有的增长 1.2. 代码是容器、数据库、消息传递系统和其他组件的一部分,通过调用API和构建指令,构成你的应用程序 1.3. 可扩展(scalable)是软件工程中用来描述软件系统…

WinCC Professional 变量的线性转换

把PLC中的变量进行线性转换的显示到WinCC Profession画面上,操作步骤如下: 1.在PLC的DB块中创建三个变量,如下所示: 2.在WinCC RT PRO的变量表中也同样创建三个变量,如下所示: 3.对WinCC RT PRO变量表中的…

3个热门、好用、功能强大的C#开源帮助工具类

下面推荐3个热门、好用、功能强大的C#开源帮助工具类。 1、Z.ExtensionMethods Z.ExtensionMethods是由zzzprojects公司开发并维护的一款开源库,为.NET开发人员提供一系列实用的扩展方法,可以减少重复劳动、提高开发效率,支持.NET Framewor…

快递柜电子锁的使用

一、快递柜电子锁的介绍 主要特点: 1、电源需求:该电子锁需要12伏特的直流电源供电,电流限制在2安培,“通电时间≤3S(不可长时间通电)”,以防止因长时间通电导致的损坏或安全隐患。 2、负荷&am…

DeepGaitV2:显式时间建模,CNN和Transformer在步态任务上的影响

Exploring Deep Models for Practical Gait Recognition 论文链接:http://arxiv.org/abs/2303.03301 代码链接:https://github.com/ShiqiYu/OpenGait 一、摘要 文中提出了一个统一的视角,探讨如何构建用于最先进的户外步态识别的深度模型&…

二层交换机如何工作

在学习之前,先提出几个问题: 二层交换机在哪里?二层交换机是怎么转发数据的?二层交换机如何生成mac地址表?二层交换机怎么去维护mac地址表? 二层交换机:二层交换机是工作在ISO/OSI模型第二层—…

力扣最热一百题——相交链表

题目链接:160. 相交链表 - 力扣(LeetCode) 注:下述题目描述和示例均来自力扣 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返…