【MySQL】数据基本的增删改查操作

新增数据(Create)

在MySQL中,增加数据的操作主要使用 INSERT 语句。下面我们将分为两部分:单行数据插入和多行数据插入。

一、单行数据插入

  1. 全列插入: 当你要插入一行数据到表中并且要提供所有列的值时,可以使用如下语法:示例: 假设我们有一个名为 students 的表,它有三个列:idname 和 age

INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);

    2.指定列插入: 如果你只想插入部分列的值,没提供的列将会使用默认值或者 NULL示例: 在 students 表中仅插入 name 和 age,假设 id 列自动递增。

INSERT INTO students (name, age) VALUES ('Bob', 22);

二、多行数据插入

  1. 指定列插入: 可以在一次操作中插入多行数据,且只指定想插入的列。示例: 向 students 表中插入多名学生的 name 和 age

INSERT INTO students (name, age) VALUES ('Charlie', 19), ('David', 21), ('Eva', 20);

查询数据(Retrieve)

在MySQL中,查询数据的操作主要使用 SELECT 语句。下面将详细描述各类查询方式,包括全列查询、指定列查询、条件过滤等。

一、全列查询

当你需要从一个表中检索所有列的数据时,可以使用 * 通配符。

SELECT * FROM 表名;

二、指定列查询

如果只需要查询表中的特定列,可以在 SELECT 语句中明确列出这些列名。

SELECT 列1, 列2 FROM 表名;

三、查询字段为表达式

可以在 SELECT 语句中使用表达式,比如数学运算、字符串操作等。

SELECT 列1, 列2, (列3 * 2) AS 新列名 FROM 表名;

四、别名

可以使用 AS 关键字为查询结果的列创建一个别名,便于阅读。

SELECT 列名 AS 别名 FROM 表名;

五、去重:DISTINCT

如果想要查询结果中的重复数据去除,可以使用 DISTINCT 关键字。

SELECT DISTINCT 列名 FROM 表名;

还可以指定多个列。

SELECT DISTINCT 列名1,列名2 FROM 表名;

六、排序:ORDER BY

可以使用 ORDER BY 子句对查询结果进行排序。默认是升序 ASC,也可以指定降序 DESC

SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];

还可以在排序里使用表达式

SELECT 列名 FROM 表名 ORDER BY 表达式 [ASC|DESC];

七、条件查询:WHERE

可以使用 WHERE 子句添加查询条件,筛选满足条件的记录。

SELECT 列名 FROM 表名 WHERE 条件;

在MySQL中,WHERE 子句用于过滤查询结果,可以使用多种运算符来构建查询条件。以下是常用的运算符分类及示例:

1. 比较运算符

  • 等于 (=)
  • 可以判断空值的等于(<=>)
  • 不等于 (<> 或 !=)
  • 大于 (>)
  • 小于 (<)
  • 大于等于 (>=)
  • 小于等于 (<=)

2. 逻辑运算符

  • 与 (AND)
  • 或 (OR)
  • 非 (NOT)

3. 范围运算符

  • 在范围内 (BETWEEN ... AND ...)
  • 在集合中 (IN)
  • 模糊匹配 (LIKE)

4. 空值检查

  • 为空 (IS NULL)
  • 非空 (IS NOT NULL)

这些运算符可以组合使用,以构建复杂的查询条件。

 注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分。

八、分页查询:LIMIT

在查询结果中进行分页,可以使用 LIMIT 关键字,指定返回的记录数和起始位置。

SELECT 列名 FROM 表名 LIMIT 返回条数 , offset 起始位置;

查询代码案例:

查找总成绩前五名的学生的姓名和总成绩

首先创建一个表,插入多条数据

查询代码

select name , math + chinese as total from student order by total limit 5;

查询结果

修改(Update)

在MySQL中,修改数据的操作主要使用 UPDATE 语句。通过 UPDATE 语句,可以更新数据库表中已存在的数据。下面将详细描述其用法。

语法结构

基本的 UPDATE 语法如下:

UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;

组成部分

  1. 表名:要更新数据的表的名称。
  2. SET:用来指定要更新的列以及对应的新值。
  3. :要更新的列名,可以是一个或多个列。
  4. :每个列对应的新值。
  5. WHERE:用来指定条件,确保只更新符合条件的记录。如果不加 WHERE,将会更新表中的所有记录。

操作步骤

  1. 基本更新:如果需要更新单个列的值,可以直接在 SET 子句中指定。

    • 示例:将 students 表中 ID 为 1 的学生的 name 更新为 Alice
UPDATE students SET name = 'Alice' WHERE id = 1;

多列更新:可以在 SET 子句中同时更新多个列的值。

  • 示例:将 ID 为 2 的学生的 name 更新为 Bob,同时将 age 更新为 22。
UPDATE students SET name = 'Bob', age = 22 WHERE id = 2;

条件更新:使用 WHERE 子句来限制更新的记录。

  • 示例:将所有年龄大于 20 的学生的 age 更新为 21。
UPDATE students SET age = 21 WHERE age > 20;

