mysql数据库的表的增删查改

news2024/11/27 6:14:58

目录

表的增删查改

6.1:增加

6.2:查找

6.3:更新

6.4:删除

6.5: 插入查询结果

6.6:聚合函数

6.7:group by分组


关键字的先后顺序:from > on> join > where > group by > with > having > select > distinct > order by > limit

表的增删查改

6.1:增加

6.1.1:直接插入

语法:

INSERT [INTO] table_name
        [(column [, column] ...)]
        VALUES (value_list) [, (value_list)] ...


value_list: value, [, value] ...

主表: 

单行全列插入:

多行指定列插入:

6.1.2:判断插入时候是否更新:

语法:

INSERT ... ON DUPLICATE KEY UPDATE
        column = value [, column = value] ...

-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,并且数据已经被更新(更新值为update后的值)

通过mysql函数获取收到影响的最近数据行数

语法:SELECT ROW_COUNT();

6.1.3:替换

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入

-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

6.2:查找

SELECT
        [DISTINCT] {* | {column [, column] ...}
        [FROM table_name]
        [WHERE ...]
        [ORDER BY column [ASC | DESC], ...]
        LIMIT ...

6.2.1:select查询

通常情况下不建议使用 * 进行全列查询
1. 查询的列越多,意味着需要传输的数据量越大
2. 可能会影响到索引的使用

全列查询:

指定列查询:

查询字段为表达式:

 

 为查询结果指定别名:

语法:SELECT column [AS] alias_name [...] FROM table_name;

结果去重:

6.2.2:where条件查询

比较运算符和逻辑运算符:

运算符说明
=等于,NULL不安全,NULL = NULL结果为NULL
<=>等于,NULL安全,NULL <=> NULL的结果是TRUE(1)
>大于
<小于
>=大于或等于
<=小于或等于
<> 或 !=不等于
BETWEEN ... AND ...在两个值之间
LIKE模糊搜索模式,% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
IN (...)在给定列表中
IS NULL是空值
IS NOT NULL不是空值
AND逻辑"与",如果两个操作数都为TRUE,则条件成立
OR逻辑"或",如果两个操作数中任何一个为TRUE,则条件成立
NOT逻辑"非",如果条件为TRUE,则逻辑NOT条件为FALSE,反之亦然

6.2.3:排序

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC


SELECT ... FROM table_name [WHERE ...]
        ORDER BY column [ASC|DESC], [...];

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

升序:

降序:

6.2.4:分页筛选 

语法:

-- 起始下标为 0


-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n


-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;

-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

实例:

6.3:更新

语法:

UPDATE table_name SET column = expr [, column = expr ...]
        [WHERE ...] [ORDER BY ...] [LIMIT ...]

注意:没有where时候将会全表修改,慎用!

实例: 

6.4:删除

6.4.1:普通删除

语法:

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

注意:没有where时候将会全表删除,慎用!

实例:

6.4.2:截断表

语法:

TRUNCATE [TABLE] table_name

注意:这个操作慎用
1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;

2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚

3. 会重置 AUTO_INCREMENT 项

6.5: 插入查询结果

语法:

INSERT INTO table_name [(column [, column ...])] SELECT ...

实例:

创建一张表sstu像stu一样

插入查询结果:

6.6:聚合函数

函数说明
COUNT(column)返回某列的行数
AVG(column)返回某列的平均值,不是数字没有意义
MAX(column)返回某列的最大值,不是数字没有意义
MIN(column)返回某列的最小值,不是数字没有意义
SUM(column)返回某列之和,不是数字没有意义

6.7:group by分组

语法:

select column1, column2, .. from table group by column;

实例:

having和group by配合使用,对group by结果进行过滤:

 

注意:虽然having语句和where类型,但是having的执行是靠后的,等全部筛选完才过滤,而where是先过滤在筛选

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

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

相关文章

C语言实现三子棋小游戏

目录 游戏介绍 游戏菜单的创建&#xff08;menu&#xff09; 游戏核心功能实现 棋盘的初始化&#xff08;InitBoard&#xff09; 棋盘的展现&#xff08;printfboard&#xff09; 玩家下棋&#xff08;playerBoard&#xff09; 电脑下棋&#xff08;computerBoard&#…

探究C++构造函数及其优化

目录 一、 类的六个默认成员函数1.1 框架图1.2 具体介绍&#xff08;1&#xff09;构造函数&#xff08;2&#xff09;析构函数&#xff08;3&#xff09;拷贝构造函数&#xff08;4&#xff09;赋值运算符重载函数 归纳我们不写&#xff0c;编译器默认生成了什么&#xff1a; …

2023宁波市赛 天一永安杯赛前模拟题部分wp

Web pop 进hint.php 伪协议读index.php <?php class Tiger{public $string;protected $var;// 恶意参数public function __construct($var){$this->var $var;}public function __toString(){return $this->string;}public function boss($value){// 0eval($valu…

自动化测试作为软件测试的一种技术手段,时常被大家讨论

自动化测试作为软件测试的一种技术手段&#xff0c;时常被大家讨论。本人在自动化技术方面有过略有小成&#xff0c;今天聊一聊关于自动化的一些误区&#xff0c;以帮助新手能正确的了解和认识自动化一些概念。 测试的行为本质是什么&#xff1f; 为什么先从这个概念开始谈起&…

OpenGL之创建窗口

目录 什么是OpenGL&#xff1f; 核心模式与立即渲染模式 立即渲染模式 (Immediate mode) 核心模式(Core-profile) 状态机 对象 创建窗口 配置环境 什么是OpenGL&#xff1f; 一般它被认为是一个API(Application Programming Interface, 应用程序编程接口)&#xff0c;…

黑客最常用的10款黑客工具

以下所有这些工具都是捆绑在一起的Linux发行版&#xff0c;如Kali Linux或BackBox&#xff0c;所以我们一定会建议您安装一个合适的Linux黑客系统&#xff0c;使您的生活更轻松 - 尤其是因为这些黑客工具可以&#xff08;自动&#xff09;更新。 1、Nikto&#xff08;网站漏洞…

中断与freeRTOS任务进行同步

S32K144在做CAN通信时&#xff0c;通过FlexCAN中断接收CAN数据&#xff0c;并希望让freeRTOS 的CAN处理任务拿到CAN数据并进行数据处理。因此就需要找到能够满足中断与freeRTOS任务进行同步的方式方法。 遇到这个问题&#xff0c;第一时间想到的就是查找freeRTOS手册《FreeRTO…

Spring 拦截器

目录 今日良言&#xff1a;心若有所向往&#xff0c;何惧道阻且长 一、Spring 拦截器 1.拦截器简介 2.实现自定义拦截器 今日良言&#xff1a;心若有所向往&#xff0c;何惧道阻且长 一、Spring 拦截器 1.拦截器简介 Spring Boot 拦截器是面向切面编程-----AOP 的具体实现…

人工智能基础部分17-隐马尔科夫模型在序列问题的应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分16-隐马尔科夫模型在序列问题的应用&#xff0c;隐马尔可夫模型(HMM)是一种统计模型&#xff0c;广泛应用于各种领域&#xff0c;如语音识别、自然语言处理、生物信息学等。本文将介绍隐马尔可夫模…

杂记——25.eclipse如何连接并实现对数据库的操作

这篇文章我们来讲一下eclipse&#xff08;即编辑器&#xff09;如何连接并实现对数据库的操作&#xff0c;这里以eclipse为主连讲解演示一下。 第一步&#xff1a; 查看我们本机安装的数据库的版本&#xff0c;即查看我们本机是否安装了数据库 在命令提示窗口输入&#xff1…

games103——作业3

实验三主要使用FEM和hyperelastic模型完成弹性体的模拟 完整项目已上传至github。 文章目录 Linear finite element method(FEM)二维空间有限元方法变形梯度(Deformation Gradient)格林应变(Green Strain)应变能量密度函数(Strain Energy Density Function)力(Force) Finite Vo…

威胁猎人 | 2018年上半年国内公有云云上资产合规现状报告

声明&#xff1a;本报告版权属于威胁猎人情报中心&#xff0c;并受法律保护。转载、摘编或利用其它方式使用本报告文字或者观点的&#xff0c;应注明“来源&#xff1a;威胁猎人”。违反上述声明者&#xff0c;将追究其相关法律责任。 一、报告背景 自2005年亚马逊发布AWS伊始…

基于nodejs+vue3 的高仿网易云音乐

大家好&#xff0c;我是小寻&#xff0c;欢迎大家关注我的公众号&#xff1a;工具优选&#xff0c;加入前端、java群聊哦&#xff01; 今天给大家分享一个超高水准的项目&#xff1a;基于nodejsvue3研发的高仿网易云音乐&#xff0c;项目内容出自寻码网&#xff01; 技术栈&a…

行业唯一丨冠珠瓷砖荣获人民日报社“ESG年度案例”

践行社会责任&#xff0c;推动品牌高质量发展。5月11日&#xff0c;由人民日报社指导、人民日报社经济社会部主办的“中国企业社会责任高峰论坛”在上海盛大举行。 本次论坛围绕乡村振兴、共同富裕、绿色低碳等重点议题进行深入研讨&#xff0c;邀请国家发展和改革委员会、商务…

Thread线程学习(2) Linux线程的创建、终止和回收

目录 1.首先要了解什么是线程ID&#xff0c;以及它的作用是什么 2.创建线程 3.终止线程 4.回收线程 5.总结 在Linux系统中&#xff0c;线程是轻量级的执行单元&#xff0c;能够在同一个进程中并发执行。本文将介绍如何在Linux环境下创建、终止和回收线程&#xff0c;并提供…

〖Web全栈开发③〗—HTTP协议和静态web服务器

HTTP协议和静态web服务器 &#xff08;一&#xff09;三次握手和四次挥手&#xff08;二&#xff09;HTTP协议2.1 HTTP协议的定义2.2 HTTP协议的组成 &#xff08;三&#xff09;搭建python自带静态web服务器3.1 静态web服务器是什么3.2 如何搭建python自带的静态web服务器3.3 …

【栈和队列】的特性以及基本接口的实现

目录 一、栈 1.1 栈的概念 1.2 栈的接口实现 二、队列 2.1 队列的概念 2.2 队列的接口实现 2.3 栈和队列的区别 三、栈和队列LeetCode练习 3.1 力扣_232.用栈实现队列 3.2 力扣_225.用队列实现栈 3.3 力扣_622.设计循环队列 3.4 力扣_20.有效的括号 一、栈 第一次学…

电容在电路中的作用

电容、也称为电容器&#xff0c;字面意思理解就是一种“装电的容器”&#xff0c;是一种容纳电荷的器件。它拥有两个电极板&#xff0c;由两个电极板及其中间所夹的介质封装而成。 常用电容极性判断&#xff1a;   铝电解电容&#xff1a;长脚为正极&#xff0c;短脚为负极&…

【MySQL学习】MySQL索引特性

文章目录 一、初识MySQL索引1.1 MySQL索引的概念1.2 MySQL索引的作用 二、MySQL的数据存储2.1 MySQL存储与磁盘之间的关系2.2 MySQL与磁盘交互的基本单位2.3 认识数据页Page 三、索引的理解3.1 测试案例3.2 探究单个和多个Page存储数据时的情况3.3 页目录3.4 为什么InooDB存储引…