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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于flask+vue框架的的医院预约挂号系统i1616(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,医生,科室信息,就诊信息,医院概况,挂号信息,诊断信息,取消挂号 开题报告内容 基于FlaskVue框架的医院预约挂号系统开题报告 一、研究背景与意义 随着医疗技术的不断进步和人们健康意识的日益增强&#xff0c;医院就诊量逐年增加。传统的现场…

专业的UML开发工具StarUML

专业的UML开发工具StarUML 可靠的软件建模软件StarUML StarUML 是一款支持统一建模语言 (UML)框架的开源建模软件。它提供了几种类型的图表&#xff0c;并允许用户生成多种语言的代码。在它的帮助下&#xff0c;软件开发人员可以创建设计、概念和编码解决方案。但是&#xff0…

转化率(漏斗分析)——mysql计算过程

转化率(漏斗分析)——mysql计算过程 问题&#xff1a;有一张表&#xff0c;记录了不同用户的用户id&#xff0c;浏览页面时间&#xff0c;加入购物车时间&#xff0c;下单时间&#xff0c;支付时间&#xff0c;算出每天的各个环节的转化率 创建表info(含用户id&#xff0c;浏…

【Oracle专栏】sqlplus显示设置+脚本常用显示命令

Oracle相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 1.内容概述 本文主要针对oracle 运维中常用知识点进行整理&#xff0c;包括&#xff1a; 1&#xff09;sqlplus模式下&#xff0c;为了方便查询设置相应的行宽、列宽、行数。…

基于SpringBoot的“同城宠物照看系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“同城宠物照看系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 局部E-R图 系统首页界面 系统…

为什么要将PDF转换为CSV?CSV是Excel吗?

在企业和数据管理的日常工作中&#xff0c;PDF文件和CSV文件承担着各自的任务。PDF通常用于传输和展示静态的文档&#xff0c;而CSV因其简洁、易操作的特性&#xff0c;广泛应用于数据存储和交换。如果需要从PDF中提取、分析或处理数据&#xff0c;转换为CSV格式可能是一个高效…

docker简介-学习与参考

docker Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱…

Linux网络之传输层协议(UDP,TCP协议)

目录 重新认识端口号 端口号划分 netstat pidof UDP协议 UDP的特点 面向数据报 UDP的缓冲区 全双工和半双工 TCP协议 TCP的特点 TCP报头分析 源端口&#xff0c;目标端口&#xff0c;数据偏移(报文首部长度) 序号 确认号 窗口 6个标志位 ACK SYN …

【Python 入门基础】—— 人工智能“超级引擎”,AI界的“瑞士军刀”,

欢迎来到ZyyOvO的博客✨&#xff0c;一个关于探索技术的角落&#xff0c;记录学习的点滴&#x1f4d6;&#xff0c;分享实用的技巧&#x1f6e0;️&#xff0c;偶尔还有一些奇思妙想&#x1f4a1; 本文由ZyyOvO原创✍️&#xff0c;感谢支持❤️&#xff01;请尊重原创&#x1…

Minio分布式多节点多驱动器集群部署

Minio分布式多节点多驱动器集群部署 Minio分布式多节点多驱动器集群部署节点规划先决条件开放防火墙端口设置主机名更新域名映射文件时间同步存储要求内存要求 增加虚拟机磁盘(所有机器都要执行)部署分布式 MinIO测试上传与预览测试高可用MinIO 配置限制模拟单节点磁盘故障模拟…

开源工具推荐:Checkmate监控

1. 概述 GitHub&#xff1a;bluewave-labs/Checkmate: Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. 官网文档&#xff1a;Welcome …

Unity报错:InvalidOperationException: Insecure connection not allowed

Unity报错:InvalidOperationException: Insecure connection not allowed 介绍问题原因解决方案方案一&#xff1a;Unity配置文件修改方案二&#xff1a;将网址做备案和证书认证 总结 介绍 最近在做抖音小程序的升级&#xff08;官方换新API&#xff09;&#xff0c;框架的加载…

linux中安装部署Jenkins,成功构建springboot项目详细教程

参考别人配置Jenkins的git地址为https&#xff0c;无法连上github拉取项目&#xff0c;所以本章节介绍通过配置SSH地址来连github拉取项目 目录&#xff1a; 1、springboot项目 1.1 创建名为springcloudproject的springboot项目工程 1.2 已将工程上传到github中&#xff0c;g…

idea + Docker + 阿里镜像服务打包部署

一、下载docker desktop软件 官网下载docker desktop&#xff0c;需要结合wsl使用 启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动&#xff0c;不行就重启电脑) 打包成功的镜像在这里&#xff0c;如果频繁打包会导致磁盘空间被占满&#xff0c;需…

cpp中的继承

一、继承概念 在cpp中&#xff0c;封装、继承、多态是面向对象的三大特性。这里的继承就是允许已经存在的类&#xff08;也就是基类&#xff09;的基础上创建新类&#xff08;派生类或者子类&#xff09;&#xff0c;从而实现代码的复用。 如上图所示&#xff0c;Person是基类&…

MySQL - Navicat自动备份MySQL数据

对于从事IT开发的工程师&#xff0c;数据备份我想大家并不陌生&#xff0c;这件工程太重要了&#xff01;对于比较重要的数据&#xff0c;我们希望能定期备份&#xff0c;每天备份1次或多次&#xff0c;或者是每周备份1次或多次。 如果大家在平时使用Navicat操作数据库&#x…

el-input实现金额输入

需求&#xff1a;想要实现一个输入金额的el-input&#xff0c;限制只能输入数字和一个小数点。失焦数字转千分位&#xff0c;聚焦转为数字&#xff0c;超过最大值&#xff0c;红字提示 效果图 失焦 聚焦 报错效果 // 组件limitDialog <template><el-dialog:visible.s…

基于 C++ Qt 的 Fluent Design 组件库 QFluentWidgets

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库&#xff0c;内置超过 150 个开箱即用的 Fluent Designer 组件&#xff0c;支持亮暗主题无缝切换和自定义主题色。 编译示例 以 Qt5 为例&#xff08;Qt6 也支持&#xff09;&#xff0c;将 libQFluentWidgets.d…

Metal学习笔记八:纹理

到目前为止&#xff0c;您已经学习了如何使用片段函数和着色器为模型添加颜色和细节。另一种选择是使用图像纹理&#xff0c;您将在本章中学习如何操作。更具体地说&#xff0c;您将了解&#xff1a; • UV 坐标&#xff1a;如何展开网格&#xff0c;以便可以对其应用纹理。 •…

JWT使用教程

目录 JWT (JSON Web Token)1. JWT简介(1) 什么是JWT(2) JWT有什么用(3) JWT认证方式 2. JWT的组成部分3. 签名的目的4. JWT与Token的区别5 JWT的优势6 JJWT签发与验证token(1) 引入依赖(2) 创建 Token(3) 解析Token(4) 设置过期时间(5) 自定义claims 7. JWT自定义工具类 JWT (J…