MySQL基础操作全攻略:增删改查实用指南(上)

news2024/9/22 9:31:04

本节目标:

CRUD : Create, Retrieve Update Delete
新增数据
查询数据
修改数据
删除数据

1. CRUD

注释:在 SQL 中可以使用 “-- 空格 + 描述 来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete) 四个单词的首字母缩写。

2. 新增(Create

语法:inesert into 表名values(值,值,值....);
案例:
输入类型不匹配,会出现以下报错
在控制台中,通过 向上键就可以找到之前输入的命令

上述插入数据的时候,虽然values后面,第一列写的是字符串类型,会尝试自动转成int.'100'=> 100
第二列写的是 整数类型,会尝试自动转成字符串,200 => '200'

上述这样的转换,就是“隐式类型转换”
对于Java来说,是非常排斥的.

比较支持隐式类型转换,称为“弱类型系统
不太支持隐式类型转换,称为“强类型系统

2.1 单行数据 + 全列插入

insert into 表名(列名,列名...)values(值,值....)

2.2 多行数据 + 指定列插入

语法:insert into 表名values(值,值....)(值,值....)(值,值....)
配合使用,一次插入多行,一次指定列插入

2.3插入时间

注意:2024-05-11  中间要用-隔开
          20:53:00  中间用:隔开

3. 查询(Retrieve

3.1全列查询


(查询出这个表中的所有的行和所有的列.)

语法:select * from 表名;

*称为“通配符”


*可以指代所有的列.

3.2 指定列查询


(查询的时候手动指定列名.得到的结果,就是和列名关联的. select 列名, 列名 ...... from 表名;)

比如当前只需要关注两列,一共有20列.
使用指定列查询,得到的数据量就比全列查询要少很多.

3.3 查询字段为表达式

这样的结果,只是数据库查询过程,生成的“临时表’

数据库本体(数据库服务器硬盘上的数据)是没有任何改变的~

3.4 别名

如果表达式简单,一眼就能看明白,如果表达式比较复杂,就没法直观观察了 ....

此处就可以给表达式取别名. 此时别名就是查询结果的列名.

语法:select  列名 ,列名(或表达式)as 别名 from 表名;

as可以省略

3.5 去重:DISTINCT

语法:select distinct 列名 from表名;
使用DISTINCT关键字对某列数据进行去重:

去重的意思,多个行的数据,如果出现相同的值,就会只保留一份 ~~

3.6 排序:ORDER BY

(箭头方向表示降序)
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

3.6.1.升序排序

asc可以省略不写,表示显示升序
进行排序的时候,select后面写什么都没有影响

3.6.2降序排序

此处desc 时descend的缩写
之前desc表名,describe

3.6.3. 使用表达式别名排序

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

-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

3.7 条件查询:WHERE

比较运算符:
注意
MySQL没有=号
在where中,=表示比较相等,在其他地方,=还可能表示赋值
逻辑运算符:
1. WHERE 条件可以使用表达式,但不能使用别名。
2. AND 的优先级高于 OR ,在同时使用时,需要使用小括号 () 包裹优先执行的部分

基本运算符

-- 查询英语不及格的同学及英语成绩 ( < 60 )
-- 查询语文成绩好于英语成绩的同学

and与or

-- 查询语文成绩大于 80 分,且英语成绩大于 80 分的同学
-- 查询语文成绩大于 80 分,或英语成绩大于 80 分的同学
-- 观察 AND OR 的优先级:
SELECT * FROM exam_result WHERE chinese > 80 or math> 70 and english > 70 ;
SELECT * FROM exam_result WHERE (chinese > 80 or math> 70 ) and english > 70 ;

范围查询

BETEEEN....AND....
-- 查询语文成绩在 [80, 90] 分的同学及语文成绩
IN
-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
-- 使用 OR 也可以实现
SELECT name, math FROM exam_result WHERE math = 58 OR math = 59 OR math
= 98 OR math = 99 ;

模糊查询 LIKE

-- % 匹配任意多个(包括 0 个)字符
-- _ 匹配严格的一个任意字符
-- 查询 qq_mail 已知的同学姓名
SELECT name, qq_mail FROM student WHERE qq_mail IS NOT NULL ;
-- 查询 qq_mail 未知的同学姓名
SELECT name, qq_mail FROM student WHERE qq_mail IS NULL ;
-- 起始下标为 0

3.8 分页查询:LIMIT

select*容易查询出太多的数据,使机器挂了 

通过指定列查询,虽然你查到的结果是变少了很多,但是如果行数足够多的话,仍然是有可能会把机器搞出问题的.

此时更稳妥的做法,就是“分页查询”,限制一次查询,最多能查到多少个记录 ~~

语法:select 列名 from 表名 limit N;
-- 起始下标为 0
-- 0 开始,筛选 n 条结果
-- s 开始,筛选 n 条结果
-- s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
如果结果不足 4 个,不会有影响
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
4. 修改( Update
语法:UPDATE 表名 SET 表达式 WHERE 条件;
-- 将孙悟空同学的数学成绩变更为 80
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30

3.9删除

-- 删除孙悟空同学的考试成绩
-- 删除整张表数据
-- 准备测试表
-- 插入测试数据
-- 删除整表数据

小结

1) insert

2) select

a)全列查询
select * from 表名;

