PHP-数据高级操作

数据的操作无外乎就是对数据的增删改查


增加数据

基本方式:insert into 表名 [(字段列表)] values (值列表);

主键冲突:在插入数据的时候,主键值已经存在了,但是要求是必须使用该主键字段
这里写图片描述

实现目标:如果该主键不存在那么就增加记录,如果存在,就修改部分字段的值

1.使用主键冲突方式

语法:insert into 表名 values(值列表) on duplicate key update 字段 = 值
这里写图片描述

2.使用替换插入
replace into 表名 (字段列表) values(值列表)
这里写图片描述

replace其实先删除存在的行,再进行插入。

注意:大部分情况下,因为是使用逻辑主键,一般会自增长,所以使用null即可(insert),但是如果是使用业务主键,那么很有可能会存在冲突(replace)。


蠕虫复制

蠕虫能够一分为2,2分为4,在成倍增长
语法:insert into 表名 (字段列表) select 字段列表 from 表名;
这里写图片描述

蠕虫复制能够快速使用表中的数据量增加,没有办法改变数据

蠕虫复制也可以从其他的表中去获取数据。


更新数据

基本语法:update 表名 set 字段 = 值 [where条件]

高级语法:update 表名 set 字段 = 值 [where条件] [limit]
这里写图片描述


删除数据

基本语法:delete from 表名 [where条件]

高级语法:delete from 表名 [where条件] [limit]
这里写图片描述

删除数据并不能修改一张表的索引和自增长。如果想删除表的自增长重新来过

先删除表(drop),再新建表(create)

mysql提供了简单方式实现两个步骤:truncate
这里写图片描述


查询数据

基础语法:select 字段列表 from 表名 [where条件]

高级语法:select [select选项] 表达式 [from子句] [where子句] [group by 子句] [having 子句] [order by子句] [limit 子句]

select选项:在查询得到数据是否需要进行合并,all表示获取所有数据(默认的),distinct将完全一致的记录进行合并
这里写图片描述

去重
这里写图片描述

猜你喜欢

转载自blog.csdn.net/lwzhang1101/article/details/80284417