MySQL中的增查操作:探索数据的奥秘,开启数据之门
本节,我们继续深入了解MySQL,本章所讲的基础操作,针对的是表的增删查改!
一、Create 新增
1.1、语法
INSERT [INTO] table_name[(column [, column] ...)]
VALUES(value_list) [, (value_list)] ...
value_list: value, [, value] ...
1.2、示例
向 student 表中新增喜羊羊及其id;
#单行数据全列插入
insert into student values (1,'喜羊羊');#单行数据指定列插入
insert into student (name) values ('懒洋洋');
insert into student (id,name) values (3,'小灰灰');#多行数据指定列插入
insert into student (id,name) values (4,'沸羊羊'),(5,'慢羊羊');
(1) 单行数据全列插入(如喜羊羊的插入)
(2) 单行数据指定列插入(如懒洋洋的插入,未设置默认值是,默认为NULL)
(3) 多行数据指定列插入(如沸羊羊和慢羊羊的插入)
由上述示例可知:插入一条新数据行时,字段名处可以是一个或者是多个,后面括号内应按照字段名的顺序,设置对应的值,若有字符串类型的值,应使用英文单引号包裹


如果,我们插入的值与前面字段名顺序或数据类型不匹配时,会发生什么?
insert into student (id,name) values ('测试','无名氏');insert into student (id,name) values ('测试','7');

报错:整数值不正确:第 1 行的列 'id' 的 'test'
二、Retrieve 查询
2.1、语法
SELECT[DISTINCT]select_expr [, select_expr] ...[FROM table_references][WHERE where_condition][GROUP BY {col_name | expr}, ...][HAVING where_condition][ORDER BY {col_name | expr } [ASC | DESC], ... ][LIMIT {[offset,] row_count | row_count OFFSET offset}]

2.2、示例
先创建如下空表:

插入数据后,查询 student 表中的所有列:

2.3、扩展
2.3.1、指定列查询

2.3.2、查询字段为表达式
2.3.3、列+常量
当我们给这些同学记录好成绩后,发现语文某题出错了,我们需要补偿给每位同学10分,这时我们可以用到该方法:

2.3.4、列+列
既然列可以在需要的情况下加一个常量,那么列可以加列吗?答案是可以的!我们来演示一下,求一下每为同学的总成绩:

2.3.5、为查询结果指定别名
上图所示可能有些麻烦,我们可以使用 as 简化一下,即可代替列名 如下:
select id,name,Chinese,Math,English,Chinese+Math+English as '总分' from student;

注意:
(1)as 是可省略的
(2)别名可以不加单引号,但是别名中若存在空格,必须加引号
(3)生成存在别名列的表为临时表,执行完输出之后就被删除了
(4)每个字段名后都可以加 as 代替当前字段名
2.4、去重查询

不久,我们班级新来了一个同学叫做“光头强”,顺利通过了考试,我们发现其英语成绩竟然和“懒羊羊”成绩一样!

英语老师要求列出所有英语分数,但是不准有重复的,我们就可以使用 distinct 关键字去重 :

2.5、Where 条件查询
2.5.1、运算符
2.5.2、示例
2.5.2.1、基本查询
(1)查询英语为35分的同学
注意:此时当某位同学的英语成绩为NULL,查询结果会忽略该同学
select id,name,English
from student
where English=35;

(2) 查询英语成绩大于语文成绩的同学
select id,name,Chinese,English
from student
where English>Chinese;

2.5.2.2、AND和OR
(1)查询语文成绩大于70分或英语成绩大于70分的同学
select id,name,Chinese,English
from student
where Chinese>70 or English>70;

2.5.2.3、范围查询
(1)查询数学成绩范围在70和90之间的同学
select id,name,Math
from student
where Math between 70 and 90;

2.5.2.4、模糊查询
select id,name
from student
where name like '%羊羊';
多组其他测试如下:
2.5.2.5、NULL的查询
同学们学习了几天后,又来了一位新同学“熊二”,由于它在英语考试中途太饿了,想要吃蜂蜜,所以英语成绩暂时没有:
但是老师不记得是谁没考英语成绩,就想调查一下:
select id,name,English
from student
where English is null;
2.6、Order by 排序
2.6.1、语法
SELECT ... FROM table_name [WHERE ...] ORDER BY {col_name | expr } [ASC |
DESC], ... ;
升序:ASC 降序:DESC
2.6.2、总成绩排名
select id,name,Chinese+Math+English as total
from student
order by total desc;

(1)某列为NULL参与运算,与其他数值比较时,NULL被视为比任何值都小(包含负数)
(2)ORDER BY 子句中可以使用列的别名进行排序
(3)查询中没有ORDER BY 子句,返回的顺序是未定义的
2.7、分页查询
老师要查找总成绩前三的同学及其总成绩:
select id,name,Chinese+Math+English as total
from student
order by total desc
limit 0,3;

三、总结
本篇我们详细讲解了增添,查询的各个操作,如有缺漏,欢迎在评论区补充,看完本篇,我们来补充一个小知识,观察下面代码:

为什么使用 where 条件查询时,不能使用别名?

