MySQL表的增删改查(初阶)

news2024/12/24 21:42:21

        CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。且增删改查(CRUD,create,retrieve,update,delete)数据库的核心模块。

1. 新增(Create)

        实际上sql中使用insert来往表里插入数据(确保已经选中数据库并创建好相应的表);

Insert into 表名 values(列,列…..);

//这里给出的列的数目和类型与之前创建的表里面的相关信息要匹配。

1.1 单行数据 + 全列插入

        代码如下:

-- 插入两条记录,table表数量必须和定义表的列的数量及顺序一致
insert into chengyuan values (1,'沈梦瑶');
insert into chengyuan values (1,'袁一琦');

        结果如下:

         

2、查询(Retrieve)

2.1 单次插入多行数据 + 指定列插入

        1、一次插入多行

        在values后面写多组()就可以,代码如下:

//-- 插入两条记录,value_list 数量必须和指定列数量及顺序一致
insert into chengyuan values 
(2,'袁一琦'),
(3,'王奕');

        结果如下:

       

        2、指定列进行插入,可以进行操作成功。代码如下:

//将成员表的id指定为4的信息插入
 insert into chengyuan (id ) values (4);

        结果如下:

         

        注意:在控制台中我们可以通过向上和向下的方向键来显示我们上一行命令。

2.2 全列查询

        操作指令及注意事项如下:

// 通常情况下不建议使用 * 进行全列查询
// 1. 查询的列越多,意味着需要传输的数据量越大;
// 2. 可能会影响到索引的使用。(索引待后面课程讲解)
SELECT * FROM 表名;

        结果展示: 

       

2.3 指定列查询

        调整表固定列的参数顺序

        语法如下:

//指定列的顺序不需要按定义表的顺序来
SELECT  name, id FROM chengyuan;

        结果展示:

        

2.4 查询字段为表达式

        语法如下:

//指定列的顺序不需要按定义表的顺序来
SELECT id, id+10,name FROM chengyuan;

        结果如下:

        

2.5  设置为别名查询

        为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法如下:

SELECT id,name ,id+100 AS 总分 FROM chengyuan;

         结果如下:

        

  1. 当前表达式查询,并没有修改服务器上硬盘中存储的数据本体,只是在查寻结果的基础上进行运算的,得到的是一个临时表。(当这个操作结束,这里的数据就会消散,这里的数据库本体不会发生改变)->select操作不会改硬盘上的原始数据带来改变。
  2. 此处查询出来的临时表,每个列的类型不在受限于原始表。

2.6 去重:DISTINCT

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

        1、对一个列使用去重,使用语法如下:

SELECT DISTINCT id FROM chengyuan;

        结果展示:

        2、 对多个列使用去重,当两个列都有着相同的数据才会进行合并,否则只有一个列相同,数据不会发生合并,使用语法如下:

SELECT  DISTINCT  name,id FROM chengyuan;

         结果展示:

          

2.7 排序:ORDER BY

2.7.1 简单的升降序排序

        语法格式:

// ASC 为升序(从小到大)
// DESC 为降序(从大到小)
// 一般默认为 ASC
	select 列名 from 表名 order by 列名;

        (注意:order是一个关键字)

        最后一个列名就是排序的依据(不一定出现在select的列名中,order by也是针对临时表进行排序)

        如果一个查询语句没有order by,此时查询到的临时表,数据之间的顺序是不可以期望的。(mysql没有承诺一定要保持一种顺序)一定是要使用order by才能够明确制定一个顺序。

        NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面;

        操作代码:

1、升序(默认,asc)

        通过id对于数据信息进行升序排序

select * from chengyuan order by id;

2、降序(desc)

        通过id对于数据信息进行升序排序

select * from chengyuan order by id desc;

2.7.2 使用表达式及别名排序

        使用表达式语法:

select id + 100,name,id  from chengyuan order by id desc;

 

        使用别名:

select id ,name,id +10 newId  from chengyuan order by id desc;

2.7.3  可以对多个字段进行排序,排序优先级随书写顺序 

语法展示:

select *  from chengyuan order by name,id desc;

        1、使用字符串name进行排序,但是排序的内容不是按照中文字典进行排的序。

        2、Order by可以指定多个列来进行排序,在指定多个列的时候,也是有优先级的,前面的列,优先级高,后面的列优先级低。当优先级列的数值相同的时候,才会比较优先级低的列。

2.8 条件查询:WHERE

2.8.1 运算符的介绍

        比较运算符如下图所示:

           

        逻辑运算符:

             

注意事项:

  1. WHERE条件可以使用表达式,但不能使用别名。

  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分案例

2.8.2  基本查询

//查询id小于3的成员的名字( id< 60 )
SELECT name FROM chengyuan WHERE id < 3;

        结果如下图所示:

       

2.8.3 AND与OR 

        语法如下:

