MySQL 基本查询(一)

文章目录

  • Create(insert)
    • 指定列的单行插入和全列插入
    • 多行全列插入和指定列的多行插入
    • 如果主键存在,要插入替换存在的值
    • replace
  • 基本select
      • 全列查询
      • 指定列查询
      • where子句
      • where子句案例
        • 语文成绩在 [80, 90] 分的同学及语文成绩
        • 数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
        • 姓孙的同学 及 孙某同学
        • 语文成绩好于英语成绩的同学
        • 总分在 200 分以下的同学
        • 语文成绩 > 80 并且不姓孙的同学
        • 孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
      • NULL 的查询
      • order by 子句
      • order by 子句案例
        • NULL值比任何值都小
        • 查询同学各门成绩,依次按 数学降序,英语降序,语文升序的方式显示
        • 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示
      • 筛选分页结果

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

Create(insert)

指定列的单行插入和全列插入

create table students(
id int unsigned primary key auto_increment,
sn int unsigned unique key,
name varchar(30) not null,
qq varchar(30) unique key
);
// 指定列插入
insert into students (sn,name,qq) values(1,'张三','123456789');
// 全列插入
insert into students values(12,2,'李四','12345678');
// into可以省略
insert students values(13,3,'王五','123456'); 

多行全列插入和指定列的多行插入

// 全列插入
insert into students values(15,5,'曹操','12345'),
(16,6,'诸葛亮','123');
// 指定列插入
insert into students (sn,name,qq) values(6,'项羽','125'),(7,'张飞','126');

如果主键存在,要插入替换存在的值

  1. 由于 主键 或者 唯一键 对应的值已经存在而导致插入失败
// 发生主键冲突,把主键后面的属性都修改了
// 要更新的值不能和其他的主键和唯一键冲突
insert into students values(13,132,'xuyou','111111') on duplicate key update sn=132,name='xuyou',qq='111111';

在这里插入图片描述
在这里插入图片描述

2. 1行被影响,等价于数据直接插入,2行被影响,表中有冲突数据并且要被update更新,0行被影响,表中的老的数据和update要更新的值是一样的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 通过 MySQL 函数获取受到影响的数据行数

select row_count();

-1表示没有行受到影响

在这里插入图片描述

1行受到影响

在这里插入图片描述

replace

  1. 主键 或者 唯一键 没有冲突,则直接插入
  2. 主键 或者 唯一键 如果冲突,则删除后再插入
replace into students (name,name,qq) values(222,'张三','123');
  1. 1 row affected:表中没有冲突数据,数据被插入
  2. 2 row affected:表中有冲突数据,删除后重新插入

在这里插入图片描述

基本select

全列查询

  1. *,通配符,可以进行全列查询,把所有数据都遍历一遍,公司中不建议使用 * ,因为数据库的数据太多了,全遍历还是不方便查看
select * from 表名

指定列查询

  1. 指定列的顺序不需要按定义表的顺序来
select name,math,id from 表名
  1. select 可以帮你计算出表达式放到这一列中

在这里插入图片描述
在这里插入图片描述
4. 可以重命名表达式的名字

在这里插入图片描述
5. 也可以不带as重命名

在这里插入图片描述
在这里插入图片描述

// 多加一列,数学+10分的列
select name 姓名,math 数学,math+10 from exam_result;

6. 对查询结果进行去重

在这里插入图片描述

where子句

  1. where可以筛选行,只要包含了=的是不可以用来比较NULL的,是不安全的
  2. 比较运算符

在这里插入图片描述
3. 逻辑运算符
在这里插入图片描述

select name,english from exam_result where english < 60;

在这里插入图片描述

where子句案例

语文成绩在 [80, 90] 分的同学及语文成绩

select chinese,name from exam_result where chinese between 80 and 90;
select chinese,name from exam_result where chinese >= 80 and chinese <= 90;

在这里插入图片描述

数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
  1. in,如果是 option 中的任意一个,返回 TRUE(1)
select name,math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
// in表示只要在括号中存在的就满足条件
select name,math from exam_result where math in(58,59,98,99);
姓孙的同学 及 孙某同学
  1. like,模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
// 把姓孙的都匹配出来
select name from exam_result where name like '孙%';
// 把孙某匹配出来
select name from exam_result where name like '孙_';
语文成绩好于英语成绩的同学
select name,chinese,english from exam_result where chinese > english;
总分在 200 分以下的同学
select name,chinese+english+math as total from exam_result where chinese+english+math < 200;
  1. 筛选的条件是先从哪个表中找,再按条件筛选,最后要筛选出对应的属性,第三步才知道total,所以第二步才会报错

在这里插入图片描述

语文成绩 > 80 并且不姓孙的同学
select name,chinese from exam_result where chinese > 80 and name not like '孙%'; 
孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
select name,chinese,math,english,chinese+math+english as 总分 from exam_result where name like '孙_' or (chinese+math+english > 200 and chinese < math and english > 80);

在这里插入图片描述