b)指定列查询
select 列名 from 表名;

c)指定表达式查询
select 表达式from表名;

d)查询指定别名
select 表达式as别名 from表名;

e)查询的时候进行去重
select distinct 列名 from 表名;

f)查询的时候进行排序
select 列名 from 表名 order by列desc,列 ....;

g)条件查询[重要]
select 列名from 表名 where 条件;

所有select操作都只是针对查询结果临时表,做出计算/调整不会影响到整个硬盘上的原始数据.

列和列 之间进行的操作.


到这里竹竹零就要和大家说再见了,希望时光不负赶路人,愿我们做最好的自己!!

如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!

您的鼓励就是对我最大的支持!  ! !

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

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

相关文章

什么是 IDR —— Linux 内核中的一种整数管理机制

文章目录 1 什么是 IDR1.1 IDR 的设计目的 2 IDR 的结构和实现2.1 核心数据结构2.2 常用操作2.2.1 分配 ID2.2.2 查找指针2.2.3 删除映射 2.3 IDR 的优点 3 Linux 内核中的整数 ID3.1 作用3.2 常见的整数 ID 示例 4 为什么要将整数 ID 与指针关联4.1 举例说明4.2 好处4.3 示例代…

学习笔记-Cookie、Session、JWT

目录 一、验证码的生成与校验 1. 创建生成验证码的工具类 2. 写一个 Controller 3. 实现验证码验证 1. 获取验证码 2. 验证码请求过程 3. 验证码的校验 4. 原理说明 5. 验证 6. 总结 二、JWT登录鉴权 1. 为什么要做登录鉴权&#xff1f; 2. 什么是 JWT 3. JWT相比…

MATLAB优化模型(2)

一、前言 在MATLAB中实现动态规划、图论、网络流模型&#xff08;如最短路、最大流、最小生成树&#xff09;的优化模型&#xff0c;可以通过多种方法完成&#xff0c;但通常会依赖于MATLAB内置的函数或工具箱&#xff0c;比如Optimization Toolbox、Graph Theory Toolbox等。以…

Python 实现股票指标计算——SKDJ

SKDJ (Stochastic KDJ) - 慢速随机指标 1 公式 LOWV:LLV(LOW,N); HIGHV:HHV(HIGH,N); RSV:EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,M); K:EMA(RSV,M); D:MA(K,M); 2 数据准备 我们以科创50指数 000688 为例&#xff0c;指数开始日期为2019-12-31&#xff0c;数据格式如下&#…

Leetcode 第 135 场双周赛题解

Leetcode 第 135 场双周赛题解 Leetcode 第 135 场双周赛题解题目1&#xff1a;3222. 求出硬币游戏的赢家思路代码复杂度分析 题目2&#xff1a;3223. 操作后字符串的最短长度思路代码复杂度分析 题目3&#xff1a;3224. 使差值相等的最少数组改动次数思路代码复杂度分析 题目4…

SQL注入 报错注入、文件上传、布尔盲注、时间盲注

第7关 文件上传 ---面试官常问 1、MySQL上传shell的满足条件 如果面试官问你如何通过MySQL向网站上传一个shell脚本或者其他语言的一些脚本 ---就可以通过outfile导出的方式进行上传&#xff1b; outfile导出的前提条件&#xff1a;1、必须知道网站的物理路径&#xf…

Java每日一练_模拟面试题2(循环依赖)

一、啥事Spring里面的循环依赖 SpringBoot 循环依赖通常发生在两个或多个Bean相互依赖对方时&#xff0c;例如&#xff1a;A依赖B&#xff0c;同时B也依赖A。 二、如何解决&#xff1f; 解决方案&#xff1a; 构造器注入&#xff1a;如果循环依赖发生在构造器中&#xff0c;S…

[YashanDB认证]YashanDB个人版安装

为什么选择YashanDB? 崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统&#xff0c;经工信部下属机构权威检测&#xff0c;内核代码自主率100%。在经典数据库理论基础上&#xff0c;融入原创的有界计算理论、近似计算理论、并行可扩展理论和跨模融…