奥奇小课堂:
这和MYSQL中执行SQL语句的顺序有关:
(1)要查询数据,先要确定表,先执行 from
(2)查询过程中要根据查询条件把符合条件的数据过滤出,此时执行 where
(3)执行 select 后面的指定列,这些列需要加入最终结果
(4)排序操作,根据 order by 指定的列名和排序规则执行最后的排序
本篇到此结束,内容详细,制作不易,求赞啦啦啦~~
相关文章:
MySQL中的增查操作:探索数据的奥秘,开启数据之门
本节,我们继续深入了解MySQL,本章所讲的基础操作,针对的是表的增删查改! 一、Create 新增 1.1、语法 INSERT [INTO] table_name[(column [, column] ...)] VALUES(value_list) [, (value_list)] ... value_list: value, [, va…...
oracle_查询建表语句
查询建表语句 SELECTdbms_metadata.get_ddl ( TABLE, <table_name> ) FROMdualdbms_metadata.get_ddl:是Oracle提供的一个函数,用于获取数据库对象的DDL语句,它允许你查看或导出数据库对象的创建脚本‘TABLE’: 是这个函数…...
004-按照指定功能模块名称分组
按照指定功能模块名称分组 一、说明1.现在有一个需求:2.具体做法 二、代码案例三、效果展示 一、说明 1.现在有一个需求: 需要把一个功能模块的几个功能点放在同一个文档目录下,这几个功能点分布在不同的 Controller 2.具体做法 需要把他…...
ChatGPT写作助手:论文写作必备提示词一览
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的发展,ChatGPT在学术写作领域的应用越来越广泛。它不仅能够帮助撰写论文,还可以通过不同的提示词完成构思、文献综述、数据分析、润色等任务&a…...
大数据开发电脑千元配置清单
大数据开发电脑配置清单 电脑型号HUANANZHI 台式电脑操作系统Windows 11 专业版 64位(Version 23H2 / DirectX 12)处理器英特尔 Xeon(至强) E5-2673 v3 2.40GHz主板HUANANZHI X99-P4T(P55 芯片组)显卡NVIDIA GeForce GT 610 ( 2…...
VP9官方手册-帧内预测
8.5.1 intra prediction process...
windows 自定义scheme协议。
浏览器打开自定义scheme参考上一篇:Chromium 自定义scheme协议启动过程分析c 1、注册表里面按照如下格式填写自定义scheme协议导入: Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\jdtest] "URL:jdtest Protocol" "URL Proto…...
什么是SQLite?
一、什么是SQLite? SQLite是一个进程内的软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其它数据库,SQLite引擎不是…...
域1:安全与风险管理 第2章-人员安全与风险管理
第二章的内容确实较为丰富,需要细心且耐心地逐步消化和理解。不妨放慢阅读速度,对每个要点都进行深入思考,确保自己真正掌握了其核心意义。这样,虽然可能花费更多时间,但能够更扎实地掌握第二章的知识,为后…...
php中的错误和异常捕获
目录 一: 异常(Exceptions) 二: 错误(Errors) 三:实际项目的异常和错误处理 在PHP中,异常(Exceptions)和错误(Errors)是两个不同的…...
nextjs项目中,使用postgres的完整案例
目的 通过此案例,可以简单快速的过一下数据库的操作,熟悉app-router这种模式下,client component和server component的两种组件中基本的接口使用。 技术栈 nextjs14.2.* app-routervercel/postgres0.10.*typescript5 重要事情说三遍1 ap…...
tsconfig.json 内容解读
tsconfig.json 文件是 TypeScript 项目的主要配置文件,用于指定编译选项和项目设置。通过这个文件,你可以控制编译器的行为,例如输出文件的路径、模块解析方式、严格类型检查等。 以下是一些常见的 tsconfig.json 属性及其详细解释ÿ…...
KClass-关于kotlin中的反射
override val responseType: KClass<SetOperationModeResponse> SetOperationModeResponse::class,这段代码的含义: responseType 是一个只读属性(val),它的类型是 KClass<SetOperationModeResponse>。KClass<T&…...
Java集合剖析2】Java集合底层常用数据结构
一、数据结构与集合 接下来就要学习集合具体的实现类了,集合的实现类底层可能用1种或多种数据结构来存储数据。所以在学习集合的实现类前,我们有必要了解一下一些常见的数据结构,这样我们在后面查看集合实现类的底层源码时,才不会…...
java 第10天 String创建以及各类常用方法
一.String创建的两种形式 1.通过new的当时 String strnew String(); 2.不new的方式 String s1""; 二.new 和不new的方式的区别是什么 不new创建的字符串首先是拿着值去常量池中查找,是否有该内容,有就用常量池该字符串的地址࿰…...
VS 解决方案里面.vs文件夹
VS解决方案中的.vs文件夹主要用于存储当前用户在解决方案中的工作配置。 这些配置包括多个方面: 窗口布局和选项卡状态:.vs文件夹记录了VS关闭前最后的窗口布局以及最后打开的选项卡。这样,当用户重新打开解决方案时,可以继续之前…...
初试PostgreSQL数据库
文章目录 一、PostgreSQL数据库概述1.1 PostgreSQL的历史1.2 PostgreSQL安装1.3 安装PostgreSQL二、PostgreSQL起步2.1 连接数据库2.1.1 SQL Shell2.1.2 执行SQL语句2.2 pgAdmin 42.2.1 打开pgAdmin 42.2.2 查找数据库2.2.3 打开查询工具2.2.4 执行SQL语句三、实战小结文章目录…...
springboot3导出数据库数据到excel
一、导入依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.3.0</version></dependency><d…...
十四、行为型(观察者模式)
观察者模式(Observer Pattern) 概念 观察者模式(Observer Pattern)是一种行为型设计模式,它定义了对象间的一对多依赖关系,当被观察的对象(主题)状态发生改变时,所有依赖…...
爬取简书1
import osfrom selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.edge.service import Service import timeimport pandas as pdfrom selenium.webdriver.common.action_chains import ActionChainsdef get_aws():# 如果 WebDr…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...

