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 指定的列名和排序规则执行最后的排序

本篇到此结束,内容详细,制作不易,求赞啦啦啦~~ 

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

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

相关文章

离线安装bitnami-gitlab8.8.4+汉化

注意: 常规安装gitlab需要联网,而按装bitnami-gitlab无需联网(bitnami-gitlab用于内网环境无法联网时安装gitlab,两者是一个东西只是名字不一样)bitnami-gitlab-8.8.4版本可以汉化成功新用户注册账户无需激活也可以直接登录,因为…

探究互联网数字化商品管理变革:从数据化到精准运营的路径转型

在当前的互联网经济背景下,商品管理已经进入了一个高度数字化的新时代。随着大数据、云计算、人工智能等技术的迅猛发展,传统的商品管理模式正在经历一场深刻的变革。企业不再仅仅依赖信息化系统来进行数据存储和管理,而是通过更加智能、精准…

Ubuntu 上所有正在监听的端口

要查看 Ubuntu 上所有正在监听的端口,可以使用以下命令: 使用 ss 命令 ss 是一个常用的工具,可以查看网络套接字的状态,包括正在监听的端口。 bash 复制 ss -tuln -t:显示 TCP 套接字。 -u:显示 UDP 套接…

200元运动蓝牙耳机有哪些?爆款测评PK力荐!

在运动场景下,传统的入耳式和半入耳式耳机虽然占据了大部分市场,但并不适合所有人,尤其是在长时间运动中佩戴时,耳道的压迫感往往会导致不适。而骨传导耳机虽然通过不塞入耳道的方式改善了佩戴舒适度,但在音质方面与入…

git-合并连续两次提交(一个功能,备注相同)

前言: 场景是这样,由于我是实现一个功能,先进行了一次commit,然后我发现写的有些小问题,优化了一下功能并且把代码优化了一次,于是又提交了一次。两次的提交都是以相同的备注(当然这个无所谓)&a…

keras的内部的模块有哪些? (自用便签)

AI回答, 什么时候忘了回来看看

OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 轮询已按下的键。 函数 pollKey 无等待地轮询键盘事件。它返回已按下的键的代码或如果没有键自上次调用以来被按下则返回 -1。若要等待按键被按…

Transformer 与 CNN的对比

Transformer 相比于 CNN 的优点主要体现在以下几个方面: Transformer 相比 CNN 的优点: 全局依赖建模能力:Transformer 的核心机制是 自注意力机制,它可以直接建模输入序列中任意两个位置之间的依赖关系,无论它们之间的距离有多远。 相比之下,CNN 更擅长处理局部信息,它…

如何在分布式环境中实现高可靠性分布式锁

目录 一、简单了解分布式锁 (一)分布式锁:应对分布式环境的同步挑战 (二)分布式锁的实现方式 (三)分布式锁的使用场景 (四)分布式锁需满足的特点 二、Redis 实现分…

IP不纯净的后果及解决方案

在如今的互联网时代,知识产权(IP)保护显得尤为重要。随着社交媒体的迅猛发展,尤其是以TikTok为代表的短视频平台的崛起,内容创作者面临着越来越多的挑战,其中之一便是IP不纯净的问题。本文将探讨做IP不纯净…

12、论文阅读:利用生成对抗网络实现无监督深度图像增强

Towards Unsupervised Deep Image Enhancement With Generative Adversarial Network 摘要介绍相关工作传统图像增强基于学习的图像增强 论文中提出的方法动机和目标网络架构损失函数1) 质量损失2) 保真损失3)身份损失4)Total Loss 实验数据集实现细节评…

redis 使用

打开redis 前台启动 同路径下打开redis-server 出现窗口,即启动成功 此时关闭窗口,redis关闭; 不管有没有使用密码,或者使用了什么密码,都能连上 如果使用下文提到的redis cli增加密码,就只能使用你设置的…

【机器学习】任务七:聚类算法 (K-means 算法、层次聚类、密度聚类对鸢尾花(Iris)数据进行聚类)

目录 1.基础知识 1.1 K-Means 算法 1.2 层次聚类(Hierarchical Clustering) 1.3 密度聚类(DBSCAN) 1.4 距离和相似度度量方法 1.5 总结: 2.K-means 算法对鸢尾花(Iris)数据进行聚类 2.1…

手写 | 设计模式

这里写目录标题 观察者 vs 发布订阅 观察者 vs 发布订阅 参考代码 观察者模式,一对多,两个角色:观察者observer和被观察者/主题Subject。 Subject维护一个数组,记录有哪些Observer;通过调自身的noticefy方法&#xf…

Linux - 环境变量 | 命令行参数 | 进程基础

文章目录 一、了解冯诺依曼体系结构1、概念2、对数据层面3、实例二、操作系统1、概念2、设计OS的目的3、定位4、操作系统怎么管理? 三、进程1、概念2、怎么管理进程3、描述进程-PCB4、描述进程怎么运行(粗略)5、进程属性6、创建子进程7、创建…

mac 安装最新版nginx

1. clone最新版本源代码: git clone https://github.com/nginx/nginx.git 2. 下载PCRE 没有PCRE那我们就下,下载地址:https://sourceforge.net/projects/pcre/files/pcre/,笔者下载的pcre-8.45.zip,下载之后解压到ngi…

实战RAG第一天——llama_index向量索引,查询引擎,搜索知识库问答,全部代码,保姆级教学

一、llama_index简介 llama_index(以前称为 GPT Index)是一个用于构建、查询、索引大型文档和数据集的开源框架。它的核心功能是帮助开发者将大语言模型(LLM)与自己的数据集无缝集成,从而进行知识库的构建、查询等任务。llama_index 使用 Python 编写,并结合了多种大语言…

Qt 窗口悬停事件和鼠标跟踪

悬停事件 //这行代码用于启用窗口部件(widget)的悬停事件跟踪功能。 setAttribute(Qt::WA_Hover, true); 作用 setAttribute(Qt::WA_Hover, true); 这行代码的作用是设置窗口部件的一个属性标志,使其能够接收悬停事件(hover eve…

解码生成式AI产品全攻略:看这一篇就够了

解码生成式AI产品全攻略 随着人工智能技术的不断发展,生成式AI产品逐渐成为人们生活中不可或缺的一部分。生成式AI产品能够根据输入的指令或数据生成新的、独一无二的内容,具有广泛的应用场景,如音乐、图像、视频、文本等。但是,…

图片dpi怎么调整?这几个方法让你轻松搞定!

在数字化时代,图片的质量直接关系到视觉体验的效果。无论是社交媒体分享、网页展示还是专业打印,调整图片的DPI(Dots Per Inch,每英寸点数)都是至关重要的一步。今天,我们就来聊聊如何轻松调整图片的DPI&am…