全表更新:如果省略 WHERE 子句,所有记录将会被更新。

  • 示例:将 students 表中所有学生的 age 更新为 18(注意使用前需仔细考虑)。
UPDATE students SET age = 18;

注意事项

  • 小心使用 WHERE 子句:在执行更新操作时,必须确保条件的准确性,以避免意外更新全表的数据。
  • 验证更新结果:在大型数据修改操作后,最好执行查询语句确认数据更新的结果是否符合预期。

结论

通过以上的介绍,可以通过 UPDATE 语句有效地修改MySQL数据库表中的数据,并根据需要灵活地指定更新的条件及列。

删除(Delete)

在MySQL中,删除数据的操作主要使用 DELETE 语句。通过 DELETE 语句,可以从数据库表中删除已存在的记录。下面将详细描述其用法。

语法结构

基本的 DELETE 语法如下:

DELETE FROM 表名 WHERE 条件;

组成部分

  1. 表名:要删除数据的表的名称。
  2. WHERE:用来指定条件,确保只删除符合条件的记录。如果不加 WHERE,则会删除表中的所有记录。

操作步骤

  1. 基本删除:如果需要删除符合特定条件的单条或多条记录,可以使用 WHERE 子句。

    • 示例:从 students 表中删除 ID 为 1 的学生记录。
DELETE FROM students WHERE id = 1;

条件删除:可以使用更复杂的条件来删除记录。

  • 示例:删除所有年龄小于 18 的学生记录。
DELETE FROM students WHERE age < 18;

全表删除:如果省略 WHERE 子句,所有记录将会被删除。

  • 示例:从 students 表中删除所有学生记录(注意使用前需仔细考虑)。
DELETE FROM students;

注意事项

  • 小心使用 WHERE 子句:在执行删除操作时,确保条件的准确性,以避免意外删除全表的数据。
  • 备份重要数据:在进行大规模删除操作之前,最好先备份数据,以免意外损失。
  • 验证删除结果:删除操作后,可以执行查询语句确认数据删除的结果是否符合预期。

结论

通过以上的介绍,可以使用 DELETE 语句有效地删除MySQL数据库表中的数据。使用时应谨慎,确保对删除将产生的后果有清晰的认识。

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

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

相关文章

jmeter-beanshell学习16-自定义函数

之前写了一个从文件获取指定数据&#xff0c;用的时候发现不太好用&#xff0c;写了一大段&#xff0c;只能取出一个数&#xff0c;再想取另一个数&#xff0c;再粘一大段。太不好看了&#xff0c;就想到了函数。查了一下确实可以写。 public int test(a,b){return ab; } ctes…

剖析HTML 元素——WEB开发系列02

HTML元素是构成HTML文档结构的基本单位&#xff0c;定义了页面上的不同部分和内容。HTML元素可以包含不同类型的内容&#xff0c;如文本、图片、链接、表格等&#xff0c;每种元素都有其特定的用途和语义。通过组合和嵌套不同的HTML元素&#xff0c;可以创建复杂的网页结构和布…

java之如何爬取本地数据(利用正则表达式)

