您现在的位置是:首页 >技术杂谈 >【MySQL】数据库的增删改查二:CURD网站首页技术杂谈

【MySQL】数据库的增删改查二:CURD

IUIUStar 2024-06-14 17:17:21
简介【MySQL】数据库的增删改查二:CURD

目录

                ​    需要知道

?一、增加数据

?1、语法

?2、单行数据,全列插入        

?3、多行数据,全列插入

 ?二、查询数据

?1、全列查询

?2、指定列查询

?3、查询字段为表达式

?4、去重:Distinct

?5、排序:Order By

?6、条件查询:where

?7、分页查询:Limit

?三、修改数据

?四、删除数据


需要知道

        CURD在SQL表示增加(Create),删除(Delete),修改(Update)和查询(Retrieve)。

?一、增加数据

?1、语法

INSERT [INTO] 表名 指定的列名 VALUES 对应的值

注意:(1)指定的列名可以有多个,和对应的值要一一对应。指定列插入:

            (2)当不指定列名时,默认是全部列。全列插入

 ?2、单行数据,全列插入        

insert into goods values (3,'火腿肠',12,'零食','张三');

?3、多行数据,全列插入

 insert into goods values (3,'火腿肠',12,'零食','张三'),(4,'汉堡',5,'零食','李四');

❓问题:一次写入一条数据与一次写入多条数据,哪个效率高?

        一次写入多条数据(控制在一个合理的范围内)比一次一条的效率更高。

 


 ?二、查询数据

?1、全列查询

select * from 表名;

 ?2、指定列查询

select 指定的列名 from 表名;

 ?3、查询字段为表达式

        注意:结果并不是一个真实存在的列名,而是一个计算之后的结果。

(1)查询的是一个常量

 (2)查询的是列与指定值进行运算操作后的值 

(3)一列数据中,列与列之间的运算,最终生成的是一个临时表。列名就是查询表达式。

 (4)为列指定别名

?4、去重:Distinct

select distinct 根据哪个字段名去重 from 表名;

去重之后的:

 注意:去重的指定的字段名一定要每一个都相同才可以成功去重。比如:

?5、排序:Order By

select 要查询的列名 from 表名 Order By 排序依据的列名 ASC(升序)或者DESC(降序);

(1)注意:默认是ASC。但是建议自行指定,不要依赖于默认。

 ❗ 注意Null值的大小说明:

(1)Null在MySQL中比任何数值都小;

(2)Null与任何值运算都是Null。

 (3)Null与别的值比较,都会返回False;

(4)Null就是Null,不是0;

(2)使用表达式以及别名排序

(3)对多个字段排序,排序优先级随书写的顺序。每个被排序的字段都可以指定排序规则,多个字段之间用逗号隔开。

?6、条件查询:where

 

        AND的优先级高于OR。其实不用死记,在使用的时候,用()将自己希望的先执行的括起来就好啦!

(1)like的使用:模糊匹配(注意细节)

 

 (2)where使用的时候,可以用表达式,但是不能使用别名。这是因为在执行sql语句的时候,先执行的是where条件,这样查询效率会更高。因此如果使用别名就无法识别该别名了。 

?查询语文成绩大于英语成绩的同学

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

 (3)and 和 or的使用

 (4)Between ... And ..   查询语文成绩在 [80, 90] 分的同学及语文成绩

使用and也可以实现。

 (5)in的使用:查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

使用or也可以实现  

 (6)Null的查询

 ?7、分页查询:Limit

        什么是分页查询?比如我们在浏览器搜索,一页不可能将所有的结果都加载出来显示。都是分页显示,一页显示多少条数据。

(1)从0开始,筛选出n条记录

select 字段名 from 表名 (where) (order by) Limit 0,要查询的条数;

 (2)从第s条数据开始,筛选n条记录(两种写法都可)

select 字段名 from 表名 (where) (order By) Limit s,n;
select 字段名 from 表名 (where) (order By) limit n offset s;


?三、修改数据

update 表名 set 列名=要进行的操作;

(1)将孙悟空的语文成绩更改为99分

 (2)将猪悟能同学的数学变为80分,英语变为90分

(3)将总成绩倒数前3的同学的所有语文成绩加上10分。  

❗ 注意:如果在更新的时候没有加条件会给所有数据都进行更新,是危险操作!


 ?四、删除数据

        数据库中的删除也是个危险操作,建议眼睛学会就行手忘掉?

delete from 表名 (where) (order by) (limit); 

删除孙悟空同学的所有考试成绩


最近的任务还很重,要打起精神来加班加点的完成,不要陷入恶性循环中。继续加油吧!?

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。