NULL 的查询

  1. ’ ‘和NULL是不一样的,’ '是空串
select * from test where name is null;
select * from test where name is not null;

在这里插入图片描述
2. NULL和任何数比较都是NULL,NULL是不参与比较的

在这里插入图片描述
3. <=> 可以用于NULL比较,0表示假,1表示真
在这里插入图片描述

order by 子句

  1. asc为升序,desc为降序,默认是asc
  2. SELECT … FROM table_name [WHERE …]
    ORDER BY column [ASC|DESC], […];
// 按数学成绩升序排序
select name,math from exam_result where order by math asc;
// 按数学成绩降序排序
select name,math from exam_result where order by math desc;

order by 子句案例

NULL值比任何值都小

在这里插入图片描述

查询同学各门成绩,依次按 数学降序,英语降序,语文升序的方式显示
  1. 如果数学成绩相同,按照英语成绩升序的顺序排列,如果数学,英语成绩相同,按照语文升序的顺序排列
select name,math,english,chinese from exam_result where order by math desc,english desc,chinese asc;// 不显示给升序和降序,默认是升序排序
select name,math,english,chinese from exam_result
where order by math;
  1. 可以使用别名了,因为是先有别名,再使用别名
    在这里插入图片描述
查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示
  1. order by的执行顺序是比where的顺序要晚
select name,math from exam_result where name like '孙%' or name like '曹%' order by math desc;

筛选分页结果

// 筛选出前5行的数据
select * from exam_result limit 5;

在这里插入图片描述
2. 从第二条记录开始筛选

在这里插入图片描述

// n表示行数,s表示从下标哪个位置开始筛选
select * from test limit n offset s;

3. 对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死
4. 也可以进行分页操作,如下图,按三行分1页

在这里插入图片描述
5. 需要有数据才能排序,只有数据准备好了,你才需要显示,limit的本质功能是’显示’数据,并且limit的顺序等级是最后的,在排序后
6. 需要排序好后再分页查看,比如要查看5到10名的成绩,则需要排升序,再分页

在这里插入图片描述

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

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

相关文章

LeetCode路径总和系列问题解析:I、II、III的解决方案与优化

文章目录 引言一、路径总和 I&#xff08;LeetCode 112&#xff09;问题描述方法思路Java代码实现复杂度分析 二、路径总和 II&#xff08;LeetCode 113&#xff09;问题描述方法思路Java代码实现复杂度分析 三、路径总和 III&#xff08;LeetCode 437&#xff09;问题描述方法…

NFC 碰一碰发视频贴牌技术,音频功能的开发实践与技术解析

在数字化营销与信息交互场景中&#xff0c;NFC 碰一碰技术凭借其便捷性和高效性&#xff0c;成为快速传递多媒体内容的新选择。通过 NFC 实现视频音频的快速传输&#xff0c;不仅能提升用户体验&#xff0c;还能为各类场景带来创新应用。本文将深入探讨该功能开发过程中的关键技…

跨境电商生死劫:IP筛查三法则破解封号魔咒

一、血泪数据&#xff1a;90%封号案源于IP污染 跨境电商平台风控系统持续升级&#xff0c;2023年亚马逊全球封号案例中&#xff0c;67%涉及账号关联&#xff08;Marketplace Pulse数据&#xff09;&#xff0c;其中IP问题占比高达91%。更触目惊心的是&#xff1a; 新号存活率&…

MIPS架构详解:定义、应用与其他架构对比

一、MIPS架构的定义 MIPS&#xff08;Microprocessor without Interlocked Pipeline Stages&#xff09; 是一种经典的精简指令集&#xff08;RISC&#xff09;处理器架构&#xff0c;由斯坦福大学John Hennessy团队于1981年提出&#xff0c;强调高效流水线设计和硬件简化。 核…

第十六届蓝桥杯 2025 C/C++组 脉冲强度之和

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; P12338 [蓝桥杯 2025 省 B/Python B 第二场] 脉冲强度…

从Ping到iperf3:深度实战无线网络压测与优化指南

以下是测试无线网络稳定性的详细步骤与工具指南&#xff0c;涵盖信号质量、吞吐量、干扰排查等关键维度&#xff1a; 一、基础信号质量测试 1. 信号强度与覆盖测试 工具&#xff1a;手机APP&#xff08;WiFi Analyzer、NetSpot&#xff09;或笔记本&#xff08;Acrylic WiFi&a…

MySQL 连接池 (Pool) 常用方法详解

MySQL 连接池 (Pool) 常用方法详解 1. 创建连接池 首先需要创建连接池实例&#xff1a; const mysql require(mysql2/promise); // 使用Promise版本const pool mysql.createPool({host: localhost,user: root,password: password,database: test,waitForConnections: true…

大型连锁酒店集团数据湖应用示例

目录 一、应用前面临的严峻背景 二、数据湖的精细化构建过程 &#xff08;一&#xff09;全域数据整合规划 &#xff08;二&#xff09;高效的数据摄取与存储架构搭建 &#xff08;三&#xff09;完善的元数据管理体系建设 &#xff08;四&#xff09;强大的数据分析平台…