public class RegexDemo4 {public static void main(String[] args) {String s"程序员学习java&#xff0c;""电话&#xff1a;181512516758&#xff0c;18512508907" "或者联系邮箱&#xff1a;boniuitcast.cn&#xff0c;""座机电话&…

脱胎于 S 语言的R语言,Ross Ihaka 和 Robert Gentleman 和社区的力量让 R 在学术界与研究机构放光彩

R语言从一门用于统计学教学的编程语言&#xff0c;发展成为全球数据科学领域的重要工具&#xff0c;离不开其强大的功能、丰富的社区资源和开源精神。这些都离不开Ross Ihaka 和 Robert Gentleman 和 社区的力量。 在1990年代初&#xff0c;新西兰奥克兰大学的统计学教授Ross I…

6.3.面向对象技术-设计模式

设计模式 设计模式创建型模型速记口诀 结构型设计模式速记口诀 行为型设计模式速记口诀 练习题 设计模式 上午2-4分&#xff0c;记忆点很多 要具体了解推荐看书籍《大话设计模式》 架构模式&#xff1a;软件设计中的高层决策&#xff0c;例如C/S结构就属于架构模式&#xff0…

Dopple Labs 选择 Zilliz Cloud 作为安全高效的向量数据库

一直以来&#xff0c;我都十分赞同采用通用的标准来评估机器学习领域的技术。向量数据库领域也是如此。Zilliz 发布的性能测试对我有着很大的帮助。 ——Sam Butler Dopple.AI 机器学习总监 01.Dopple AI简介 Dopple Labs Inc. 是 Dopple.AI 的原厂&#xff0c;通过提供创新…

关于进程间通信的练习

1> 使用有名管道实现,一个进程用于给另一个进程发消息,另一个进程收到消息后,展示到终端上,并且将消息保存到文件上 一份 create.c #include<myhead.h>int main(int argc, const char *argv[]) {//创建一个管道文件if(mkfifo("./linux",0664)-1){perror(&qu…

RabbitMQ docker安装

后台配置文件 rabbitmq:image: rabbitmq:latestcontainer_name: rabbitmqports:- "5672:5672" # RabbitMQ server port- "15672:15672" # RabbitMQ management console portenvironment:RABBITMQ_DEFAULT_USER: adminRABBITMQ_DEFAULT_PASS: admin 若要打…

磁盘无法访问的危机与解救:数之寻软件的数据恢复之旅

在数字时代&#xff0c;磁盘作为数据存储的核心&#xff0c;承载着我们的工作文档、珍贵照片、个人视频等无价之宝。然而&#xff0c;当您试图访问某个磁盘时&#xff0c;却遭遇了“磁盘无法访问”的提示&#xff0c;这无疑是一场突如其来的数据危机。本文将深入探讨磁盘无法访…

【Kubernetes】k8s集群资源调度

目录 一、k8s的List-Watch机制 二、scheduler的调度过程 三、指定节点调度Pod 1.通过nodeName调度Pod 2.通过节点标签选择器调度Pod 3.通过亲和性调度Pod 1&#xff09;节点亲和性 2&#xff09;Pod 亲和性 四、污点(Taint) 和 容忍(Tolerations) 1.污点(Taint) 2.…

运行pytorch报异常处理

一、问题现象及初步定位&#xff1a; 找不到指定的模块。 Error loading "D:\software\python3\Lib\site-packages\torch\lib\fbgemm.dll 此处缺少.dll文件&#xff0c;首先下载文件依赖分析工具 Dependencies https://github.com/lucasg/Dependencies/tree/v1.11.1 之后下…

【大模型学习】多模态大模型进行偏好优化

一、简介 训练模型以理解并预测人类偏好是一项复杂的任务。传统方法如SFT&#xff08;监督微调&#xff09;通常需要较高的成本&#xff0c;因为这些算法需要对数据进行特定标签的标注。偏好优化&#xff08;Preference Optimization&#xff09;作为一种替代方案&#xff0c;…

【多线程-从零开始-捌】阻塞队列,消费者生产者模型

什么是阻塞队列 阻塞队里是在普通的队列&#xff08;先进先出队列&#xff09;基础上&#xff0c;做出了扩充 线程安全 标准库中原有的队列 Queue 和其子类&#xff0c;默认都是线程不安全的 具有阻塞特性 如果队列为空&#xff0c;进行出队列操作&#xff0c;此时就会出现阻…

C++ 重要特性探究

shared_from_this 使用分析 场景 类的成员函数需要获取指向自身的shared_ptr的时候类成员函数传递shared_ptr给其他函数或者对象的时候&#xff0c;目的是为了管理对象生命周期使用方法 首先类必须继承 std::enable_shared_from_this<T>必须使用 shared_from_this 获取指…

智慧交通:将物联网与人工智能完美融合

智慧交通是当今社会面临的一个重要挑战&#xff0c;也是人们生活质量提高的一个重要方面。通过将物联网技术与人工智能相结合&#xff0c;我们能够实现智慧交通系统的全面升级和优化&#xff0c;为人们带来更加便捷、高效和安全的出行体验。 在智慧交通领域&#xff0c;物联网…

电脑图片损坏打不开怎么办?能修复吗?

照片和视频是记录和保存现实生活中的事件的最好方式。由于手机储存空间有限&#xff0c;一般我们会把有纪念意义的照片放到电脑上进行保存&#xff0c;但有时难免会遇到照片被损坏打不开的情况&#xff0c;一旦遇到这种情况&#xff0c;先不要急&#xff0c;也不要因为照片打不…

【智能控制】第7章 神经网络理论基础,神经网络的分类,原理,发展,神经网络学习算法(北京航天航空大学)

目录 第7章 神经网络理论基础 1. 神经网络的发展 2. 神经网络原理 3. 神经网络的分类 (1) 前向网络 (2) 反馈网络 (3) 自组织网络 4. 神经网络学习算法 (1) 智能Hebb学习规则 (2) Delta&#xff08;δ&#xff09;学习规则 5. 神经网络的特征及…

【Mind+】 掌控板入门教程09 魔法之光

光是地球生命的来源&#xff0c;是人类生活的依据&#xff0c;更是人类认识外部世界的工具。在科技发达的今天&#xff0c;我们可以通过传感器来检测光&#xff0c;利用光帮助我们更好的生活。 今天就让我们一起通过几个小项目来感受光的魔法吧。 项目示例 掌控板…

经验是负债,学习是资产

经验是负债&#xff0c;学习是资产 经验是负债&#xff0c;学习是资产。这是李嘉诚先生的一句名言。他一语道出了学习在企业发展中的推动作用。 企业家经营的目的&#xff0c;无非就是将利润最大化。企业能够产生利润&#xff0c;靠的是提升自身业绩、降低运营成本&#xff0c;…

使用 Java Swing 创建一个最大公约数计算器 GUI 应用

使用Java语言,设计一个程序,实现求取两个正整数的最大公约数。 比较基础的一个Java小程序。 1、效果展示 2、程序代码 package demo; import javax.swing.*; import java.awt.*;