MySQL表的增删改查操作(CRUD)

news2024/11/24 2:16:23

  • 1. 新增
    • 1.1 插入一行+全列插入
    • 1.2 插入多行+指定列插入
  • 2. 查询
    • 2.1 全列查询
    • 2.2 指定列查询
    • 2.3 查询字段为表达式
    • 2.4 起个别名 as
    • 2.5 去重 distinct
    • 2.6 排序 order by
    • 2.7 条件查询 where
    • 2.8 分页查询 limit
  • 3. 修改 update
  • 4. 删除 delete

增删查改(CRUD)即:增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)。

1. 新增

语法:

insert into 表名 values(字段,字段,...);

在这里插入图片描述

  • 操作表前要先use 数据库;
  • insert into 和values是关键字;
  • 插入的数据要和定义表的列,类型,数量以及顺序一致;

1.1 插入一行+全列插入

现有student表:

 create table student (name varchar(50),id int);
insert into student values ('Wendy',20);
  • 即插入一整行数据,每列都要插入元素,否则会报错.;

在这里插入图片描述

1.2 插入多行+指定列插入

insert into student (列名,列名..) values (..),(...);

在这里插入图片描述

  • 需要指定列时,在表名后 指定列,并且插入数据和指定列的顺序要和定义列的数量及顺序,类型等一致;

2. 查询

2.1 全列查询

select * from 表名;
  • select from 为关键字,*号相当于通配符,即把表所有内容都查询出来;

在这里插入图片描述

2.2 指定列查询

所有查询出来的结果是一个临时表,并不会改变原表的内容

以下介绍的字句都适用于select查询语句中

select 列名 ,列名,..from 表名;
  • 列名可以多个,此时指定列不需要按表的顺序来.
    在这里插入图片描述

2.3 查询字段为表达式

select 表达式 from 表名;
  • 表达式即:+,-,加减乘除…;
  • 查询出来的结果是一个临时表,并不会改变原来的表的内容;
  1. 表达式不包含字段,即没有意义的表达式;

在这里插入图片描述

  1. 表达式包含一个字段:给math加10分;

    查询出来的临时表math加了10分,但是原表内容并没有改变
    在这里插入图片描述

  2. 表达式包含多个字段

在这里插入图片描述

2.4 起个别名 as

为查询结果中的列指定一个小名,以小名作为该列的名称:

as 也可以省略

select 列名 as ,列名 as ...  别名 from 表名;

在这里插入图片描述

2.5 去重 distinct

使用distinct 关键字,对于查询的指定列去重

select distinct 列名 from 表名;

在这里插入图片描述

  • math 为60分出现了2次,去重后,查询出来的结果只有一个60分;

2.6 排序 order by

select 列名,列名...from 表名 order by 列名,列名... asc/desc;
  • ASC 为升序 / DESC 为降序
  • 没有order by字句的查询,返回的查询结果顺序是未定义的;
  • NULL数据,视为比任何值都小,升序出现最上面,降序出现最下面;
  1. 查询同学总分,使用表达式及别名,按升序排序

在这里插入图片描述

  1. 对多个字段进行排序,math按升序

在这里插入图片描述

2.7 条件查询 where

比较运算符:

运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,NULL不安全,如:NULL = NULL 结果是NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=,<>不等于
between a and b范围匹配,[a, b],如果 a <= value <= b,返回 TRUE(1)
in (option,…)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字
  • NULL很特殊,列名 = NULL 结果也是NULL,一般不用 =来判断是否为NULL

逻辑运算符:

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)【类似 &&,并且】
OR任意一个条件为 TRUE(1), 结果为 TRUE(1) 【类似 ||,或者】
NOT条件为 TRUE(1),结果为 FALSE(0)
  • where 条件可以使用表达式,不能使用别名
  • and 的优先级高于or,同时使用时,需要使用小括号();

and 和or 示例:

-- 查询 math 数学不及格 并且 English 英语也不及格的同学
select name,math,English from student where math < 60 and English < 60;
--查询 数学 比 英语 好的同学
select name,math,English from student where math > English;
--查询 总分在 150 分以下的同学 或者 英语不及格的同学
select name,math , English from student where math+English < 150 or English < 60;

范围查询 between …and…

-- 查询数学成绩在[60,80]分的同学
select name,math from student where math between 60 and 80;
-- 或者使用and运算符
select name,math from student where math >=60 and math <= 80;

in:

-- 查询数学成绩是 60 或者 70 或者 90 的同学
select name,math from student where math in (60,70,90);
--或者使用 or 运算符
select name,math from student where math = 60 or math = 70 or math = 90;

模糊查询:like