//查询id大于1分,且id小于4的成员,
//也可以使用between。。。and的语句使用,详见于后面
SELECT * FROM chengyuan WHERE id > 1 and id < 4;

//查询id小于1分,或id大于3的成员
SELECT * FROM chengyuan WHERE id < 1 or id > 3;


        结果如下图所示:

2.8.4 范围查询

        BETWEEN … AND …

         语法如下:

//查询id大于1分,且id小于4的成员,
//也可以使用between。。。and的语句使用
SELECT * FROM chengyuan WHERE id between 1 and  3;

        结果展示:

        IN

        语法代码:

// 查询id是 1 或者 2 或者 3 的成员
SELECT * FROM chengyuan WHERE id IN (1, 2, 3);


        结果展示:

2.8.5 模糊查询:LIKE

 代码如下:

 // % 匹配任意多个(包括 0 个)字符
SELECT name FROM chengyuan WHERE name LIKE '王%';-- 匹配到孙悟空、孙权

// _ 匹配严格的一个任意字符
SELECT name FROM chengyuan WHERE name LIKE '王_';-- 匹配到孙权

结果展示:

 2.8.6 NULL 的查询

        IS [NOT] NULL

        语法如下:

// 查询  name已知的同学姓名
SELECT * FROM chengyuan WHERE name IS NOT NULL;

// 查询 name未知的同学姓名
SELECT * FROM chengyuan WHERE name IS  NULL;


        结果展示:

2.9 分页查询

     LIMIT 关键字的用法:

     关键字limit,来限制这次请求返回多少个记录(一页里面有几条)

     分页查询则是最合适的能解决上述问题的方案,分页查询可以限制这一次查询最大查多少个记录。

-- 起始下标为 0

-- 从 0 开始,筛选 2 条结果
SELECT * FROM chengyuan  LIMIT 2;

-- 从 2 开始,筛选 2 条结果
SELECT * FROM chengyuan  LIMIT 2, 2;

-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT * FROM chengyuan  LIMIT 2,  OFFSET 2;

        结果如下:

3. 修改(Update) 

        update的操作都不是临时表,都是改为硬盘数据了,且Update也是一个危险的操作,sql没有相关的撤回操作。(无论是备份,还是恢复,都是有成本的,因为数据库里面数据很多,同时再恢复数据库的时候,数据库无法给外界提供服务,相当于数据库宕机)。

        语法格式:

Update 表名 set 列名 = 值 where 条件;

        语法代码:

// 将zhoushiyu的id变更为 0 
UPDATE chengyuan SET id = 0 WHERE name = 'zhoushiyu';

-- 将id变为 0的成员改为曾艳芬
UPDATE chengyuan SET name = '曾艳芬' WHERE id = 0;

         操作结果:

where 条件:指的是修改哪一行?

        我们进行修改,要定位到行和列在进行修改。如果不写条件,就是针对所有的行和列。

4. 删除(Delete)

        Delete from 表名 where 条件、order by 、limit;(把条件匹配符合要求的记录给删除掉)

//删除id = 2 的袁一琦这一行的chengyuanbiao
delete from chengyuan where id = 2;

        结果展示:

        Drop table是吧表本身和表里的数据都给删除了;

        Delete只是把表里的数据删除了。

ps:本次的内容就到这里了,如果大家感兴趣的话,就请一键三连!!!

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

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

相关文章

去面试性能测试工程师必问的问题,

性能测试的三个核心原理是什么&#xff1f; 1.基于协议。性能测试的对象是网络分布式架构的软件&#xff0c;而网络分布式架构的核心是网络协议 2.多线程。人的大脑是单线程的&#xff0c;电脑的cpu是多线程的。性能测试就是利用多线程的技术模拟多用户去负载 3.模拟真实场景。…

(详解版)创建线程的四种方式

文章目录 Java中创建线程的四种方式1. 继承Thread类并重写 run 方法来创建线程2. 实现Runnable接口并实现 run 方法来创建线程。3. 使用Callable接口创建线程4. 使用Executor框架创建线程 Java中创建线程的四种方式 接下来我会详细解释这四种方式创建线程如何实现. 我们如果要…

STM32——串口通信应用篇

一、引言 STM32微控制器是一款功能强大的嵌入式系统芯片&#xff0c;广泛应用于各种领域。其中&#xff0c;串口通信是其重要功能之一&#xff0c;可用于与外部设备进行数据交换和控制。本文将介绍STM32串口通信的基本原理、应用场景以及实现方法。 二、STM32串口通信基本原理 …

linux xxd命令(将文件或标准输入转换为hex(十六进制)和ASCII(美国信息交换标准代码)表示,或者从hex dump(十六进制转储)反向到二进制)

文章目录 Linux xxd命令安装xxd基本使用方法创建hex dump从hex dump恢复到二进制 命令选项疑难技术点解析在脚本中使用xxd从hex dump恢复数据 总结 Linux xxd命令 xxd是一个在Linux和UNIX系统中常用的工具&#xff0c;主要用于将文件或标准输入转换为hex&#xff08;十六进制&…

