溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql中create as 和create like有哪些區(qū)別

發(fā)布時(shí)間:2020-09-16 14:20:55 來源:億速云 閱讀:316 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下Mysql中create as 和create like有哪些區(qū)別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

大家可能使用Navicat Premium時(shí)發(fā)現(xiàn)很方便,比如復(fù)制表或數(shù)據(jù)結(jié)構(gòu)等,其實(shí)這種復(fù)制表數(shù)據(jù)或結(jié)構(gòu)方法就是create table as 和create table like 這種方式實(shí)現(xiàn)

細(xì)心的朋友會(huì)問,他們有啥區(qū)別呢?。。。廢話不多說,直入正題:、

比如這里有張表數(shù)據(jù)t1:

DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID,自增',
  `uid` bigint(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用戶uid',
  `nickname` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '昵稱',
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用戶名',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `unn`(`uid`, `name`, `nickname`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci  ROW_FORMAT = Compact;

-- ----------------------------
-- Records of t1
-- ----------------------------
INSERT INTO `t1` VALUES (3, 100, 'kaven', 'test3');
INSERT INTO `t1` VALUES (2, 101, 'maha', 'test2');
INSERT INTO `t1` VALUES (4, 102, 'loose', 'test4');
INSERT INTO `t1` VALUES (5, 105, 'balala', 'test5');

注意上面有索引:

Mysql中create as 和create like有哪些區(qū)別

Create As 復(fù)制表

create table t1_copy as select * from t1 where 1=2# 或者 create table t1_copy as select * from t1 limit 0

這里我們只需要表結(jié)構(gòu),所以上面的 where 1=2 或lmit 0 查詢的是空數(shù)據(jù)。我們會(huì)發(fā)現(xiàn)新表t1_copy沒有索引:
Mysql中create as 和create like有哪些區(qū)別

缺少t1表(源表)的索引信息而只有表結(jié)構(gòu)相同。(如果要復(fù)制數(shù)據(jù),去掉limit 0即可,也就是查詢到的所有數(shù)據(jù)復(fù)制)

Create like 復(fù)制表

create table t1_copy2 like t1

Mysql中create as 和create like有哪些區(qū)別

我們發(fā)現(xiàn)like 創(chuàng)建出來的新表包含源表的完整表結(jié)構(gòu)和索引信息。

總結(jié)

as用來創(chuàng)建相同表結(jié)構(gòu)并復(fù)制源表數(shù)據(jù)。

like用來創(chuàng)建完整表結(jié)構(gòu)和全部索引。

注意:兩種方式在復(fù)制表的時(shí)候是不會(huì)復(fù)制權(quán)限對(duì)表的設(shè)置。比如說原本對(duì)表A做了權(quán)限設(shè)置,復(fù)制表AA后,表AA并不具備類似于表A的權(quán)限。有興趣的朋友可以試下

看完了這篇文章,相信你對(duì)Mysql中create as 和create like有哪些區(qū)別有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI