欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > MySQL表的增删改查

MySQL表的增删改查

2025/5/12 3:59:57 来源:https://blog.csdn.net/2301_80176093/article/details/145784260  浏览:    关键词:MySQL表的增删改查

目录

1.CRUD

2.新增(C)

2.1语法

2.2单行插入 + 全列插入

2.3多行数据+指定列插入

2.4如何获取当前的时间?

3.查询(R)

3.1全列查找

语法

注意

3.2指定列查询

语法

注意

3.3 查询字段为表达式

表达式不包含字段

表达式包含一个字段

表达式包含多个字段

例子实践

3.4别名

语法

别名的解释

3.5去除重复的数据

语法

例子

3.6 order by 排序

语法

例子

 注意

3.7条件查询(where)

比较运算符

逻辑运算符

例子

基本查询

and和or

范围查询

1.between ... and ...

2.in

模糊查询

like

NULL的查询:IS[NOT]NULL

3.8分页查询

语法

​编辑

为什么使用这样的查询???

例子

总结

小思考!!!

能否用as来简短代码长度?

select的执行顺序是怎么样?

order by和group by...having都能完成任务筛选,两者有什么区别???

为什么筛选不出完整的200以下的人???

=和<=>都是等于,那么两者区别是什么???

4.修改(U)

语法

例子

5.删除(D)

语法

例子

delete 和 drop 两者删除的差别

语法

例子展示

注意

个人思考


1.CRUD

Create(新增), Retrieve(查询) Update(修改) Delete(删除)

接下来一一解释这个功能

把数据库比作一个“仓库”,表比作“货架”,数据比作“货物”。

select 查询  可以比作“从仓库里挑选特定的货物”。

insert 新增  数据可以比作“往仓库里添加新货物”。

update 修改  数据可以比作“更换仓库里货物的标签”。

delete 删除  数据可以比作“从仓库里移除货物”。

2.新增(C)

2.1语法

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

2.2单行插入 + 全列插入

2.3多行数据+指定列插入

2.4如何获取当前的时间?

3.查询(R)

//插入使用的数据
-- 创建考试成绩表create table exam_result (id INT,name VARCHAR(20),chinese DECIMAL(3,1),math DECIMAL(3,1),english DECIMAL(3,1)
};--插入测试数据
insert into exam_result (id,name,chinese,math,english) values
(1,'唐三藏',67,98,56),
(2,'孙悟空',87.5,78,77),
(3,'猪悟能',88,98.5,90),
(4,'曹孟德',82,84,67),
(5,'刘玄德',55.5,85,45),
(6,'孙权',70,73,78.5),
(7,'宋公明',75,65,30);

3.1全列查找

语法

select * from 表名称  

注意

当表中存在数据过多时,使用该语句就会造成电脑卡死!!!

3.2指定列查询

语法

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

注意

使用这个的好处就是,当一个表中的数据非常多的时候,某个场景下的操作,只需要关注其中的几个列来操作即可

3.3 查询字段为表达式

表达式不包含字段

select id,name,10 from exam_result;

表达式包含一个字段

select id,name,english+ + 10 from exam_result;

表达式包含多个字段

select id,name,chinese + math + english from exam_result;

例子实践

3.4别名

语法

select 表达式 as 别名 from 表名;

别名的解释

就是另一个名字,相当于小名,外号,花名,及时雨宋江等等

3.5去除重复的数据

语法

select distinct 表达式(数据式子完全相同) from 表名称;

例子

--取出重复的叫孙悟空
select distinct * from exam_result where name = '孙悟空';

3.6 order by 排序

语法

select 表达式 order by 表达式 (desc)
//默认就是升序,如果想表达降序的话,desc表示降序需要写

例子

-- 按数学成绩升序排序
SELECT * FROM exam_result ORDER BY math ASC;-- 按语文成绩降序排序
SELECT * FROM exam_result ORDER BY chinese DESC;

 注意

排序是针对的是临时的数据,不管怎么样原始的数据都不发生改变。

3.7条件查询(where)

比较运算符

>,>=,<,<=,

