MySQL表的增删查改【基础部分】

数据表的操作

新增

普通插入

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

注意: 此处的值要和表中的列相匹配

使用’‘单引号或者”“双引号来表示字符串

mysql> insert into student values(123,'zhangsan');
Query OK, 1 row affected (0.02 sec)

指定列插入

insert into 表名(列名,列名..)values(值,值..);
后面的值要与前面的列相对应
mysql> insert into student(name) values('lisi');
Query OK, 1 row affected (0.00 sec)

在这里插入图片描述
注意: 当我们指定列插入的时候,没有被指定的那一行(即没有插入数据的那一行则被填充为默认值;此处默认值为null

一次插入多行

insert into 表名 values(值,值...),(值,值...);
mysql> insert into student values(3,'天天'),(4,'多多');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

注意: 一次插入多行记录,相比于一次插入一行,分多次插入要快很多

DATETIME类型插入

(1)
可以是用一个固定格式的字符串,来表示时间日期

insert into student values(1,'zhangsan','2002-01-01 12:00:00');

(2)直接获取当前的时间

mysql> insert into student values(1,'zhangsan',now());
Query OK, 1 row affected (0.01 sec)

直接使用now()

查询

null参与任何运算以后,结果还是null

全列查询

select*from 表名;

把表中的所有行和所有列都查询出来

mysql> select*from student;
+------+----------+---------------------+
| id   | name     | birthday            |
+------+----------+---------------------+
|    1 | zhangsan | 2024-05-08 13:20:22 |
+------+----------+---------------------+
1 row in set (0.01 sec)

指定列查询

 select 列名,列名..from 表名;

比全列查询更加高效

查询字段为表达式

一边查询一边计算,在查询的时候,写作由列名构成的表达式,把这一列中的所有行都带入表达式中参与运算
(1)
在这里插入图片描述
(2)计算每个同学的总成绩
在这里插入图片描述
(3)注意: 表达式查询是列和列之间的运算,把每一行都带入到这样的运算中,不是行与行之间的运算

查询的时候给列/表达式/表指定别名

select 表达式/列名 as 别名 from 表名;

as也可以省略,但是我们一般不建议省略
在这里插入图片描述

去重

distinct 修饰某个列/多个列值相同的行,只会保留一个

select distinct 列名 from 表名;

在这里插入图片描述
==注意:==如果distinct有多个列时,只有当它这两列对应的行信息完全相同时才会去重

查询的时候排序

把行进行排序
明确排序规则
(1)针对哪个列作为比较规则
(2)排序的时候是升序还是降序

select 列名 from 表名 order by 列名 asc/desc;

PS:(1)order by 列名,这块的列名是指定某个列进行排序;
asc表示升序排序,desc表示降序排序,如果没有写这两个,那么默认为升序排序

(2)mysql是一个客户端服务器结构的程序,把请求发给服务器之后,服务器进行查询数据,并且把查询到的结果进行排序之后,再组织成响应数据返回客户端**(排序仍然是针对临时数据来展开的,此处的排序不影响原有数据在mysql服务器上存储的顺序)**
在这里插入图片描述
(3)在这里插入图片描述(4)根据表达式进行排序
在这里插入图片描述
PS:在使用表达式的时候可以使用别名
在这里插入图片描述
(5)指定多个列来排序(重要),即order by后面有多个列,多个列之间使用,来分割开
在这里插入图片描述
多个列之间排序是有优先级的,写在前面的先排序,后面的依次

条件查询(重要)

会指定具体的条件,按照条件针对数据进行筛选

select 列名 from 表名 where 条件;

遍历这个表的每一行记录,把每一行的数据分别带入到条件中,如果条件成立,这个记录会被放入结果集合中;如果条件不成立,这个记录会被pass
(1)比较运算符
在这里插入图片描述
(2)逻辑运算符
在这里插入图片描述
PS:不能使用别名来汇总表达式将其使用在比较查询中(不能在where语句中使用别名)
(3)like详细说明
like模糊匹配:使用通配符,就是一些特殊的字符来表示一些特定的含义;
%:代指任意个任意字符;_:代指一个任意字符
在这里插入图片描述
PS:【1】0个字符也可以被%匹配出来,如下图所示
在这里插入图片描述
【2】%的使用:孙%:查询以 孙 开头的内容;%孙: 查询以 孙 结尾的内容;%孙%: 查询包含孙的.

总结: 此处模糊查询的功能是有限的,就像没有办法查询名字中带两个孙的这样的列及内容;
但在计算机中,进行模糊匹配字符串还有‘正则表达式’,通过这样的方式实现,但是正则表达式匹配速度很慢

正则表达式: javaSE中String的一个方法split,参数其实就是一个正则表达式;比如按照 . 来切分,就需要写作 “\.”;如果是有原始字符串,就可以写简单了

分页查询(LIMIT)

select*这样的查询方式太危险了,一次性查询出来的东西太多了,所以我们使用分页查询(limit)去限制这次最多查询出多少个结果
(1)此时就是只查询3条数据,这块也可以写成limit 3 offest 0;在这里插入图片描述(2)我们使用offest来达到查询3条下面的3条(4、5、6)和3条再下面的3条(7、8、9);offest是一个偏移量,一个下标此时就是只查询3条数据

修改

普通修改

update 表名 set列名=值 where 条件;

注意: update后面不加任何条件,就是针对所有行进行修改(即不添加where条件)

mysql> select*from user;
+------+--------+--------+
| ID   | accout | amount |
+------+--------+--------+
|   45 |    123 |   2000 |
|  355 |    246 |    900 |
|  199 |    145 |   4000 |
|  123 |   NULL |   2000 |
+------+--------+--------+
4 rows in set (0.00 sec)
mysql> update user set ID=66 where accout=123 and amount=2000;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0mysql> select*from user;
+------+--------+--------+
| ID   | accout | amount |
+------+--------+--------+
|   66 |    123 |   2000 |
|  355 |    246 |    900 |
|  199 |    145 |   4000 |
|  123 |   NULL |   2000 |
+------+--------+--------+
4 rows in set (0.00 sec)

where条件来限制我们修改哪些行数据,它的用法和select里面的where用法是相同的,我们直接可以看上面的笔记

一次修改多个列

update 表名 set列名=值,列名=... where条件;

这里的=就不是比较相等了,是赋值的作用

mysql> update user set ID=67,accout=124 where amount=2000;
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0
mysql> select*from user;
+------+--------+--------+
| ID   | accout | amount |
+------+--------+--------+
|   67 |    124 |   2000 |
|  355 |    246 |    900 |
|  199 |    145 |   4000 |
|   67 |    124 |   2000 |
+------+--------+--------+
4 rows in set (0.00 sec)

PS:mysql> select * from exam result order by chinese + math + english limit 3;
这样的写法表示的是倒数后三行的信息,我们可以使用order by和limit来达到这样的效果

删除

普通删除

delete from 表名 where条件/order by/limit;

删除整张表

不指定任何条件,就是删除整张表

delete from 表名;

PS:(1)drop table 表名是删除了表和表中的所有数据,这个表彻底不存在了
(2)delete from 表名只是删除了表里面的数据,但是表依然是存在的,只是我们得到的就是一张空表了

总结

(1)delete和update都是很危险的操作,delete一旦删除的条件没有设置好,就可能把不该删的数据删掉
(2)这的删除/修改都是持久生效的,都会影响到数据库服务器硬盘中的数据

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

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

相关文章

2024年3月 电子学会 青少年等级考试机器人理论真题五级

202403 青少年等级考试机器人理论真题五级 第 1 题 下图程序运行后,串口监视器显示的结果是?( ) A:0 B:1 C:3 D:4 第 2 题 下列选项中,关于74HC595移位寄存器芯片的…

微信小程序开发【Coffee Shopping】(1)

1.环境准备 微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 前端常用网站集合:http://www.wwp666.cn/ 微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/quicksta…

数据结构之二叉树详解[1]

在前面我们介绍了堆和二叉树的基本概念后,本篇文章将带领大家深入学习链式二叉树。 1.预备知识 2.二叉树结点的创建 3.二叉树的遍历 3.1前序遍历 3.2中序遍历 3.3 后序遍历 4.统计二叉树的结点个数 5.二叉树叶子结点的个数 6.二叉树第k层的结点个数 7.总结 …

鸿蒙ArkUI开发:常用布局【相对布局】

相对布局(RelativeContainer) 相对布局可以让子元素指定兄弟元素或父容器作为锚点,基于锚点做位置布局必须为RelativeContainer及其子元素设置ID,用于指定锚点信息。未设置ID的子元素不会显示RelativeContainer ID为“__containe…

增程SUV价格即将崩盘?买车一定要再等等!

文 | AUTO芯球 作者 | 雷歌​ 真是“离谱”啊,车圈真是逗比欢乐多, 我这两天看一个博主连续40多小时开车直播,充电口、油箱盖全部封死,全程视频直播没断过, 就为了测试这两天刚上市的星际元ET续航有多远。 另一个…

NSSCTF Web方向的例题和相关知识点(二)

[SWPUCTF 2021 新生赛]Do_you_know_http 解题: 点击打开环境,是 提示说请使用wLLm浏览器访问 我们可以更改浏览器信息,在burp重放器中发包后发现是302重定向,但是提示说success成功,说明 我们修改是成功的&#xff…

HTML特殊字符

特殊字符 有特殊含义的字符成为字符实体 对于有特殊含义的字符,需要通过转移字符来表示 <span> <br><a href"http://www.atguigu.com">我 爱 前端</a> <br>&amp;amp; 效果

Element-UI 快速入门指南

文章目录 一、安装 Element-UI1.1 使用 npm 安装1.2 使用 yarn 安装 二、引入 Element-UI三、使用 Element-UI 组件3.1 按钮组件3.2 输入框组件3.3 表单组件3.4 表格组件3.5 弹框组件 四、自定义主题4.1 安装主题工具4.2 初始化变量文件4.3 编译主题 五、总结 &#x1f389;欢迎…

刷题之最长连续序列

哈希表 class Solution { public:int longestConsecutive(vector<int>& nums) {//set记录并且去重nums中的数unordered_set<int>set;for(int i0;i<nums.size();i){set.insert(nums[i]);}int result0;//遍历所有数for(auto iset.begin();i!set.end();i){//如…

服务的war包已经丢在tomcat中但是还是没法访问,如何排查?

问题出现的现象是我已经将 XWiki 的 WAR 包放置在 Tomcat 的 webapps目录下但仍然无法访问&#xff0c;反思之后可以从下面以下几个方面来诊断和解决问题&#xff1a; 1. 确认 Tomcat 正在运行 首先&#xff0c;确保 Tomcat 服务正在正常运行。可以使用以下命令检查 Tomcat 的…

鉴源论坛·观通丨轨交软件测试技术详述

作者 | 刘艳青 上海控安安全测评部测试经理 版块 | 鉴源论坛 观通 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 集成测试技术要求 1.1 总体要求 对软件集成测试进行静态测试应先于动态测试&#xff1b; 集成过程是动态进行的&#xff0c;在测…

CVHub | CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO = CLIP + DINOv2 + SAM

本文来源公众号“CVHub”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO CLIP DINOv2 SAM 标题&#xff1a;《AM-RADIO: Agglomerative Vision Foundation Model Reduce Al…

vscode 之 output 输出中文乱码,终端输出中文正常

# 1. 背景 因为没钱买正版的软件&#xff0c;所以转战 vscode 编译器。 在编译 python 文件时&#xff0c;发现直接右键 runner code&#xff0c;输出中文乱码。 但是在 teiminal 终端 执行py test.py 时&#xff0c;输出正常&#xff0c;中文正常。 output 输出中文样式(中文…

Go微服务: Prometheus性能监控与Grafana平台的搭建

Prometheus 概述 promethues 是一套开源的监控&报警&时间序列数据库的组合基本原理是通过http协议周期性抓取被监控组件的状态适合Docker、Kubernetes环境的监控系统 Promethues 整体架构 一、抓取数据的两种方式 1 &#xff09;Short-lived jobs 短暂的任务 不会提…

RedisTemplate操作Redis详解之连接Redis及自定义序列化

连接到Redis 使用Redis和Spring时的首要任务之一是通过IoC容器连接到Redis。为此&#xff0c;需要java连接器&#xff08;或绑定&#xff09;。无论选择哪种库&#xff0c;你都只需要使用一组Spring Data Redis API&#xff08;在所有连接器中行为一致&#xff09;&#xff1a;…

面对.halo勒索病毒,如何有效防范与应对?

导言&#xff1a; 随着网络技术的不断发展&#xff0c;网络安全问题也日益凸显。其中&#xff0c;勒索病毒作为一种极具破坏性的网络攻击手段&#xff0c;近年来在全球范围内频发。其中&#xff0c;.halo勒索病毒作为勒索病毒家族中的一员&#xff0c;其危害性和传播性不容忽视…

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Proposed Approach4 Experiments5 Conclusion 文章信息&#xff1a; 原文链接&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/4…

二叉树专题(有关二叉树的相关学习)

二叉树 1.数概念及结构 1.1树的结构 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结…

ollama离线部署llama3(window系统)

首先介绍下ollama是什么&#xff1f;Ollama是一个开源的大型语言模型服务工具&#xff0c;旨在为用户提供本地化的运行环境&#xff0c;满足个性化的需求。具体来说&#xff0c;Ollama是一个功能强大的开源框架&#xff0c;可以简化在Docker容器中部署和管理大型语言模型&a…

【C++】内联函数、auto、范围for

文章目录 1.内联函数2.auto关键字2.1auto简介2.2auto的注意事项2.3auto不能推导的场景 3.基于范围的for循环(C11)4.指针空值nullptr(C11) 1.内联函数 概念&#xff1a; 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函…