MySQL 数据增删改查

一、插入数据

1.1 insert插入数据

(1)insert语法格式
INSERT [INTO] 表名 [字段名] VALUES (值列表);
(2)示例

① 向学生表中插入一行数据

② 向学生表中插入多行数据

二、更新数据

2.1 update更新数据

(1)update语法格式
UPDATE 表名 SET 字段1=值1, 字段2=值2,…,字段n=值n [WHERE 条件];
(2)示例

① 将所有学生的姓名改成邓超

② 将id是1学生的姓名改成彭于晏,年龄改为30

三、删除数据

3.1 delete删除数据

(1)delete语法格式
DELETE FROM 表名 [WHERE条件];
(2)示例

用delete删除id是1的学生的数据

3.2 truncate删除数据

(1)语法格式
TRUNCATE TABLE 表名;
(2)示例

用truncate删除学生表中的数据【清空数据,表还在】

PS:delete删除数据可以加条件;truncate删除数据不可以加条件,只能清空整个表内数据。

四、查询数据

4.1 查询前准备

将用以下代码,在表内插入数据

(1)在students表内插入数据
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (1, '小明', 18, 180, '女', 1, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (2, '小月月', 18, 180, '女', 2, 1); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (3, '彭于晏', 29, 185, '男', 1, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (4, '刘德华', 59, 175, '男', 2, 1); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (5, '黄蓉', 38, 160, '女', 1, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (6, '凤姐', 28, 150, '保密', 2, 1); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (7, '王祖贤', 18, 172, '保密', 1, 1); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (8, '周杰伦', 36, NULL, '男', 3, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (9, '程坤', 27, 181, '男', 2, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (10, '刘亦菲', 25, 166, '男', 2, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (11, '猪猪侠', 33, 162, '保密', 3, 1); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (12, '静香', 12, 180, '女', 2, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (13, '郭靖', 12, 170, '男', 3, 0); INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (14, '周杰', 34, 176, '女', 1, 0);
(2)在teachers表内插入数据
INSERT INTO `teachers` (`id`, `name`) VALUES (1, '赵老师'); INSERT INTO `teachers` (`id`, `name`) VALUES (2, '孙老师'); INSERT INTO `teachers` (`id`, `name`) VALUES (3, '李老师'); INSERT INTO `teachers` (`id`, `name`) VALUES (4, '周老师');
(3)在classes表内插入数据
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (1, 1, '班级学生有较强的学习能力', '2024-10-01 00:00:00', 'python_01期'); INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (2, 2, '班级学生比较顽皮', '2024-11-01 00:00:00', 'python_02期'); INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (3, 2, '数据结构班', '2024-11-01 00:00:00', 'data_struct_01期');

4.2 SELECT基本查询语句格式

(1)select语法格式
SELECT 列名 FROM 表名;
(2)示例

① 查询所有学生信息

② 查询所有学生的姓名,性别

4.3 运算符

算术运算符 + - * / %

关系运算符 > < = <> >=

赋值运算符 =

逻辑运算符 and or not && || !

4.4 where条件查询

(1)where 语法格式
SELECT 列名 FROM 表名 WHERE 条件
(2)示例

① 查询id为1学生的姓名,性别

②查询学生’刘德华’的信息

4.5where多条件查询

(1)语法格式
SELECT 列名 FROM 表名 WHERE 条件 运算符 条件
(2)示例

①查询id=1或者id=3学生的姓名,性别

②查询性别为女并且在2班的学生的信息

4.6 like模糊查询

(1)语法格式
SELECT 列名 FROM 表名 WHERE 字段 LIKE '值'
(2)示例

查询名字里面包含’小’的学生的信息

4.7 IN关键字查询

(1)语法格式
SELECT 列名 FROM 表名 WHERE 字段 IN (值1,值2,....);
(2)示例

查询id为1,5,6,10的学生的信息

ps:试用 not in 即为查询不为谋值的信息

4.8BETWEEN关键字查询

(1)语法格式
SELECT 列名 FROM 表名 WHERE 字段 BETWEEN 值1 and 值2;
(2)示例

查询id为8-10的学生的信息

4.9DISTINCT关键字查询【去重】

(1)语法格式
SELECT DISTINCT 字段名1,字段名2...... FROM 表名;
(2)示例

①查询性别有几种分类

②查询有几个班级

4.10ORDER BY关键字查询

(1)语法格式
SELECT <字段名列表> FROM <表名> [WHERE <查询条件>] [ORDER BY <排序的列名> [ASC 或 DESC]];
(2)示例

①将学生的身高按照升序排列

②将学生的身高按照降序排列

PS:ASC是降序,DESC是升序,在不写明是ASC还是DESC的情况下,默认是ASC降序

4.11 LIMIT关键字查询

(1)语法格式
SELECT <字段名列表> FROM <表名> [WHERE <查询条件>] [ORDER BY <排序的列名> [ASC 或 DESC]] [LIMIT <行数>];
(2)示例

①只看前2条学生信息

②显示1班学生中身高前三名的学生姓名

4.12连接查询

观察students、teachers、classes三张表,如何查看students表中cls_id所代表的的班级名称是什么?——使用连接查询

连接查询是将多张表中记录按照指定的条件进行连接的查询方式

PS:连接查询涉及到两个表以上,在查询的时候至少要有一个必备的连接条件,这个必备的条件就是两个表共有的那个字段相等,而且这个字段一定在一个表里是主键,在另一个表里是外健

4.12.1 显示内连接查询
(1).语法格式
SELECT 字段 FROM 表1 INNER JOIN 表2 ON 连接条件 [WHERE 条件]
(2).示例

①查看学生所在班级

②查看学生所在班级并且班级是1

4.12.2隐式内连接查询
(1)语法格式
SELECT 字段 FROM 表1,表2 WHERE 表1 字段=表2 字段
(2)示例

学生所在班级

4.12.3 左外连接查询
(1)语法格式
SELECT 字段 FROM 表1 LEFT [outer] JOIN 表2 ON 连接条件 [where 条件];
(2)示例

查看老师所在班级

4.12.4 右外连接查询
(1)语法格式
SELECT 字段 FROM 表1 RIGHT [outer] JOIN 表2 ON 连接条件 [where 条件];
(2)示例

查看老师所在班级

PS:左连接和右连接就是分别以表1和表2为基表,返回左(右)表中所有记录及连接表中符合条件的记录的外连接。

五、聚合函数

如何查看班级同学的平均身高?——使用聚合函数

聚合函数是可以对一组值进行计算,并返回单个值的函数。

函数——实现特定功能的。

5.1.聚合函数

(1)语法格式
SELECT 聚合函数<字段> FROM 表名 [WHERE 条件] [GROUP BY 聚合函数]
(2)聚合函数
  1. count()-计数
  2. sum()-求和
  3. max()-最大值
  4. min()-最小值
  5. avg()-平均值
(3)示例

①查询班级学生的平均身高

②查询班级有多少同学

③显示每个班级学生的平均身高

④查询每个班级的学生总数

PS:as’列名’,加在需要查询的字段后面,可以显示设置的“列名”(所有SELECT同理)

六、子查询【查询嵌套】

如何只查询比刘德华高的同一班的学生信息?——子查询

定义:子查询是在一个查询的内部包括另一个查询的查询方式

6.1简单子查询

(1)示例

①查看刘德华同学的所在班级的所有同学

select * from students where cls_id=( -> select cls_id from students where name='刘德华');

②查询比刘德华高的同一班的学生信息

select * from students where cls_id=( -> select cls_id from students where name='刘德华') -> and height>(select height from students where name='刘德华');

6.2 ANY/SOME子查询

(1)示例

查看赵老师所带的学生信息

select * from students where cls_id=any( -> select id from classes where teacher_id=( -> select id from teachers where name='赵老师'));

6.3 All子查询

(1)示例

查看学生所在班级

select * from students where cls_id >= all(select id from classes where teacher_id = (select id from teachers where name='赵老师'));

6.4 EXISTS子查询

(1)示例

①删除表

DROP TABLE IF EXISTS temp;

②查看存在王老师的班级表

select * from classes where exists (select * from teachers where name='王老师');

③查看存在赵老师的班级表

select * from classes where exists (select * from teachers where name='赵老师');

PS:exists主要目的是为了运行不报错,如果表不存在执行命令也不会报错

6.5 NOT EXISTS子查询

(1)示例

创建教师表

create table IF NOT EXISTS teachers( id int primary key, name varchar(20) );

PS:若表已存在,则不会出现新表也不会报错,可以看到执行完此命令后,库内表格数量没有变化

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

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

相关文章

RAG Agent记忆功能完全指南:3种方法解决长对话上下文丢失问题

本文介绍了为RAG Agent添加记忆功能的实现方法&#xff0c;重点讲解了如何通过消息列表实现短期记忆&#xff0c;以及解决长对话导致的上下文窗口限制问题&#xff0c;包括截断、删除和总结消息三种方法&#xff0c;并介绍了如何自定义AgentState来增强记忆能力&#xff0c;帮助…

Ehercat代码解析中文摘录<8>

12 工具从站协议栈代码工具允许根据用户特定要求和设置创建新的从站文件。从站文件列表&#xff1a;C源代码文件源代码文档&#xff08;可选&#xff09;设备描述&#xff08;ESI&#xff09;&#xff08;可选&#xff09;支持的操作系统&#xff1a;Windows XP, Vista, 7 (32位…

太流批了,老牌软件,数据对比神器

在日常工作中打工人有的时候需要整理表格和数据&#xff0c;需要在两个文档之间进行对比&#xff0c;看一看文件做了哪些修改。但是&#xff0c;如果用眼进行一行行对比的话就会很麻烦&#xff0c;而且效率会很慢。今天给大家推荐一款好用的数据对比软件&#xff0c;有需要的小…

收藏!裸辞转型AI大模型,我的完整攻略与经验分享

本文分享裸辞转型AI大模型的成功经历&#xff0c;包括转行动机、系统学习准备和面试经验。强调深入理解底层原理、做好经济心态准备、针对性优化简历和保持良好心态的重要性&#xff0c;为想进入AI领域的人提供实用参考。今年很重要的一个经历就是裸辞然后顺利转行到了AI大模型…

个性化旅游行程规划系统-计算机毕业设计源码+LW文档

摘要 随着人们生活水平的提高和旅游需求的日益增长&#xff0c;旅游已成为人们放松身心、拓展视野的重要方式。然而&#xff0c;在旅游过程中&#xff0c;行程规划、费用管理、信息分享等方面的问题也逐渐凸显。传统的旅游管理方式存在效率低下、信息不及时等问题&#xff0c;难…

北大团队创新方案:CKDA框架解决跨模态行人重识别的持续学习痛点

北大团队提出CKDA框架&#xff0c;解决跨模态行人重识别中的持续学习灾难性遗忘问题。该框架通过跨模态通用提示生成器提取共享特征&#xff0c;单模态专用提示生成器保留模态特有信息&#xff0c;以及跨模态知识对齐引擎防止遗忘。实验表明&#xff0c;该框架在四个主流数据集…

2026年--Lc333-328. 奇偶链表(链表)--java版

1.题目2.思路 原地重排链表&#xff1a; odd.nexteven.next&#xff1a;跳过偶数&#xff0c;把下一个奇数连起来 even.nextodd.next&#xff1a;跳过奇数&#xff0c;把下一个偶数连起来 最后把奇数链尾接回 evenHead 3.代码实现 /*** Definition for singly-linked list.* pu…

AI会取代前端吗?2026年前端发展路线图,建议收藏学习

AI无法完全取代前端开发&#xff0c;因缺乏人类的逻辑、沟通和创新能力。前端工作不仅是写代码&#xff0c;还包括与多团队协作。当前前端行业竞争激烈&#xff0c;要求不断提高&#xff0c;但仍有发展空间。前端工程师可考虑向管理、架构师或讲师方向发展&#xff0c;或继续深…

牛批了,桌牌台签神器,批量制作

在日常开会的时候&#xff0c;往往需要制作桌牌台签&#xff0c;排版和格式校对等问题也是非常头疼的。今天给大家推荐一款桌牌台签打印神器&#xff0c;能够快速高效的制作各种类型的桌牌&#xff0c;非常方便&#xff0c;有需要的小伙伴可以下载收藏。 桌牌台签打印 一键制作…

MySQL 数据库连接数查询、配置

MySQL 数据库的连接数是指同时与 MySQL 数据库建立的客户端连接数量。连接数与 MySQL 的性能密切相关&#xff0c;需要根据实际需求和服务器资源进行合理配置和优化。 1. 查看连接数1.1. 查看当前会话连接数 SHOW STATUS LIKE ‘Threads_connected’; 1.2. 查看历史最大连接数 …

MySQL5.7.44-winx64版本Windows Server下载安装教程图解

1、下载MySQL5.7.44安装包&#xff0c;MySQL :: Download MySQL Community Server (Archived Versions) 2、解压到D:mysql-5.7.44-winx64 目录下&#xff08;这个可以根据需要自行调整&#xff09;&#xff0c;解压后在根目录下创建my.ini和data文件夹。 [mysql] # 设置 my…

AI Agent记忆系统大揭秘:从“失忆“到“长记性“的进化之路(附代码实战)

本文详解AI Agent的记忆系统&#xff0c;分短期记忆与长期记忆两部分。短期记忆介绍3种优化策略(缩减法、卸载法、隔离法)及框架代码实现&#xff1b;长期记忆解析信息提取、向量存储、关系推理等技术&#xff0c;并提供Mem0/ReMe集成代码。展望记忆即服务、精细化管理、多模态…

MySQL 数据库基础

目录 什么是数据库 数据库分类 关系型数据库 非关系型数据库 SQL子语言 MySQL MySQL 存储数据的组织方式 数据库操作 显示当前数据库 创建数据库 使用数据库 删除数据库 什么是数据库 数据库 是一个用于存储、管理和检索数据的系统&#xff0c;可以组织和保存大量…

基于python大数据的协同过滤音乐推荐系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

K8S网络和基本命令 【 K8S (二)】

目录 一、Flannel 的核心基础&#xff08;通信前的准备&#xff09; 二、Flannel 的三种核心通信模式 场景 1&#xff1a;同节点内 Pod 通信&#xff08;无需 Flannel 隧道&#xff09; 场景 2&#xff1a;跨节点 Pod 通信&#xff08;Flannel 核心&#xff09; 模式 1&…

MySQL 的 INSERT(插入数据)详解

MySQL 的 INSERT&#xff08;插入数据&#xff09;详解 在 MySQL 中&#xff0c;INSERT 语句用于向数据库表中添加新的记录。INSERT 语句非常灵活&#xff0c;支持多种语法形式&#xff0c;可以根据具体需求选择合适的用法。以下是 INSERT 语句的详细语法和使用示例。 1. 插入单…

MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互

在现代应用中&#xff0c;数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言&#xff0c;提供了丰富的 API 来与各种数据库进行交互。本文将详细介绍如何在 Java 中连接 MySQL 数据库&#xff0c;并实现基本的数据交互功能。 一、环境准备 1.1 安装 MySQL 首先&am…

基于BS架构的积分制零食自选平台-计算机毕业设计源码+LW文档

摘要 本文介绍了一个基于BS&#xff08;Browser/Server&#xff0c;浏览器/服务器&#xff09;架构的积分制零食自选平台的设计与实现。该平台旨在为用户提供一个便捷、个性化的零食购物体验&#xff0c;并通过积分制度激励用户的消费行为。平台的前端采用HTML、CSS和JavaScrip…

MySQL 查看有哪些表

在 MySQL 数据库中&#xff0c;要查看某个数据库中有哪些表&#xff0c;你可以使用以下几种方法&#xff1a; 方法一&#xff1a;使用 SHOW TABLES 命令连接到 MySQL 服务器&#xff1a; 首先&#xff0c;你需要使用 MySQL 客户端工具&#xff08;如 mysql 命令行工具、MySQL W…

【收藏级】揭秘Claude Research:构建高性能多智能体AI系统的实战经验

Anthropic介绍了Claude Research功能的多智能体系统架构&#xff0c;由主导智能体协调多个并行子智能体完成复杂研究任务。该系统在开放式问题处理上表现优异&#xff0c;性能较单智能体提升90.2%。文章详细阐述了系统架构、执行流程、提示工程原则、评测方法及生产环境中的挑战…