Taro学习记录(具体项目实践)

一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件&#xff0c;可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…

荒原之梦考研:专科考研成功的可能性大吗?

专科还是本科不是决定考研能否成功的关键因素&#xff0c;决定考研能否成功的关键因素是自己是否有清晰的规划、是否有足够的专注能力&#xff0c;以及是否能够吃得了考研的“苦”。 首先要有清晰的规划&#xff0c;比如说&#xff0c;不是我们每个人足够努力就都能考上 TOP1 …

electron-updater实现electron全量更新和增量更新——主进程部分

同学们可以私信我加入学习群&#xff01; 正文开始 前言更新功能所有文章汇总一、更新插件选择二、在main.js中引入我们的更新模块三、更新模块UpdateController.js暴露的方法checkUpdate四、更新模块UpdateController.js中的监听4.1监听是否有新版本需要更新&#xff1f;4.2 监…

红黑树与平衡二叉树的相同之处与不同之处

红黑树很多资料上写的非常繁杂&#xff0c;初次接触真的难以理解。写本文也就是为了记录一些思考和想法&#xff0c;并不会记录如何使用代码实现。 不记录代码还有个原因&#xff1a;黑红树的算法就是根据各种情况进行一些操作&#xff0c;情况很复杂&#xff0c;分插入的和删…

数据结构 二叉树和堆总结

树 概念 树是一种层次结构非线性的数据结构&#xff0c;其是由节点和边组成&#xff0c;可以用来表示层次关系的数据。 树的相关概念 节点&#xff1a;树的基本组成单位&#xff0c;每个节点都包含数据&#xff0c;同时与其他节点相互连接根节点&#xff1a;树的顶层节点&…

SpringBoot_第十一章(Thymeleaf模板引擎)

目录 1&#xff1a;什么是Thymeleaf模板引擎 2&#xff1a;springboot怎使用Thymeleaf 2.1&#xff1a;导入pom文件 2.2&#xff1a;查看ThymeleafAutoConfiguration 3&#xff1a;Thymeleaf核心语法 4&#xff1a;使用Thymeleaf 5&#xff1a;具体语法练习 1&#xff1a…

数据集划分方法

数据集划分是机器学习和数据科学中的一个重要步骤&#xff0c;主要目的是为了确保模型的有效性和可靠性。 留出法&#xff08;简单交叉验证&#xff09; 将数据集划分为互斥的子集&#xff1a;训练集和测试集。 训练集: 用于训练模型。 测试集: 用于评估模型的性能和验证其准确…

图神经网络揭秘:视觉和实用指南

目录 一、说明 二、图如何网络化&#xff1f; 三、你需要知道的 3.1 进入图神经网络 3.2 消息传递 3.3 我们如何处理最终的向量表示&#xff1f; 四、图神经网络&#xff0c;总结 4.1 为什么选择图形神经网络&#xff1f; 4.2 简而言之 一、说明 了解图神经网络的世界&#xff…

C#中投影运算的深入解析与实例应用

文章目录 1、投影运算的基本语法2、投影运算的高级用法3、投影运算在向量空间中的运用4、投影运算在数据库和XML中的实际应用5、投影运算能用于哪些实际场景&#xff1f;6、结论 在C#编程中&#xff0c;投影运算是一种常用的数据操作技术&#xff0c;它可以将一个数据集合转换成…

开放式耳机推荐?时尚潮流品牌:悠律ringbud pro开放式耳机实测测评

作为一位音乐发烧友&#xff0c;什么类型的耳机都体验过&#xff0c;有些几百上千的耳机音质还是差点意思&#xff0c;还是会有听久了感觉不舒服的情况&#xff0c;低音量感不够的问题&#xff0c;直到用了悠律ringbud pro开放式耳机&#xff0c;才算真正打开新世界的大门&…

C语言程序设计-[2] 数据类型、常量和变量

1、数据类型 C语言支持的数据类型如下&#xff1a; 2、常量 常量就是不同数据类型下的值。这里主要讲整型、实型和字符型常量。 &#xff08;1&#xff09;整型常量&#xff1a;用十进制、八进制和十六进制三种形式表示。 &#xff08;1&#xff09;实型常量&#xff1a;由整…

HCIP实验-MGRE

实验拓扑&#xff1a; 实验要求&#xff1a; 1.R2为ISP&#xff0c;其上只能配置IP地址 2.R1-R2之间为HDLC封装 3.R2-R3之间为PPP封装&#xff0c;pap认证&#xff0c;R2为主认证方 4.R2-R4之间为PPP分装&#xff0c;chap认证&#xff0c;R2为主认证方 5.R1、R3、R4构建MG…