首页 > 数据库 >MySQL 表的创建、复制、修改与删除

MySQL 表的创建、复制、修改与删除

时间:2022-12-21 12:14:28浏览次数:45  
标签:drop exists 删除 -- MySQL 修改 复制 表名 table

MySQL中如何利用代码完成表的创建、复制、修改和删除。

一、创建表

--创建新表,如果存在则覆盖
drop table [if exists] 表名;
--创建新表,如果存在则返回
create table
[if not exists] 表名 -- 不存在才创建,存在就跳过
(<列名1> <数据类型> -- 列名和类型必选
  [ primary key -- 可选的约束,主键
   | foreign key  -- 外键,引用其他表的键值
   | auto_increment -- 自增ID
   | comment <注释> -- 列注释(评论)
   | default <值> -- 默认值
   | unique -- 唯一性约束,不允许两条记录该列值相同
   | not null -- 该列非空,输入空会报错
   | current_timestamp -- 当前时间戳
  ], ...
) [character set <字符集名>] -- 字符集编码
[collate <校对规则名>] -- 列排序和比较时的规则(是否区分大小写等)

二、复制表

  • 复制表的结构
create table 新表名 like 旧表名;
  • 复制表的结构+数据
create table 表名 
select 查询列表 from 旧表名 [where 筛选条件];

三、修改表

  • 直接修改表
alter table 表名 修改选项;
选项集合:
{ add column <新增列名> <类型> after <某一列>  -- 在某一列之后增加列
| change column <旧列名> <新列名> <新列类型> -- 修改列名或类型
| alter column <列名> { set default <默认值> | drop default } -- 修改/删除 列的默认值
| modify column <列名> <类型> -- 修改列类型
| drop column <列名> -- 删除列
| rename to <新表名> -- 修改表名
| character set <字符集名> -- 修改字符集
| collate <校对规则名> } -- 修改校对规则(比较和排序时用到,是否区分大小写等)

建议:修改列属性时使用modify;修改列名使用change。

  • 删除表之后重建表
drop table if exists 表名; 
create table if not exists 表名...;

四、删除表

drop table [if exists] 表名 [,表名1,...];

标签:drop,exists,删除,--,MySQL,修改,复制,表名,table
From: https://www.cnblogs.com/chengyj/p/16995965.html

相关文章

  • MySQL 更新数据 不同条件(批量)更新不同值
    一般在更新时会遇到以下场景:1.全部更新;2.根据条件更新字段中的某部分内容;3.根据不同的条件更新不同的值,以下是几种场景中常用的update方法。一、方法分类二、具体用法(1......
  • MySQL 插入数据 数据重复 从另一个表导入数据
    当使用MySQL插入数据时,我们可以根据需求选择合适的插入语句。一、方法分类二、具体方法使用场景作用语句注意常规插入忽略字段名insertinto表名......
  • MySQL 字符串长度 char_length、length
    一、方法分类二、具体方法函数描述区别char_length(str)或character_length(str)返回字符串str的字符1、单位为字符2、不管汉字还是数字或者是字母都算是......
  • MySQL 判断语句 条件函数 case when、if、ifnull
    在MySQL中,需要用到条件判断函数,例如casewhen、if、ifnull。一、方法分类二、具体方法(1)ifif(expr,result_true,result_false)注意:一个条件表达式两个结果expr......
  • MySQL——InnoDB体系结构
      InnoDB引擎主要包含几个重要部分: 1、内存池 1.1缓冲池 InnoDB将记录按页的形式进行管理,对于页的修改先修改缓冲池中的页,后以一定频率进行刷新到磁盘中(checkpoint......
  • MySQL——InnoDB索引原理
    一、各种树形结构 1、二叉树:允许每个节点下最多有两个子节点 二叉树在数据库中不使用的原因是: 1)、树长歪了---》树的倾斜问题 查询的代价是不可控的,主要原因是树的高......
  • MySQL-proxysql+MGR高可用
    roxySQL的基本简介:ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,可以更好更好的支持......
  • MySQL 锁表处理
    showprocesslist;killpidshowOPENTABLESWHEREin_use>0; 异常描述:Causedby:com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException:Lockwaittim......
  • MySQL-线程池介绍
    一、为什么使用MySQL线程池1、减少线程重复创建与销毁部分的开销,提高性能线程池技术通过预先创建一定数量的线程,在监听到有新的请求时,线程池直接从现有的线程中分配一个......
  • MySQL-Show Profile
    简介: ShowProfile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 1......