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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c#编写的各类应用程序、类库的引用(黑白盒)

001 课程简介,C# 语言简介,开发环境准备 (yuque.com)https://www.yuque.com/yuejiangliu/dotnet/timothy-csharp-001 一个Solution里包含多个Project 一、见识 C# 编写的各类应用程序 二、类库的引用(黑/白盒引用) 1、黑盒引用&a…

HCIP-HarmonyOS Application Developer 习题(十三)

(多选)1、在设计应用框架的过程中,我们常用的界面应用框架有哪些? A、启动页 B、详情页 C、列表视图 D、网格视图 答案:ABCD 分析: (多选)2、触摸屏以触控的方式进行输入。它可以支持以下哪些…

一、go入门

go入门 Go历史1.1 诞生时间1.2 里程碑1.3 团队核心人员 2. 为什么使用Go3. 安装Go5. 入门案例6. 开发工具 Go历史 1.1 诞生时间 Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用…

客户案例 | Ansys与台积电和微软合作加速光子仿真

Ansys与台积电和微软展开合作,将硅光子器件的仿真和分析速度提高10倍以上 主要亮点 借助使用NVIDIA图形处理单元(GPU)的Microsoft Azure虚拟机,Ansys Lumerical™ FDTD 3D电磁仿真的光子器件仿真速度实现了10倍提升 凭借Azure云…

渲染纹理的玻璃效果

1. 玻璃效果基本原理 要实现玻璃效果,可能会联想到使用透明相关知识来进行制作。透明固然可以制作出玻璃透明的效果,但是它在许多地方有所缺陷,比如: 透明无法表现出复杂的光学效果,玻璃不仅仅是透明的,它…

智慧社区Web解决方案:Spring Boot框架探索

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于web的智慧社区设计与实现的相关信息成…

SpringBoot中的Component和ComponentScan注解工作原理

Spring IoC 容器的工作是通过管理对象的生命周期和配置来保持业务逻辑清晰,但是 Spring 容器并不会自动知道要管理哪些 bean。所以我们来告诉 Spring 应该处理哪些 bean 以及如何处理,很简单这就是 Spring 的 Component 和 ComponentScan 注释的作用所在…

Docker 安装sql server 登陆失败

错误: Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]. Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : Client unable to establish co…

IDEA使用Alibaba Cloud Toolkit插件自动化部署jar包

一、下载插件 二、添加服务器主机 三、填写自己服务器配置 四、添加配置 五、配置说明 六、选择maven打包模块 七、maven打包后的jar包位置配一下 八、点击运行发现成功

sap abap 为何某字段不可以使用统计功能

查看是否字段错误了 以上图为例,wmeng 并不存在于 vbap表中, 而是存在于 vbep 表中,所以改成vbep表就可以成功了

Llama3-Factory模型部署新手指南

一、介绍 为了保持其公司在人工智能开源大模型领域的地位,社交巨头Meta推出了旗下最新开源模型。当地时间4月18日,Meta在官网上宣布公布了旗下最新大模型Llama 3。目前,Llama 3已经开放了80亿(8B)和700亿(…

谷歌-BERT-第四步:模型部署

1 需求 需求1:基于gradio实现大模型的WEB UI交互界面 2 接口 3 示例 import gradio as gr from transformers import *classifier pipeline("text-classification", model"./model", tokenizer"./model")gr.Interface.from_pipel…

个性化图像生成新SOTA!阿里开源MIP-Adapter,可将无需微调的IP-Adapter推广到同时合并多个参考图像。

今天给大家介绍阿里最近开源的个性化图像生成的新方法MIP-Adapter,将无需微调的预训练模型(IP-Adapter)推广到同时合并多个参考图像。MIP-Adapter会根据每个参考图像与目标对象的相关性来给这些图像分配不同的“重要性分数”。这样&#xff0…

借老系统重构我给jpa写了个mybatis风格的查询模块

因为公司老系统是用hibernate3开发的,重构自然过渡到使用Spring Data JPA。由于系统中对sql的使用方式还是手动为主,这就造成在service层存在大量的sql拼接方式,后续维护比较困难。 因为怀念以往项目对sql驱动的持久层开发用的mybatis的时光&…

HTB:Bashed[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many open TCP ports are listening on Bashed? 2.What is the relative path on the webserver to a folder that contains phpbash.php? 3.What user is the webserver running as on Bashed? 执行命令:whoami 4.S…

【前端】如何制作一个自己的网页(8)

以下内容接上文。 CSS的出现,使得网页的样式与内容分离开来。 HTML负责网页中有哪些内容,CSS负责以哪种样式来展现这些内容。因此,CSS必须和HTML协同工作,那么如何在HTML中引用CSS呢? CSS的引用方式有三种&#xff1…

构建后端为etcd的CoreDNS的容器集群(六)、编写自动维护域名记录的代码脚本

本文为系列测试文章,拟基于自签名证书认证的etcd容器来构建coredns域名解析系统。 一、前置文章 构建后端为etcd的CoreDNS的容器集群(一)、生成自签名证书 构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容…

Linux C接口编程入门之ioctl操作

ioctl函数用于系统调用操作特殊文件的底层设备参数。例如终端的许多操作特性可以用ioctl()请求来控制。不能用于read()、write()、open()、close()函数表示的I/O操作通常都能用ioctl表示。 fd参数为某个设备或文件已打开的文件描述符; request参数指定了将在fd上执…

大数据测试:Charles修改响应数据

上一篇大数据测试:Fiddler修改响应数据-CSDN博客 ,有同学反馈有没有Charles的方式修改响应数据,本篇就是Charles修改数据操作步骤,相比较fiddler,Charles相对简单,便捷,我很喜欢 1、背景&…

web网页---新浪网页面

代码&#xff1a; <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>新浪网</title> </head> <style>ul.menu > li{list-style: none; } …