「MySQL」增删查改

news/发布时间2024/9/20 8:13:31

在操作数据库中的表时,需要先使用该数据库:

use database;

新增

创建表

先用 use 指定一个数据库,然后使用 create 新增一个表
比如建立一个学生表

mysql> use goods;
mysql> create table student(-> name varchar(4),-> age int,-> grade decimal(3,1)-> );

通过desc + 表名来查看表结构:
在这里插入图片描述
其中的 name、age、grade 就是列(MySQL中的列就是我们平时所说的行);Field、Type 等就是行,其中 Null 中的Yes 表示该列可以为空,如果是 NO 则不可为空,Default 表示该列的默认值

表中各行所表示的含义如下:
在这里插入图片描述


插入记录

创建好表之后,使用 insert into 表名 values(列名 列名...) 来插入记录:

mysql> insert into student values("张三",20,98.5);

这里我们把所有列名都插入了,我们也可以指定插入部分列名,只需在表名后面加上要插入的列名就 ok 了:

mysql> insert into student(name,grade) values("李四",90);

插入后查看表
在这里插入图片描述
可以看到 age 那里是 NULL,它表示这条记录的这一列为空

我们现在是一条一条地插入,其实也可以一次插入多条记录:

mysql> insert into student values("王五",25,80),("赵六",24,85);

在这里插入图片描述

一次插入10个数据比一次插入一个数据,分10次完成的效率高

因为每条 sql 都会涉及到下面的交互过程:
在这里插入图片描述

  • 如果分 10 条 sql 进行,那意味着在这个过程中,就会有10次网络交互
    数据库服务器收到请求之后,也要进行 10 次对应的处理,比如检查语法、数据校验、把你要插入的数据的位置在硬盘上进行定位…

  • 如果只用 1 次完成,虽然单次消耗的时间会更长,但是网络开销、服务器检查的开销都是一份的,这个做法会更高效一些

查询

查询方式

可以通过 select * from 表名 查询到表中所有数据,比如上面就是通过这条语句来查看数据的
也可以使用select 列名,列名 from 表名来查看指定列的信息

注意:在公司的生产环境服务器上,不要随便敲select* !!!因为数据量很大的话,这个操作会产生大量的硬盘IO和网络IO,可能把硬盘或网卡的带宽给吃满了
而一旦带宽吃满,此时服务器就无法正常响应其他客户端的请求(在其他客户端的视野中,就会认为MySQL服务器是挂了)

除了上面两种查询方式,我们还可以使用表达式查询
就是在查询过程中,指定表达式,把查询出来的每一行,都代入到表达式中进行运算

比如下面的grade-10就是一个表达式
在这里插入图片描述
进行表达式查询时,并没有修改硬盘中存储的数据,只是在查询结果的基础上进行运算,得到一份"临时表",也就是说 select 进行的任何操作都不会修改数据本体
此时查询出来的临时表,为了保证数据的正确性,每个列的类型不再受限于原始表

比如给所有学生的成绩加10
在这里插入图片描述
虽然 grade 限定位数为 3 ,但是为了使数据不会出错,所以临时表不会限制位数

查询操作结束后,临时表中的数据就会消散了

到这里我们介绍了三种查询方式:
①查询所有数据
②查询指定列数据
③表达式查询

还有四种查询方式
④查询时带上别名

select 表达式 as 别名 from 表名;

比如现在有一个学生成绩表,有语文、数学、英语三个科目,我想查询某个学生成绩的总和,可以这样:
在这里插入图片描述
查询结果的列就只有 sum,而不是 chinese+math+english,这样可以使查询结果更简洁


⑤查询时进行去重

select distinct 列名 from 表名

根据查询出的列名进行去重,把列的值相同的记录合并为一个
比如现在有如下的表:
在这里插入图片描述
在这里插入图片描述
现在只查询一个列,那如果同时查询多个列并进行去重呢?
在这里插入图片描述
从上图我们可以得出:查询多个列时,只有两个记录多个列的值都相同,才算是重复


⑥查询时进行排序

select 列名 from 表名 order by 列名 

