實用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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章