数据的操作无外乎就是对数据的增删改查
增加数据
基本方式: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将完全一致的记录进行合并
去重