等于=(NULL不安全,例如 NULL = NULL 的结果是 NULL), <=> (NULL安全,例如 NULL <=> NULL 的结果是 TRUE(1))

不等于!=,<>

范围匹配  between ..a. and ..b.  ,[a,b],如果a<= value <= b,返回TRUE(1) 

范围任意一个  option中的,返回TRUE(1)

是NULL    IS NULL

不是NULL  IS NOT NULL

模糊匹配  like  %表示任意多个字符;_表示任意一个字符

逻辑运算符

例子

基本查询
-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result where english < 60;
and和or
select * from exam_result where chinese > 80 and english > 80;select * from exam_result where chinese > or english > 80;

范围查询
1.between ... and ...
select name,chinese from exam_result where chinese between 80 and 90;
2.in
select name,math form exam_result where math in (58,59,98,99);
模糊查询
like
select name from exam_result where name like '孙%'; -- 名字开头含有是孙
select name from exam_result where name like '孙_'; -- 名字开头是孙,且只有2个名字
select name from exam_result where name like '%孙%'; -- 名字含有孙即可
NULL的查询:IS[NOT]NULL
select name,abc form student where abc is not NULL; -- 查询已知
select name,abc form student where abc is NULL; -- 未知

3.8分页查询

语法

select ... from 表名称 ... limit n / s,n / n offset s;

为什么使用这样的查询???

例子

意思就是从3下标开始,然后将其往下查询3个

总结

 

小思考!!!

能否用as来简短代码长度?

select的执行顺序是怎么样?

order by和group by...having都能完成任务筛选,两者有什么区别???

为什么筛选不出完整的200以下的人???

=和<=>都是等于,那么两者区别是什么???

= 是普通的等于运算符,但对 NULL 不安全。例如:NULL = NULL 的结果是 NULL。<=> 是 NULL 安全等于运算符,可以正确处理 NULL。例如:NULL <=> NULL 的结果是 TRUE。

4.修改(U)

语法

update 表名称 set 操作;

例子

updata exam_result set math = 80 where name = '孙悟空'; -- 将孙悟空的成绩变成80分
updata exam_result set math = math * 2; -- 将所有同学的语文成绩变成原来的2倍

5.删除(D)

语法

delete from 表名称 ... ;

例子

delete from exam_result where name = '孙悟空';  -- 删除孙悟空的成绩
delete from exam_result;  -- 删除整张表

delete 和 drop 两者删除的差别

语法

delete from 表名称;drop 表名称;

例子展示

简单理解就是,有一个盒子,盒子里面有饼干。

delete就是把饼干吃了,剩下盒子;drop是盒子和饼干都吃了。

注意

个人思考

通过学习 CRUD 操作,我明白了数据库操作的核心是围绕数据的增删改查展开的。新增(C)、查询(R)、修改(U)、删除(D)这四种基本操作贯穿了数据库的整个生命周期。每种操作都有其特定的语法和注意事项,比如新增时需要注意表的结构和字段类型,查询时需要关注数据的安全性和性能优化等等。这些细节虽然看似繁琐,但却是确保数据准确性和完整性的重要保障。

在实际开发中,查询操作是最常用的。我以前在开发一个图书管理系统的项目时,经常需要查询图书的信息,比如根据图书名称、作者、分类等条件来筛选图书。在这个过程中,我逐渐意识到掌握查询的优化技巧非常重要。比如,避免全列查询可以提高查询效率。当只需要获取特定的列时,明确指定列名而非使用 *,可以减少数据的传输量和处理时间。例如:

-- 不好的写法(全列查询)
SELECT * FROM books WHERE author = '李白';-- 好的写法(指定列查询)
SELECT title, author, publish_date FROM books WHERE author = '李白';

此外,合理使用索引也是优化查询的关键。索引就像书的目录一样,能够快速定位到需要的数据。在项目中,我为 authortitle 列创建了索引,使得查询速度有了显著的提升。总之,学习 CRUD 操作让我更加深入地理解了数据库的工作原理,并且能够在实际开发中更加高效地管理和操作数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词