-- % 匹配任意个字符(包括0个或多个字符)
select name from student where name like '帅%';
-- _ 匹配一个任意字符(只有一个字符)
select name from student where name like '帅_';
  • ‘帅%’,表示,名字首个字符是帅即匹配查询成功,如可以查询到:帅哥,帅气男孩…
  • 也可以’%帅’,即名字首字符不做要求,只要是名字最后一个字符是帅,即查询成功,如:你好帅,真帅…
  • ‘帅__’,名字首字符为帅即匹配成功,并且只能查询到2个字符的,如果要查询3个字符,就要多加一个__
  • ‘_帅’,即名字最后一个字符为帅,并且只能查询2个字符的名字

NULL的查询,is [not] null

-- 查询 math成绩 已知的同学
select name,math from student where math is not null;
-- 查询math成绩未知的同学
select name,math from student where math is null;

2.8 分页查询 limit

语法

select 列名... from 表名 limit s,n;//从第s条开始筛选n条结果.
select 列名... from 表名 limit n offset s;//同上 
  • 查询结果下标默认为0开始
  • 在不指定从第几条开始时,limit默认从0开始筛选
  • s可以指定从第几条开始筛选,n可以指定筛选几条结果.
-- 第一页
select id,name math,from student order by id limit 0,3;//从0下标开始,筛选3条结果
-- 第二页
select id,name,math from student order by id limit 3, 3;//从3下标开始,帅选3条结果
-- 第三页
select id,name,math from student order by id limit 3 offset 6;//从6下标开始,筛选3条结果
-- 如果结果不足3个,不会有影响

3. 修改 update

语法:

update 表名 set 列名 = XXX ,列名 = XXX,....
  • where字句和order by 字句,limit字句可以嵌入到update等句中;

示例:

-- 将 pop 同学的数学成绩 改为 100
update student set math = 100 where name = 'pop';
-- 将 总成绩倒数前三的 同学数学成绩加上30
update student set math = math + 30 order by math+English desc limit 3;
-- 将 所有数学成绩 改为 100
update student set math = 100;

4. 删除 delete

语法

delete from 表名 (where ..../ order by..../ limit....);
  • 删除表是非常危险的操作哦~不可逆
-- 删除 pop同学的信息
delete from student where name = 'pop';
-- 删除 student表;
delete from student ;

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

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

相关文章

STC51单片机34——五线四相步进电机驱动(1个步进电机)

