MySQL数据库增删查改(基础)CRUD

news/2024/9/15 16:46:54/ 标签: 数据库, mysql
CRUD 即增加 (Create) 、查询 (Retrieve) 、更新 (Update) 、删除 (Delete) 四个单词的首字母缩写。

1. 新增(Create

1.1单行数据(全列插入)

比如说:创建一张学生表,有姓名,学号。插入两个学生。

命令:insert into 表名 values(参数,参数.......);

 1.2 多行数据 + 指定列插入

命令:insert into student(参数,参数....) values (参数,参数....), (参数,参数....);

可能有点草率看看例子:

 顺序不是问题,后面参数和前面括号参数对等就行。比如说上面的例子:

把id和name参数倒过来了,后面参数一一对应也可以。

2.查询 Retrieve

2.1全列查询

不推荐使用全列查询

原因:

命令:select * from 表名; 

2.2指定列查询

命令:select 参数(列),.... from 表名;

比如说上面例子我只要id或者说只要name;

当然也可以查询多个列:

2.3 查询字段为表达式  

比如说我们创建一个这样的表

命令:

-- 表达式不包含字段
SELECT id, name, 10 FROM exam_result;
-- 表达式包含一个字段
SELECT id, name, english + 10 FROM exam_result;
-- 表达式包含多个字段
SELECT id, name, chinese + math + english FROM exam_result;

第一个 效果:

第三个总分效果:

拓展一个现象:

2.4 别名

命令:select  表达式 as 别名 from 表名;

 

2.5 去重:DISTINCT  

使用 DISTINCT 关键字对某列数据进行去重:

命令:select distinct 列名 from 表名;

 

拓展:

 2.6 排序:ORDER BY

语法:

  1. ASC 为升序(从小到大)。
  2. DESC 为降序(从大到小)。
  3. 默认为 ASC。
1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
3. 使用 表达式 别名 排序
比如说查询同学及总分,由高到低
SELECT name, chinese + english + math FROM exam_result   ORDER BY chinese + english + math DESC ;
SELECT name, chinese + english + math total FROM exam_result ORDER BY total DESC ;
4. 可以对多个字段进行排序,排序优先级随书写顺序
-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC , english, chinese;
效果:

2.7 条件查询:WHERE

比较运算符:

运算符
说明
>, >=, <, <=
大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>
不等于
BETWEEN a0 AND a1
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)
如果是 option 中的任意一个,返回 TRUE(1)
IS NULL
NULL
IS NOT NULL
不是 NULL
LIKE
模糊匹配。 % 表示任意多个(包括 0 个)任意字符; _ 表示任意一个字

逻辑运算符:

运算符
说明
AND
多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR
任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT
条件为 TRUE(1),结果为 FALSE(0)
1. WHERE 条件可以使用表达式,但不能使用别名。
2. AND 的优先级高于 OR ,在同时使用时,需要使用小括号 () 包裹优先执行的部分
这里就不给大家演示了,直接看案例即可
案例:

基本查询:

-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english < 60 ;
-- 查询语文成绩好于英语成绩的同学
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
-- 查询总分在 200 分以下的同学
SELECT name, chinese + math + english 总分 FROM exam_result WHERE chinese + math + english < 200 ;

ANDOR

-- 查询语文成绩大于 80 分,且英语成绩大于 80 分的同学
SELECT * FROM exam_result WHERE chinese > 80 and english > 80 ;
-- 查询语文成绩大于 80 分,或英语成绩大于 80 分的同学
SELECT * FROM exam_result WHERE chinese > 80 or english > 80 ;
-- 观察 AND OR 的优先级:
SELECT * FROM exam_result WHERE chinese > 80 or math> 70 and english > 70 ;

 范围查询:

查询语文成绩在 [80, 90] 分的同学及语文成绩
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90 ;
-- 使用 AND 也可以实现
SELECT name, chinese FROM exam_result WHERE chinese >= 80 AND chinese <= 90 ;

指定数据查询:

查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
SELECT name, math FROM exam_result WHERE math IN ( 58 , 59 , 98 , 99 );
-- 使用 OR 也可以实现
SELECT name, math FROM exam_result WHERE math = 58 OR math = 59 OR math = 98 OR math = 99 ;

 模糊查询:LIKE

-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE ' %' ; -- 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE ' _' ;

解释:%在mysql这里代表的是多个任意字符,_代表的是 一个任意字符。

NULL 的查询:IS [NOT] NULL

-- 查询 qq_mail 已知的同学姓名
SELECT name, qq_mail FROM student WHERE qq_mail IS NOT NULL ;
-- 查询 qq_mail 未知的同学姓名
SELECT name, qq_mail FROM student WHERE qq_mail IS NULL;

 2.8 分页查询:LIMIT

--第1
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 0 ;
//id 的标号从0到3分成1页。
-- 2
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 3 ;
-- 3 页,如果结果不足 3 个,不会有影响
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 6 ;
解释 limit是数学里面的极限的意思。
上面说的都是没有真正修改硬盘里面的内容的。

3. 修改(Update

揭晓来才是修改硬盘里面的内容。

命令:update set 字段1=value1, 字段2=value2... where 条件;

案例:

-- 将孙悟空同学的数学成绩变更为 80
UPDATE exam_result SET math = 80 WHERE name = ' 孙悟空 ' ;
-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70
UPDATE exam_result SET math = 60 , chinese = 70 WHERE name = ' 曹孟德 ' ;
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30
UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT
3 ;
-- 将所有同学的语文成绩更新为原来的 2
UPDATE exam_result SET chinese = chinese * 2 ;

 比较简单容易忽略。

4. 删除(Delete

命令:delete from where 条件;

案例:

-- 准备测试表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
id INT ,
name VARCHAR ( 20 )
);
-- 插入测试数据
INSERT INTO for_delete (name) VALUES ( 'A' ), ( 'B' ), ( 'C' ); //id默认为null
-- 删除整表数据
DELETE FROM for_delete;

总结:

 感谢观看。


http://www.ppmy.cn/news/1520514.html

相关文章

新手c语言讲解及题目分享(十)——数组专项练习

C语言中的数组是一个用于存储多个同类型数据的集合。数组在内存中是连续分配的&#xff0c;可以通过索引访问其中的元素。以下是对C语言数组的详细讲解&#xff1a; 1. 数组的定义 数组的定义格式如下&#xff1a; type arrayName[arraySize]; - type&#xff1a;数组中元素…

数据结构---链表

指针和数组 数组的用途: 固定大小的存储: 数组用于存储固定大小的一组相同类型的元素。数组的大小在声明时必须指定&#xff0c;并且在程序运行期间不能改变。访问效率高: 数组允许通过下标进行快速访问&#xff0c;时间复杂度为 O(1)。内存连续性: 数组的元素在内存中是连续存…

网络安全面试经验分享:蘑菇街/网络安全

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 蘑菇街 介绍…

蓝牙协议栈API分析

蓝牙协议栈API分析是一个复杂但重要的任务&#xff0c;它涉及到蓝牙通信的各个方面&#xff0c;包括设备发现、连接建立、数据传输以及安全管理等。以下是对蓝牙协议栈API的详细分析&#xff0c;旨在提供一个全面的视角。 一、蓝牙协议栈概述 蓝牙协议栈是蓝牙技术实现的基础…

解决reCaptcha v2 Invisible:识别和参数

概述 reCaptcha v2 Invisible是一种旨在提供安全性而不打扰用户体验的验证码类型。与传统的验证码不同&#xff0c;reCaptcha v2 Invisible在检测到可疑活动时才会要求用户进行互动。本文将引导您如何使用CapSolver API识别并解决reCaptcha v2 Invisible挑战。 什么是reCaptc…

ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用

自2022年GPT&#xff08;Generative Pre-trained Transformer&#xff09;大语言模型的发布以来&#xff0c;它以其卓越的自然语言处理能力和广泛的应用潜力&#xff0c;在学术界和工业界掀起了一场革命。在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值…

计算机网络-VRRP切换与回切过程

前面我们学习了VRRP选举机制&#xff0c;根据VRRP优先级与IP地址确定主设备与备份设备&#xff0c;这里继续进行主备切换与主备回切以及VRRP抢占模式的学习。 一、VRRP主备切换 主备选举时根据优先级选择主设备&#xff0c;状态切换为Master状态&#xff0c;那当什么时候会切换…

科研学习|论文解读——OceanGPT:用于海洋科学任务的大型语言模型

摘要 海洋覆盖我们星球表面70%以上&#xff0c;对于理解生命的丰富储备和生物多样性至关重要。鉴于海洋在调节全球气候和支持经济中的关键作用&#xff0c;海洋科学研究具有重大意义。最近&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的进步改变了科学的范式。尽管在…

Linux下递归设置目标目录及其子目录和文件的权限

〇、背景 本文旨在简单介绍一个在Linux环境下批量修改目录及其子目录和文件的权限的方法。 一、实现 首先新建一个shell脚本文件&#xff0c;使用指令$ vi chmod.sh&#xff0c;然后在文件中输入下述代码。 #!/bin/bashOFFSET_INDEX" " DIR_MODE755 FILE_MODE664…

Oracle---PAG程序全局区的组成:堆栈区、会话区、游标区、排序区

文章目录 PGA程序全局区PGA主要内容1、排序区&#xff08;SORT AREA&#xff09;**为什么给排序设置合理的排序区大小** 2、会话区&#xff08;USER SESSON DATA&#xff09;3、堆栈区保存变量信息(STACK SPACE)4、游标区 (CURSOR STATE) PGA程序全局区 程序全局区或进程全局区…

AN7536PT时钟电路

目录 1 时钟电路概述2 时钟晶振电路2.1 需求分析2.2 晶振选型&#xff08;Datasheet表5-7解读&#xff09;2.3 设计晶振电路&#xff08;表4-1、图5-4&#xff09; 1 时钟电路概述 时钟电路是一种用于产生稳定、周期性脉冲信号的电子电路。它通常由晶体振荡器和相关逻辑电路组…

Luminar Neo for Mac智能图像处理软件【操作简单,轻松上手】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件…

Hackme靶场渗透攻略

步骤一&#xff0c;注册登录进去 步骤二&#xff0c;点击search 我们发现有很多书 步骤三&#xff0c;搜索一本书抓包发放到重放器 步骤四&#xff0c;数据改为1*&#xff0c;复制数据包到1.txt&#xff0c;然后打开sqlmap 步骤五&#xff0c;sqlmap查看当前数据库 python s…

阿尔茨海默病症识别+图像识别Python+人工智能+深度学习+TensorFlow+机器学习+卷积神经网络算法

一、介绍 阿尔茨海默病症识别。使用Python作为主要编程语言进行开发&#xff0c;基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法&#xff0c;通过对病症图片4种数据集进行训练[‘轻度痴呆’, ‘中度痴呆’, ‘非痴呆’, ‘非常轻微的痴呆’]&#xff0c;最终得…

TeeChart助力科研软件:高效实现数据可视化

在当今的科学研究中&#xff0c;数据可视化已经成为理解和传播复杂信息的关键工具。尤其是在物理研究领域&#xff0c;科学家们经常需要处理大量的数据&#xff0c;并通过可视化将这些数据转化为更易理解的形式。TeeChart作为一个强大且灵活的图形展示工具&#xff0c;能够帮助…

前端按钮通过浏览器下载附件

html <a click"downloadAttach(record.memoryAddress)">下载附件</a> js downloadAttach(url){var fileUrl window._CONFIG[staticDomainURL] url;window.open(fileUrl); } 配置文件 window._CONFIG[staticDomainURL] http://127.0.0.1:3000/xxx…

Spring Cloud Gateway的使用

Spring Cloud Gateway的使用 1. Spring Cloud Gateway原理2. Spring Boot项目中集成Spring Cloud Gateway2.1 创建项目与添加依赖2.2 配置网关 3. 高级功能与实践**3.1 配置过滤器****3.2 分组路由** 4. 监控与故障处理5. 部署与持续集成 在微服务架构中&#xff0c;服务发现、…

计算机网络(一) —— 网络基础入门

目录 一&#xff0c;关于网络 二&#xff0c;协议 2.1 协议是什么&#xff0c;有什么用&#xff1f; 2.2 协议标准谁定的&#xff1f; 2.3 协议分层 2.4 OSI 七层模型 2.5 TCP/IP 四层模型 三&#xff0c;网络传输基本流程 3.1 局域网中两台主机通信* 3.2 报文的封装与…

uniapp网站和微信小程序 添加 百度统计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、首先&#xff0c;需要在百度统计平台注册一个账户或登录现有的账户二、新建站点(应用)、添加代码三、代码获取与安装1.在官方网站 新增应用&#xff0c;根据官方…

kernel底层的蓝牙开发流程

kernel底层的蓝牙开发流程是一个复杂且细致的过程&#xff0c;它涉及到从内核配置、驱动编写、工具编译到最终的设备调试等多个环节。以下是一个详细的蓝牙开发流程&#xff0c;旨在为读者提供一个全面的视角。 一、前期准备 1. 确定开发环境 首先&#xff0c;需要确定开发所…