mysql 之as 與 like建立表之差異

2021-07-11 23:43:35 字數 646 閱讀 1457

對於mysql的複製相同表結構方法,有create table as 和create table like 兩種,區別是什麼呢?

create table t2 as select * from t1 where 1=2 ; 或者 limit 0;

as建立出來的t2表(新錶)缺少t1表(源表)的索引資訊,只有表結構相同,沒有索引。

create table t2 like t1 ;

like 建立出來的新錶包含源表的完整表結構和索引資訊

二者的用途:

as用來建立相同表結構並複製源表資料

like用來建立完整表結構和全部索引

oracle支援as,也是只有表結構沒有索引;oracle不支援like。

同時,還發現like建立的表是沒資料的。。。

同時自己的乙個突然的想法,插入資料到like出來的表(說明t1是存在資料的,id,name id自增),做了如下測試

1,這種寫法是可行的

create table t*** like t1

insert into t*** values (null,'aa');

2,連起來就報錯了

insert into (create table t*** like t1) values (null,'aa');

MySQL優化之like關鍵字

無法使用索引了,開頭是不確定的,mysql也無法進行優化了,只能掃瞄表了。如果業務需要 就放開頭我們也沒辦法,一般情況需求都是這樣的,畢竟優化還是為業務服務的。建立復合索引idx name age select name,age from tb where name like e 查詢是覆蓋索引的,...

MySQL基礎之 LIKE操作符

like操作符 作用 用於在where子句中搜尋列中的指定模式。語法 select column name from table name where column name like pattern 現在我們建立乙個表 mysql select from information id name a...

MySQL中Like與REGEXP的區別

資料庫內容 like語句 select from test1 where psd like 123456 查詢到 2,3 5like匹配當前文字 regexp語句 select from test1 where psd regexp 123456 全部查詢到 regexp更為靈活 1000 2000...