MySQL的create table as 与 like区别(转)

对于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用来创建相同表结构并复制源表数据。注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个 表不会有主键,索引

    like用来创建完整表结构和全部索引

oracle支持as,也是只有表结构没有索引;oracle不支持like。

http://blog.csdn.net/longyulu/article/details/8488456

1、如果你要真正的复制一个表。可以用下面的语句。

CREATE TABLE newadmin LIKE admin;
INSERT INTO newadmin SELECT * FROM admin;

2、我们可以操作不同的数据库。

CREATE TABLE newadmin LIKE shop.admin;
CREATE TABLE newshop.newadmin LIKE shop.admin;

3、我们也可以拷贝一个表中其中的一些字段。

CREATE TABLE newadmin AS
(
SELECT username, password FROM admin
)

4、我们也可以讲新建的表的字段改名。

CREATE TABLE newadmin AS
(
SELECT id, username AS uname, password AS pass FROM admin
)

5、我们也可以拷贝一部分数据。

CREATE TABLE newadmin AS
(
SELECT * FROM admin WHERE LEFT(username,1) = 's'
)

http://www.cnblogs.com/yaoyao1556/p/3813999.html

时间: 2024-08-01 14:32:55

MySQL的create table as 与 like区别(转)的相关文章

MySQL中create table as 与like的区别分析_Mysql

本文分析了MySQL中create table as 与like的区别.分享给大家供大家参考,具体如下: 对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? 复制代码 代码如下: create table t2 as select * from t1 where 1=2;或者 复制代码 代码如下: limit 0; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. 复制代码 代码如下

MySQL中create table语句的基本语法是_php基础

MySQL中create table语句的基本语法是:  Create [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]  [table_options] [select_statement]  TEMPORARY:该关键字表示用create table新建的表为临时表,此表在当前会话结束后将自动消失.临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用.  IF NOT EX

mysql show create table

功能:查看表创建时的定义 语法:show create table aaa; 解释:aaa为表名

mysql 改变表table的字符集sql语句

正确的改变table字符集的语句是: alter table xxx convert to character set utf8; 而不是想当然的: alter table xxx default charset utf8; 字符集从GBK转成utf8, 会增大字段所占用的空间,有可能会改变字段的类型: 比如text有可能会自动变成medium text 但是varchar没有自动变成medium text. 下面看测试: 建一张GBK的表: mysql> SHOW CREATE TABLE x

MySQL进阶_create table篇

MySQL中create table语句的基本语法是: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] TEMPORARY:该关键字表示用create table新建的表为临时表,此表在当前会话结束后将自动消失.临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用.IF NOT EXISTS:

mysql中create命令建表sql语句

MySQL中create table语句的基本语法是:  代码如下 复制代码 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]  [table_options] [select_statement]  TEMPORARY:该关键字表示用MySQL create table新建的表为临时表,此表在当前会话结束后将自动消失.临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字

MySQL Meta 信息与 CREATE TABLE 的对应关系

前情提要 下面四篇文章是数月之前对length的理解 MySQL Meta中的length字段 -- (1) 初始值的length计算 MySQL Meta中的length字段 -- (2) length的推导MySQL Meta中的length字段 -- (3) length的推导举例MySQL Meta中的length字段 -- (4) 玩儿MySQL代码 温故而知新,几个月后,对 length 等 meta 信息的理解又进一步,本文再记之. 混乱的MySQL定义 用"混乱"这个词

MySQL create table as与create table like对比

      在MySQL数据库中,关于表的克隆有多种方式,比如我们可以使用create table ..as .. ,也可以使用create table .. like ..方式.然而这2种不同的方式还是有些差异的,他的差异到底在哪里呢,本文通过演示对此展开描述. 1.mysql sakila表上的结构 --actor表状态 robin@localhost[sakila]> show table status like 'actor'\G ***************************

【MySQL】ERROR 1005 (HY000): Can't create table' (errno: 150)

创建含有外键的表的时候遇到如下错误  ERROR 1005 (HY000): Can't create table 'eidsvr.oplog' (errno: 150) test@3302 12:02:22>CREATE TABLE biz(     -> id INTEGER NOT NULL AUTO_INCREMENT,      -> buid VARCHAR(255),      -> appkey VARCHAR(255),      -> createtime