/*-------------------------------------------------------------------------------- MCU: STC15W408AS 注意其没有T1&#xff0c;但是有T2 开发板: STC15W408AS最小系统板 晶振: 内部时钟11.0592M&#xff0c;波特率3…

JavaScript面向对象:面向过程与面向对象

面向对象编程介绍 两大编程思想 面向过程 面向对象 面向过程编程 POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用就可以了。 举个栗子&#xff1a;…

STM32 CRC计算单元(循环冗余校验)

STM32第三篇【1】STM32 CRC计算单元【2】STM32 CRC简介【3】STM32 CRC主要特性【4】STM32 CRC功能描述【5】STM32 CRC寄存器【6】STM32 数据寄存器&#xff08;CRC_DR&#xff09;【7】STM32 独立数据寄存器&#xff08;CRC_IDR&#xff09;【8】STM32 控制寄存器&#xff08;C…

数字化转型模块设计

基于了解到现状及问题&#xff0c;设计部门提出如下的业务需求&#xff1a; 创建三维通用模型仓库&#xff1a; 在Windchill创建相应的存储库及文件夹&#xff0c;分别存储不同类型的通用模型&#xff0c;例如标准件、通用件、外购件等等&#xff1b;对于存储库及文件夹针对所…

k8s 资源管理

文章目录1. 资源管理介绍2. 资源管理方式2.1 命令式对象管理Kubectl 命令资源对象类型子命令输出格式namespace / pod的创建和删除演示2.2 命令式对象配置2.3 声明式对象配置3. kubectl 可以在 node 节点上运行吗&#xff1f;4. 使用推荐&#xff1a;三种方式应该怎么用&#x…

【王道计算机网络笔记】计算机网络体系结构-计算机网络体系结构与参考模型

文章目录计算机网络分层结构OSI参考模型TCP/IP参考模型5层参考模型5层参考模型的数据封装与解封装计算机网络分层结构 我们把计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之&#xff0c;计算机网络的体系结构就是这个计算机网络及其所应完成的功能的…

Hash表实现原理

Hash表查找的本质就是&#xff1a;在创建记录表的时候&#xff0c;确定记录的key与其存储地址之间的关系f&#xff0c;当要查找keyk的记录时&#xff0c;通过关系 f 就可得到相应记录的地址而获取记录&#xff0c;从而免去了key的比较过程 我们把这个关系 f 称为Hash 函数&…

1.3 字符编码

文章目录1. 编码2. ASCII 字符集3. 字符编码发展4. Unicode 字符集5. 字符编码5.1 UTF-165.3 UTF-325.3 UTF-86. 文件编码转换7. 乱码问题1. 编码 计算机只能识别高低电平, 将高低电平用数字表示: 0表示低电压, 1表示高电平. 于是就创造出来二进制数, 一个二进制有 0 和 1, 两…

【网络工程】5、路由器介绍及配置实操

接上篇《4、企业级交换机配置》 之前我们通过eNSP完成了一个企业级交换机的配置实例&#xff0c;本篇我们继续来讲解网络设备——路由器的介绍&#xff0c;以及完成路由器的相关配置实操。 当我们申请了一条宽带后&#xff0c;一般都需要一台路由器来进行上网&#xff0c;那么…

SpringBoot项目创建及其核心设计思想

参考了很多相关博客: springboot怎么学&#xff1f; - 知乎 如何解读springboot 中约定大于配置、JPA是什么、咋用_打豆豆。的博客-CSDN博客 SpringBoot约定大于配置到底是什么意思&#xff1f;_zhupanlinch的博客-CSDN博客 SpringBoot约定大于配置的特性解读 & SpringBoot…

胶囊网络深入理解

胶囊网络的概念与理解 胶囊网络概述 人工神经元不应当追求神经元活动中的视角不变性&#xff0c;&#xff08;使用单一的标量输出来总结一个局部池中的重要特征的检测器的活动&#xff09;。而应当使用局部的胶囊&#xff0c;这些胶囊对其输入执行一些相当复杂的内部计算。然…

【Java】Java中时间的相关类(Date,SimpleDateFormat)

文章目录Date类SimpleDateFormat类Date类 Date是JDK提供的类&#xff0c;用来描述时间&#xff0c;使用无参构造创建的对象默认表示系统的当前时间&#xff0c;使用有参构造&#xff08;指定的毫秒值&#xff09;表示从时间原点&#xff08;1970年&#xff09;过了该参数值的时…

08_原始套接字

知识点1【原始套接字概述】 1、UDP封包格式 ​IP封包格式&#xff1a; Ethernet封包格式 TCP封包格式&#xff1a; ICMP封包格式&#xff1a;ping 知识点2【数据包的分析】 案例&#xff1a;网络分析器&#xff1a; 知识点2【混杂模式】接受数据&#xff08;了解&#x…

win11+WSL2安装visdom

win11WSL2安装visdom环境配置下载visdom小小的修改运行visdom环境配置 Win11WSL2Ubuntu-18.04 下载visdom pip install visdom pip install --upgrade visdom conda install -c conda-forge visdom 小小的修改 \home\grass\miniconda3\envs\torch\lib\python3.8\site-pack…

[一篇读懂]C语言九讲:线性表应用

[一篇读懂]C语言九讲&#xff1a;线性表应用1. 与408关联解析及本节内容介绍1 与408关联解析2 本节内容介绍2. 线性表的顺序表示原理解析1 线性表线性表的定义线性表的特点2 线性表的顺序表示顺序表的定义顺序表优缺点顺序表插入操作顺序表删除操作动态分配3. 顺序表的初始化及…

微服务系列之单体架构

随笔 终于迎来了“微服务、云原生”系列文章&#xff0c;这个系列的文章的更新速度博主无法保证能够每个星期一篇&#xff0c;因为这个系列的难度比以往系列都要高&#xff08;以往的系列就没有保证一个星期一更&#xff09;。但是长时间不去写文章&#xff0c;自己可能会慢慢…

Keepalived+LVS部署

目录 一、环境准备 二、实验拓扑 三、部署LVS DR环境 四、LVS服务器配置keepalived 1、安装keepalived 2、修改lvs1服务器keepalived配置 3、修改lvs2服务器keepalived配置 五、客户端测试 1、负责均衡测试 2、LVS服务器高可用测试 一、环境准备 准备4台centos服务器…

学习日记(单元测试、反射、注解、动态代理)

文章目录学习日记&#xff08;单元测试、反射、注解、动态代理&#xff09;一、单元测试1. 单元测试实践2. JUnit 常用注解二、反射1. 反射获取类对象2. 反射获取构造器对象3. 反射获取成员变量对象4. 反射获取成员方法对象三、反射的作用举例1. 绕过编译阶段为集合添加数据2. …

基于生物地理学的优化算法(BBO)用于训练多层感知器(MLP)【多种算法进行比较】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

java中的BigDecimal使用

文章目录1、什么是BigDecimal&#xff1f;2、为什么使用BigDecimal&#xff1f;3、如何使用BigDecimal&#xff1f;&#xff08;1&#xff09;BigDecimal初始化赋值&#xff08;2&#xff09;加减乘除运算&#xff08;3&#xff09;BigDecimal保留两位小数及舍入模式&#xff0…