mysql初始(6)

随着mysql的运用不断加深,一些更复杂点的用法又需要总结起来。

1.将一个表中的数据插入到另一个表中:

a.两张表字段相同,并且数据全部插入,命令如下:  INSERT INTO 目标表 SELECT * FROM 来源表;

b.插入部分字段,命令: INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;(这里的话字段必须保持一致)

c.只导入目标表中不存在的记录,命令:INSERT INTO 目标表  (字段1, 字段2, ...)  SELECT 字段1, 字段2, ...  FROM 来源表  WHERE not exists (select * from 目标表  where 目标表.比较字段 = 来源表.比较字段);

d.通过更新的方式,将一个表中的部分数据更新到另一个表中:update inner join on a.bid=b.id set a.x=b.x,a.y=b.y;

2.insert的其它用法:

insert into set为mysql的扩展语法,适合插入单行

insert into value 为标准SQL语法,能一次插入多行数据

3.replace用法;

1.replace into
          replace into table (id,name) values('1','aa'),('2','bb')
          此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在就相当于
          insert into table (id,name) values('1','aa'),('2','bb')
          如果存在相同的值则不会插入数据

2.replace(object,search,replace)
          把object中出现search的全部替换为replace
          select replace('www.163.com','w','Ww')--->WwWwWw.163.com
          例:把表table中的name字段中的aa替换为bb
          update table set name=replace(name,'aa','bb')

3.UPDATE更新一个字段中的的部分内容

现在有一条记录的字段是“abcdefg",现在我只想将该字段中的c改为C,update语句应该怎么写

update 表名 set 字段1 = replace(字段1,'c','C')

 
原文地址:https://www.cnblogs.com/wangzhao2016/p/5708451.html