实用sql整理

1.插入或替换记录,如果存在则先删除再插入,不存在则直接插入

replace into 表名 values

实例:replace into emp(id,ename,age,job,add_time) values(‘5‘,‘you‘,34,‘waiter‘,now());//insert语句替换为replace,其它不变

2.插入或更新记录,插入一条记录,如果该记录存在则更新

INSERT INTO ... ON DUPLICATE KEY UPDATE ...

实例:insert into emp(id,ename,age,job,add_time) values(6,‘sfd‘,12,‘model‘,now()) on duplicate key update ename=‘jj‘,age=255;

3.插入或忽略,如果我们插入一条记录,如果记录已存在就啥也不干忽略。

insert ignore into 表名 values

实例:insert ignore into emp(id,ename,age,job,add_time) values(7,‘fff‘,12,‘model‘,now()) ;

4.快照

create table tablename select * from tablename

实例:create table emp_tmp select * from emp where id=‘5‘;

新表跟旧表 表结构一致,数据根据查询条件来。

5.插入查询结果集

insert into  select 

实例:insert into emp_tmp(ename,age) select ename,age from emp where ename=‘you‘;

6.强制使用索引

数据库查询优化器通常会分析sql语句采用最合适的索引,但这不是绝对的,不一定总能使用最优索引,如果我们很清楚最优索引,那么可以强制使用

select * from 表名 force index(索引名) where

实例:select * from emp force index(index_age) where age=12 order by age desc;

 

实用sql整理

上一篇:树莓派配置Oracle JDK8


下一篇:码上公益|以代码之力,让爱走得更远