当前位置: 首页 > article >正文

表的DDL操作

目录

一、创建表

(1)创建表的本质是创建了文件

二、查看表结构

三、修改表

四、删除表


一、创建表

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

其中

  • table_name表示创建表的名字
  • fieldx 表示列名
  • datatype表示该列的类型
  • character set 字符集 如果没有设置字符集就默认使用所在数据库的字符集,校验规则也是一样
  • 指定该表的存储引擎类型,否则就是使用系统默认的存储引擎

在已经有表存在的情况下,可以使用desc查看表的行列式

但是这里并没有显示我们comment的注释字段,可以使用之前学到的show create table 表名来查看创造该表的语句,从而得到详细描述。

(1)创建表的本质是创建了文件

        在创建表的时候,我们同样可以指定使用什么搜索引擎,使用什么样的编码格式。不同的搜索引擎创建出来的表的结构,以及存储信息的文件是不同的。

其中.sdi是一个所有表公共的用来存储表结构的文件,在老版本的mysql使用的是.frm文件。

而.MYD则表示MyIsam引擎的数据;.MYI表示MyIsam引擎的的索引

如果是使用InnoDB创建的表如下:

可以看到这里多了一个.ibd文件,这其实就是InnoDB引擎创建的存储数据文件,而他的表结构同样存储在.sdi文件中。

总结

不同的版本下,这些存储引擎生成的文件类型也是不同的。

   .MYD文件存储表的数据

   .MYI文件存储表的索引

   .sdi文件存储表的元数据

   .frm文件存储表的结构定义

   .idb存储数据和索引

二、查看表结构

desc 表名;

可以使用show create table指令查看详细的表信息,将号换成\G可以帮我们格式化显示 ,有助于我们查看。
在这里插入图片描述
通过上图我们可以看到,其实mysql真正建表的语句和我们输入的建表语句是有些差别的,这是mysql帮我们做了优化。

三、修改表

        在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

添加列

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);

修改列

ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);

但是要注意一点:使用modify只能修改列的属性,比如列使用的数据类型是什么,但是并不能修改列名,如果想要修改列名,则需要使用change。change既可以修改列属性,也能修改列名。

修改列名

alter table 表名 change 列名 新列名 列的属性;

修改表名

alter table 旧表名 rename to 新表名;

删除列

ALTER TABLE tablename DROP (column);

四、删除表

        删除表和删除库差不多,都是使用drop

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...


http://www.kler.cn/a/598379.html

相关文章:

  • Qt 导入TagLib库
  • go复习目录
  • 【小也的Java之旅系列】01 分布式、集群、微服务的区别
  • LeetCode 86 Partition List 分区链表 Java
  • Canal同步延迟和数据丢失优化方案
  • 使用Python构建去中心化预测市场:从概念到实现
  • one-hot标签详解
  • 2025年渗透测试面试题总结-某深信服 -安全工程师(题目+回答)
  • 自然语言处理|Adapter:大模型微调的高效之道
  • 让 MGR 不从 Primary 的节点克隆数据?
  • 阿里云对象存储教程
  • 【深度技术揭秘】 Android SystemUI锁屏界面动态布局重构:横竖屏智能适配指南
  • 9.嗅探与Wireshark进阶分析
  • JSON数据修改的实现
  • 【AVRCP】AVRCP与BIP互操作性深度解析:封面艺术传输的技术实现
  • Unity的JSON工具类+LitJson的引入及使用
  • 基于python+django的酒店预定网站-酒店管理系统源码+运行步骤+课程学习
  • 【2025】基于node.js的中医药科普平台的设计与实现(源码、万字文档、图文修改、调试答疑)
  • Spring IOC深入解析:从原理到实践
  • 《基于深度学习的指纹识别智能门禁系统》开题报告