GNU gettext 快速上手

文章目录 1.简介2.核心概念国际化 (i18n)本地化 (l10n)POT 文件PO 文件MO 文件文本域翻译函数 3.主要组件4.使用示例参考文献 1.简介 GNU gettext 是一套用于软件国际化&#xff08;internationalization&#xff0c;i18n&#xff09;和本地化&#xff08;localization&#x…

分享:VTK版本的选择 - WPF空域问题

在早期版本中&#xff0c;ActiViz 对 Windows Presentation Foundation (WPF) 框架的支持是通过 WindowsFormHost 组件实现的&#xff0c;这种方式依赖于 WindowsForm 和 WPF 的互操作性。然而&#xff0c;这种方法存在一个众所周知的“空域问题”&#xff08;airspace issue&a…

python数据分析(六):Pandas 多数据操作全面指南

Pandas 多数据操作全面指南&#xff1a;Merge, Join, Concatenate 与 Compare 1. 引言 在数据分析工作中&#xff0c;我们经常需要处理多个数据集并将它们以各种方式组合起来。Pandas 提供了多种强大的多数据操作方法&#xff0c;包括合并(merge)、连接(join)、连接(concaten…

spring 面试题

一、Spring 基础概念 什么是 Spring 框架&#xff1f; Spring 是一个开源的 Java 应用程序框架&#xff0c;它提供了一种轻量级的、非侵入式的方式来构建企业级应用。Spring 的核心功能包括依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;、面向切面编程…

OpenCV-Python (官方)中文教程(部分一)_Day20

22.直方图 22.1直方图的计算,绘制与分析 使用 OpenCV 或 Numpy 函数计算直方图 使用 Opencv 或者 Matplotlib 函数绘制直方图 将要学习的函数有&#xff1a;cv2.calcHist(),np.histogram() 什么是直方图呢&#xff1f;通过直方图你可以对整幅图像的灰度分布有一个整体的 了…

数电发票整理:免费实用工具如何高效解析 XML 发票数据

如今数字电子发票越来越普及&#xff0c;但是数电发票的整理还是颇有讲究~ 今天给大家介绍一个 XML 发票阅读器。使用它完全不收取任何费用&#xff0c;且无广告干扰&#xff0c;对财务人员而言十分实用。 01 软件介绍 这款软件就是XML格式&#xff08;数电票&#xff09;阅读…

深度学习正则化:原理、方法与应用深度解析

摘要 本文深入探讨深度学习中的正则化技术&#xff0c;介绍其避免过拟合的重要性&#xff0c;详细讲解常见的正则化方法&#xff0c;如 L 1 L_1 L1​和 L 2 L_2 L2​正则化、Dropout等&#xff0c;并通过线性回归案例和神经网络训练流程对其进行直观阐释。帮助读者理解正则化原…

【爬虫】deepseek谈爬虫工具

2025 年&#xff0c;随着 Web 技术的演进和反爬机制的升级&#xff0c;工具生态也会进一步优化。以下是 2025 年爬虫 & 自动化测试的前沿工具预测&#xff0c;结合行业趋势和现有技术发展方向&#xff1a; &#x1f680; 2025 年推荐组合&#xff08;预测版&#xff09; 1…

SQLMesh 测试自动化:提升数据工程效率

在现代数据工程中&#xff0c;确保数据模型的准确性和可靠性至关重要。SQLMesh 提供了一套强大的测试工具&#xff0c;用于验证数据模型的输出是否符合预期。本文将深入探讨 SQLMesh 的测试功能&#xff0c;包括如何创建测试、支持的数据格式以及如何运行和调试测试。 SQLMesh …

Java学习手册:Spring 中常用的注解

一、组件注解 Component &#xff1a;用于标记一个类为 Spring 管理的 Bean&#xff0c;是 Spring 的基本组件注解。Spring 会通过类路径扫描自动检测并注册标记了 Component 的类为 Bean。Service &#xff1a;是 Component 的派生注解&#xff0c;用于标记服务层类&#xff…

前端跨域问题详解:原因、解决方案与最佳实践

引言 在现代Web开发中&#xff0c;跨域问题是前端工程师几乎每天都会遇到的挑战。随着前后端分离架构的普及和微服务的发展&#xff0c;跨域请求变得愈发常见。本文将深入探讨跨域问题的本质、各种解决方案以及在实际开发中的最佳实践。 一、什么是跨域问题&#xff1f; 1.1…

[计算机网络]物理层

文章目录 物理层的概述与功能传输介质双绞线:分类:应用领域: 同轴电缆&#xff1a;分类: 光纤&#xff1a;分类: 无线传输介质&#xff1a;无线电波微波&#xff1a;红外线&#xff1a;激光&#xff1a; 物理层设备中继器&#xff1a;放大器&#xff1a;集线器(Hub)&#xff1a…