在这里插入图片描述
(注意前面用desc + 表名来查看表结构;而这里是将desc放在后面排降序)

order by 也可以指定多个列进行排序,指定多个列时,带有优先级,前面的列优先级高,后面的低。优先级高的列的值相同时,才会去比较优先级低的列
举个例子:
在这里插入图片描述


⑦条件查询
就是查询时指定筛选条件,只有满足条件的数据才会保留作为结果集(如果不满足,那么这个数据会被跳过)

  • 比较运算符
运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于
<=>等于
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN(option…)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

我们重点来讲两个“等于”
对于 NULL = NULL ,它的结果是 false
而如果是 NULL <=> NULL,结果则为 true

  • NULL表示某个单元格没填,对于 =,它认为等号左右的 NULL 指的不是同一个单元格,没有可比性,所以二者不相等
  • 而对于 <=>,它只看内容,既然二者都没有内容,那就都一样

要使用条件查询需要搭配关键字where
在这里插入图片描述

  • 逻辑运算符
运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

注意:

  1. WHERE条件可以使用表达式,但不能使用别名
  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

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

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

相关文章

附加Numpy数组

参考&#xff1a;Append Numpy Array 引言 在数据科学和机器学习领域&#xff0c;处理大规模数据集是一项重要且常见的任务。为了高效地处理数据&#xff0c;numpy是一个非常强大的Python库。本文将详细介绍numpy中的一个重要操作&#xff0c;即如何附加&#xff08;append&a…

【python基础学习05课_for循环以及双重for循环】

FOR循环 一、认识循环-while 1、循环条件不能超出列表长度 当i 1&#xff0c;while i < len(lst1) 时&#xff0c;i 3后, 打印print&#xff08;lst[3]&#xff09;小宋老师&#xff0c; 继续1, i 4, 4不小于 len(lst1)&#xff0c;打破循环。 2、循环条件超出列表长度报错…

94. 递归实现排列型枚举 刷题笔记

思路 依次枚举 每个位置用哪个数字 要求按照字典序最小来输出 而每次搜索下一层时i都是从1开始 也就是说 如果有小的数可以填上 那么该方案会填上这个数字 例如 当n等于3 第一次搜索 1 2 3输出后返回 返回后此时i3 第二个位置填3 1 3 2 输出后返回 此时返回到第一层…

idea 创建打包 android App

1、使用 idea 创建 android 工程 2、 配置构建 sdk 3、配置 gradle a、进入 gradle 官网&#xff0c;选择 install &#xff08;默认是最新版本&#xff09; b、选择包管理安装&#xff0c;手动安装选择下面一个即可 c、安装 sdk 并通过 sdk 安装 gradle 安装 sdk&#xff1a…

【Leetcode每日一题】二分查找 - 寻找旋转排序数组中的最小值(难度⭐⭐)(22)

1. 题目解析 Leetcode链接&#xff1a;153. 寻找旋转排序数组中的最小值 这个题目乍一看很长很复杂&#xff0c;又是旋转数组又是最小值的 但是仔细想想&#xff0c;结合题目给的示例&#xff0c;不难看出可以用二分的方法来解决 核心在于找到给定数组里面的最小值 2. 算法原…

关于vue中关于eslint报错的问题

1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题&#xff0c; 解决思路&#xff1a; 在项目根目录下新建一个.prettierrc.json文件 { “tabWidth”: 2,“useTabs”: false,“singleQuote”: true,“semi”: false} 2 关于报错代码的时候 出现尾随逗号报错…

C++:内存管理|new和delete

创作不易&#xff0c;感谢三连支持&#xff01; 一、内存分布 为什么需要内存管理呢&#xff1f;&#xff1f;因为我们在程序的运行过程中会需要各种各样的数据&#xff0c;而我们根据数据的不同存储在不同的区域里面&#xff0c;是为了更高效地处理数据。而C语言相比Java来说…

Linux UnixODBC安装配置

配置 UnixODBC 梦之上关注IP属地: 香港 0.2322020.12.09 13:23:10字数 1,202阅读 5,447 麒麟&达梦适配系列: 1.麒麟服务器上安装 DM8 2.配置 UnixODBC 3.beego-ORM 适配达梦 资源紧张的时候&#xff0c;服务器是大家共用的&#xff0c;上面部署了一堆服务。所以选用doc…

一文详解 requests 库中 json 参数和 data 参数的用法

在requests库当中&#xff0c;requests请求方法&#xff0c;当发送post/put/delete等带有请求体的请求时&#xff0c;有json和data2个参数可选。 众所周知&#xff0c;http请求的请求体格式主要有以下4种&#xff1a; application/json applicaiton/x-www-from-urlencoded …

gorm快速入门

【Golang】gorm快速入门 推荐个人主页&#xff1a;席万里的个人空间 文章目录 【Golang】gorm快速入门1、什么是orm&#xff1f;为什么用orm&#xff1f;2、gorm连接以及使用 1、什么是orm&#xff1f;为什么用orm&#xff1f; ORM(Object-relational mapping)&#xff0c;中文…

【Linux C | 网络编程】gethostbyaddr 函数详解及C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

java实际项目反射、自定义注解的运用实现itext生成PDF的详细应用教程

开篇引语 小伙伴在学习java是否有这样的困混不知道反射是干嘛的&#xff0c;不知道注解有什么用。导致很多人看 java基础的时候迷迷糊糊&#xff0c;那是你还没有在实际项目中遇到&#xff0c;不知道该如何使用它们。接下来我会为你们详细讲解实际项目中是如何运用反射和自定义…

通过一篇文章让你了解数据结构和算法的重要性

通过一篇文章让你了解数据结构和算法的重要性 前言一、 什么是数据结构&#xff1f;二、什么是算法&#xff1f;三、数据结构和算法的重要性在校园招聘的笔试中&#xff1a;在校园招聘的面试中&#xff1a;在未来的工作中&#xff1a; 四、如何学好数据结构和算法4.1 死磕代码&…

持安科技亮相张江高科895创业营,总评分第三名荣获「最具创新性企业」!

近日&#xff0c;张江高科895创业营&#xff08;第十三季&#xff09;信息安全专场Demo day&结营仪式在上海集成电路设计产业园圆满落幕。本季创业营通过多种渠道在海内外甄选优秀创业项目&#xff0c;一共择优录取了29家入营&#xff0c;最终甄选出9家代表参加Demo day路演…

如何在Window系统部署BUG管理软件并结合内网穿透实现远程管理本地BUG

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

科大睿智祝贺企业高标准高质量完成CMMI3级评估认证

航天万源实业有限公司是中国航天科技集团有限公司第一研究院的全资子公司&#xff0c;公司现有从业人员1400余人&#xff0c;年产值30亿元。是经北京市丰台区科学技术委员会审核的高新技术企业。公司践行“服务航天、保障科研”的使命&#xff0c;依托中国航天强大的科技优势、…

buuctf_misc_九连环

题目&#xff1a;&#xff08;一张123456cry.jpg&#xff09; 这个先直接上kali&#xff0c;图片已改名cry.jpg 在上一篇&#xff0c;我留存了kali文件夹下有"叉"打不开的问题&#xff0c;经查阅&#xff0c;已解决&#xff1a; http://t.csdnimg.cn/bgv4T 输入&a…

ref和reactive用哪个?

ref和reactive用哪个? 1.&#x1f916;GPT&#x1f916;:ref和reactive用哪个根据数据类型而定 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。 reactive 用于…

Windows Docker 部署 Redis

部署 Redis 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 redis 服务。这里安装的是 7.2.4 版本&#xff0c;如果需要安装其他或者最新版本&#xff0c;可以到 Docker Hub 中进行查找。 docker run -d --nam…

MySQL数据库下载及安装教程(最最新版)

MySQL数据库下载及安装教程&#xff08;最最新版&#xff09; 一、下载mysql数据库二、安装Mysql三、验证是否安装成功&#xff08;一&#xff09;、命令提示符cmd窗口验证&#xff08;二&#xff09;、MySQL控制台验证 一、下载mysql数据库 进入MySQL官方网站&#xff08;htt…
推荐文章