Java中线程状态的描述

多线程-基础方法的认识 截止目前线程的复习 Thread 类 创建Thread类的方法 继承Thread类,重写run方法实现Runnable接口,重写run方法使用匿名内部类继承Thread类,重写run方法使用匿名内部类实现Runnable接口,重写run方法使用Lambda表达式 run方法中的所有的代码是当前线程对…

[Linux] LVS负载均衡群集——DR模式

一、 DR模式的特点 直接路由&#xff1a; 在LVS_DR模式下&#xff0c;负载均衡器不修改数据包的IP地址&#xff0c;只修改目的MAC地址。这使得数据包可以直接路由到后端实际服务器上&#xff0c;而不需要返回到负载均衡器。 高性能&#xff1a; 由于数据包在传输过程中不需要回…

dubbo--03--- dubbo 支持的9种协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Dubbo框架特性Dubbo 和 Spring Cloud区别 dubbo 支持的9种协议协议类型1、dubbo 协议 (默认)特性配置常见问题 2、rmi 协议3、hessian 协议4、http 协议特性 5、web…

案例073:基于微信小程序的智慧旅游平台开发

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

【MYSQL】-表的操作

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

functools.partial:Python中灵活函数部分应用的工具

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python编程中&#xff0c;functools.partial是一个强大的工具&#xff0c;它提供了一种部分应用函数的方式&#xff0c;能够在创建新函数时固定部分参数&#xff0c;从而在后续调用中减少需要传递的参数数量。…

python中random.seed()和random.getstate()用法详解

python中random.seed()和random.getstate()用法详解 摘要 python的random包经常被用于模拟实验的重现&#xff0c;数据集的随机划分的确定性重现。然而&#xff0c;我本人之前对random.seed()什么时候调用&#xff0c;调用之后会对之后多少代码起决定性作用这一块感到云里雾里…

压测方案设计..

01 为什么要做压测 1、什么是压力测试&#xff1f; 不断向被测对象施加压力&#xff0c;测试系统在压力情况下的表现。 2、压力测试的目的是什么&#xff1f; 测试得出系统的极限性能指标&#xff0c;从而给出合理的承诺值或者容量告警&#xff1b; 找出系统的性能瓶颈&am…

清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时&#xff0c;可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令&#xff0c;若可乐近在眼前&#xff0c;下意识的反应会是迅速去拿&#xff1b;而当没看到可乐时&#xff0c;人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的…

51单片机简易出租车计费系统仿真设计

51单片机简易出租车计费系统仿真设计( proteus仿真程序报告讲解视频&#xff09; 仿真图proteus 8.9及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0036 1.主要功能&#xff1a; 出租车计费系统设计内容&#xff1a; 1、…

JDK17 SpringBoot3 整合常见依赖

JDK版本:17 SpringBoot 整合Mybatis Plus 、Redis等 依赖文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xs…

数据链路程协议

目录 数据链路层 介绍 以太网帧格式 目的地址 源地址 类型 CRC 数据 如何封装和解包 如何向上交付 MAC地址与IP地址 MTU 局域网数据转发 局域网数据碰撞 数据包转发 ARP协议 构建ARP请求 ARP请求的处理 ARP响应的构建 ARP欺骗 DNS域名解析 域名解析是什么…

标准IO与文件IO

标准IO通过缓冲机制减少系统调用&#xff0c;实现更高的效率 全缓冲&#xff1a;当流的缓冲区无数据或无空间时才执行实际IO操作 行缓冲&#xff1a;当在输入和输出中遇到换行符&#xff08;\n&#xff09;时&#xff0c;进行IO操作 当流和一个终端关联时&#xff0c;典型的行缓…

【06】GeoScene海图或者电子航道图数据自动化质检

1 S-58错误管理器验证产品 在你编辑数据时进行快速的质量检查可以使用S-58错误管理器&#xff0c;S-58错误管理器工具允许您使用IHO S-58验证标准来验证海事数据库中的产品。你可以验证整个产品&#xff0c;或验证产品的当前范围。 1.1验证产品 使用S-58错误管理器工具完成以…

服务器解析漏洞是什么?攻击检测及修复

服务器解析漏洞&#xff08;Server-side Include Vulnerability&#xff0c;SSI漏洞&#xff09;是一种安全漏洞&#xff0c;通常出现在支持服务器端包含&#xff08;SSI&#xff09;功能的Web服务器上。SSI是一种在Web页面中嵌入动态内容的技术&#xff0c;允许开发人员将外部…

Java 数据结构篇-实现二叉搜索树的核心方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 二叉搜索树的概述 2.0 二叉搜索树的成员变量及其构造方法 3.0 实现二叉树的核心接口 3.1 实现二叉搜索树 - 获取值 get(int key) 3.2 实现二叉搜索树 - 获取最小…