mysql数据库的各种实用语句[收藏版]

来源:互联网 发布:springer数据库 编辑:程序博客网 时间:2024/05/24 03:20

 

1、清除数据表后,让表的自动编号从指定数开始

alter table 表名 AUTO_INCREMENT 编号起始数;

 

2、将一张表的数据插入另一张表中

  如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:    INSERT INTO 目标表 SELECT * FROM 来源表;   //在两张表的字段布局都相同    如果只希望导入指定字段,可以用这种方法:  注意字段的顺序必须一致  INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;  如果您需要只导入目标表中不存在的记录,可以使用这种方法:  INSERT INTO 目标表  (字段1, 字段2, ...)    SELECT 字段1, 字段2, ...    FROM 来源表    WHERE not exists (select * from 目标表    where 目标表.比较字段 = 来源表.比较字段);

 

   1>.插入多条记录:

  insert into insertTest2   (id,name)   select id,name   from insertTest  where not exists (select * from insertTest2  where insertTest2.id=insertTest.id);

 

   2>.插入一条记录:

  insert into insertTest     (id, name)      SELECT 100, 'liudehua'      FROM dual       WHERE not exists (select * from insertTest      where insertTest.id = 100);  
  使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。

 

3、将一个表中的字段更新到另一表中  update t1, t2 set t1.f1 = t2.f2 where t1.id = t2.t1id

 

4、过滤重复的数据 select distinct(id) from t1;

 

5、查找出重复的数据 select id from t1 group by id having count(id) > 1

 

6、新记录被插入之前,旧记录被删除

     replace into a (id,name) values (2,'插入');

 

7、批量更新多条记录

      UPDATE ecm_goods SET       cate_id =       CASE      WHEN goods_id = 2000 THEN            100      WHEN goods_id = 2001 THEN            101      WHEN goods_id = 2002 THEN            102      END,      goods_name =      CASE      WHEN goods_id = 2000 THEN            '商品名称1'      WHEN goods_id = 2001 THEN            '商品名称2'      WHEN goods_id = 2002 THEN            '商品名称3'      END      WHERE          goods_id IN (2000, 2001, 2002)

 

8、批量插入多条记录

      INSERT INTO ecm_goods (            `goods_id`,            `cate_id`,            `name`      )      VALUES            ('2000', '100', 'godos1'),            ('2001', '101', 'godos2'),            ('2002', '102', 'godos3')