實用sql整理

1.插入或替換記錄,若是存在則先刪除再插入,不存在則直接插入sql

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 ...it

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

3.插入或忽略,若是咱們插入一條記錄,若是記錄已存在就啥也不幹忽略。date

insert ignore into 表名 valuesselect

實例:insert ignore into emp(id,ename,age,job,add_time) values(7,'fff',12,'model',now()) ;sql語句

4.快照model

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;

相關文章
相關標籤/搜索