MySQL在创建相同表结构时as和like 使用的区别

1.MySQL的复制相同表结构方法:

  1)create table table_name as select * from table1 where 1=2 (或者limit  0);

  2) create table table_name like table1_name;

  二者的用途:

  as :用来创建相同表结构并复制源表数据。(可根据后面的条件来控制要不要复制源表数据)

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

  二者的区别:

  as :创建出来的table_name缺少table1的索引信息,只有表结构相同,没有索引。

  like:创建出来的新表包含源表的完整表结构和索引信息。

补充:Oracle支持as,也是只有表结构没有索引,Oracle不支持like;

时间: 2024-10-08 12:13:23

MySQL在创建相同表结构时as和like 使用的区别的相关文章

MySQL创建修改表结构

一. 数据库的概述 1.什么是数据库 DB,DataBase 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS,DataBase Management System 数据库管理系统:用来操纵和管理数据库的大型服务软件 DBS,DataBase System 数据系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算       机系统 2.E-R数据模型 实体-关系 模型(Entity-Relationship Model) 3.常见的数据库服务软件 类型 厂商 Or

MySQL在创建数据表的时候创建索引

转载:http://www.baike369.com/content/?id=5478 MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可以直接创建索引.基本的语法格式如下: CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [索引名](字段名1 [(长度)] [ASC | DESC]) ); UNIQUE:可选.表示索引为唯一性索引. FULLTEXT:可选.表示索引为全

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用来创建相同表结构并复制源表数据.like

4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)

 mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 dbuser1 用户 --     创建用户'dbuser61'密码为 'dbuser61'拥有操作数据库mydb61的所有权限 GRANT ALL ON mydb61.* TO dbuser61 IDENTIFIED BY "dbuser61&quo

用命令从mysql中导出/导入表结构及数据

在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:mysqldump最常用的:mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数Eg: C:\Users\jack> mysqldump -uroo

关于更新表结构时碰到的DDL锁导致数据库无法连接

记一次更新表结构时语句一直处于等待无法执行的解决办法 我们在更新数据库表结构的时候,当数据库有连接正在进行中的事务时,那么你的更新请求会处于一个等待的状态,一直等待到当前未提交的事务完成之后才会进行更新操作,但是这个未提交的事务会需要多久时间完成对我们来讲是一个未知数,(自己第一次碰到这个情况的时候,竟然以为是数据记录太多需要等待更新,等了半个小时... 愚蠢)在这个等待期间,所有的后续连接请求都会被挂起,等待事务提交完成后更新操作完成才会执行,逻辑是这样的:有个事务1在查询表a,一直占着不释放

mysql数据库基本操作(表结构)

装包启服务后会自动生成相关的配置文件 首次运行时会自动生成 root 初始秘密初始密码在服务日志文件中查找 grep -i password /var/log/mysql.log 进去mysql mysql -hlocalhost -uroot -p初始密码 set global validate_password_policy=0;#修改密码默认等级为0#0为长度 , 1为字母长度符号,2为字母长度符号,字典文件 set global validate_password_length=6;#修

MySQL 3.创建数据表

数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础. 关系型的数据库其实就是一张二维的表格,更严谨的指的就是数据表,二维表格的行称为记录.列称为字段. 若打开了数据库想确认是否是自己想要的数据库时输入SELECT DATABASE(); 创建数据表步骤: 1.USE 数据库名称; 2.CREATE TABLE 数据表名称(列名  数据类型,   ...); Demo: 1 CREATE TABLE test( 2 username VARCHAR(20), 3 age TINYINT

关于mysql存储过程创建动态表名及参数处理

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 最近游戏开始第二次内测,开始处理操作日志,最开始把日志放到同一个表里面,发现一天时间,平均100玩家在线,操作记录就超过13万条,决定拆表,按照日期来保存日志,每天的日志存到一个表里面,然后定期把老的数据导出来备份后删掉. 具体思路是写日志的时候,根据当前的时间决定插入到当天的表里面,如表不存在则创建一个新的表,表名里面带上当天的日期.这就涉及到需要在存储过程里面动态创建一个跟日期相关的表.mysql不