【Mysql】数据表的增删查改(基础)

1.❤️❤️前言~🥳🎉🎉🎉

Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。

如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的内容感兴趣,记得关注我👀👀以便不错过每一篇精彩。

当然,如果在阅读中发现任何问题或疑问,我非常欢迎你在评论区留言指正🗨️🗨️。让我们共同努力,一起进步!

加油,一起CHIN UP!💪💪

🔗个人主页:E绵绵的博客**
📚所属专栏:**

1. JAVA知识点专栏

深入探索JAVA的核心概念与技术细节

2.JAVA题目练习****

实战演练,巩固JAVA编程技能

3.c语言知识点专栏****

揭示c语言的底层逻辑与高级特性

4.c语言题目练习****

挑战自我,提升c语言编程能力

5.Mysql数据库专栏

了解Mysql知识点,提升数据库管理能力

6.html5知识点专栏

学习前端知识,更好的运用它

📘 持续更新中,敬请期待 ❤️❤️
以下是针对数据表中数据的增删查改。

2.增加数据

单行数据 + 全列插入

insert 数据表名 value (值1,值2,...,值n);
  • 在插入数据时,插入的数据顺序必须与创建数据表时对应的字段位置顺序相同,不可搞乱顺序,规避数据顺序错误情况,总而言之要一一对应。

单行数据+指定列插入

​
insert 数据表名(字段名1,字段名2,...,字段名n)value (值1,值2,...,值n);

​

指定的字段名可以是数据表中的全部字段,也可以是部分字段。未添加的数据的字段系统会自动为该字段添加默认值NULL(空的)


多行数据 + 全列插入

​
insert 数据表名 value (值列表1),(值列表2),...,(值列表n);

​
  • 在同时插入多行数据时,多个值列表之间使用逗号相隔。

插入数据时我们一般都不用单行插入,而是多行数据一起插入,这样更高效。

3.查询数据

全列查询

SELECT * FROM  数据表;
  • 查询数据表中所有字段的数据,星号*通配符代表数据表中的所有字段名。

通常情况下不建议使用 * 进行全列查询

  1. 查询的列越多,意味着需要传输的数据量越大;

  2. 可能会影响到索引的使用。(索引待后面课程讲解)

指定列查询

SELECT 字段名1,字段名2,字段名3,...,字段名n FROM 数据表名;

指定列的顺序不需要按定义表的顺序来

查询 字段为表达式

select 表达式 from 表名;

表达式不包含字段时:


表达式包含一个字段时:


表达式包含多个字段时:


表达式中的 加减乘除 之类的针对列进行的运算 只是对数据库服务器査询出的数据进行运算,它们是临时的数据,不会影响到数据库服务器原有的保存的数据.

别名

为查询结果中的列指定别名,以别名作为该列的名称出现在临时表中

​
SELECT 字段名 as 别名 FROM 数据表名;

​

去重:distinct

使用DISTINCT关键字对某列数据进行去重:

而原本是:

所以达到了一个很好的去重效果

而如果有多列,那去重就要求该多列完全一样才能去重,否则会如下图一样。

左边虽然相同,但右边不相同,所以去不了重。

排序:order by

select ... from 数据表 order by 字段 (asc/desc);

-- ASC 为升序(从小到大) -- DESC 为降序(从大到小) -- 如果都不填默认为 ASC。

1.注意排序以一整行为单位,排序会对一整行做出改变。

2.同样该排序只是对数据库服务器査询出的数据进行排序,它们是临时的数据,不会影响到数据库服务器原有的保存的数据顺序.

3.如果你 select 的时候没有把order by 指定的列查出来 也不影响 排序~~,其他列依旧会排序


4.order by 还可以针对表达式进行排序~~


5.order by 还可以指定多个列进行排序,排序优先级随书写顺序。先按照最左边顺序来,如果最左边相同,再按照右边顺序来。

如图就是先按照c进行升序,因为存在相同的行,相同行又按照b大小进行降序。

条件查询:where

其中要用到运算符,分为比较运算符和逻辑运算符。

比较运算符:

逻辑运算符:

注意:

  1. where条件可以使用表达式,但尽量别使用别名,很可能报错。

  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

3.MySQL不存在==这种运算符

4.like运算符的模糊匹配只适用于字符串。


以下是一些经典案例,这是数据表中的内容:


基本查询:

查询总分在 200 分以下的同学


AND与OR :

查询语文成绩大于80分,且英语成绩大于80分的同学

查询语文成绩大于80分,或英语成绩大于80分的同学


范围查询:

1. BETWEEN ... AND ...

查询语文成绩在 [80, 90] 分的同学及语文成绩

2. IN

查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩


模糊查询:LIKE

like只针对于字符串,其中 %能表示任意多个(包括0个)任意字符;_表示任意一个字符。


NULL 的查询:is not null

我们加入了一个没有成绩的李白

查询有语文成绩的同学

查询没有英语成绩的同学


分页查询:LIMIT

语法如下:

SELECT 列 from 数据表  LIMIT n;

SElECT 列 from 数据表  LIMIT n offset s;

其计算是以下标方式计算的,其中我们将第一行数据当作下标为0。

所以limit n 的代码也就是从 0(第一行) 开始,筛选 n 条结果。

所以limit n 也就相当于 limit n offset 0;

limit n offset s也就相当于从s(第s+1行)开始,筛选n条结果

其中如果筛选的结果不足,不会有影响。

4.修改数据

UPDATE table_name SET column = expr [, column = expr ...]
 [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例:


因为不存在== ,所以mysql这里的=既可以代表赋值,还可以代表是否相等。

5.删除数据

DELETE FROM  table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例:

相关推荐
dxt_snow2 分钟前
Centos7系统安装redis
数据库·redis·缓存
0wioiw02 小时前
Python基础(SQLAlchemy)
java·开发语言·数据库
CodeJourney.2 小时前
DeepSeek 关联 Word 使用教程:解锁办公新效率
数据库·人工智能·算法
ChinaRainbowSea2 小时前
十四. Redis 新功能
java·数据库·redis·缓存·bootstrap
NineData3 小时前
NineData云原生智能数据管理平台新功能发布|2025年1月版
数据库·人工智能·云原生·oracle·ninedata
Java小王子呀3 小时前
SQL写法:行行比较
数据库·sql
m0_748245743 小时前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
羊小猪~~4 小时前
MYSQL学习笔记(七):新年第一篇之子查询
数据库·笔记·后端·sql·学习·mysql·考研
无聊的烤苕皮5 小时前
MySQL第五次作业(触发器、存储过程)
android·mysql·adb
小虚竹5 小时前
从MySQL优化到脑力健康:技术人与效率的双重提升
数据库·mysql