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

MYSQL之表的操作

1. 创建表

语法: 

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field 表示列名, datatype 表示列的类型
  • character set 字符集, 如果没有指定字符集, 则以所在数据库的字符集为准
  • collate 校验规则, 如果没有指定校验规则, 则以所在数据库的校验规则为准

举个例子, 现在创建 users 表(使用InnoDB), users2 表(使用MyISAM).

create table users(-> id int,-> name varchar(20) comment '用户名',-> password char(32) comment '密码是32位md值',-> birthday date comment '生日'-> ) character set utf8mb4 engine InnoDB;create table users2 (-> id int,-> name varchar(20) comment '用户名',-> birthday date comment '生日',-> password char(32) comment '密码是32位的md值'-> ) character set utf8mb4 engine MyISAM;

在对应的数据库目录下, 可以看到:

users 表存储引擎是 MyISAM, 在数据目中有三个不同的文件, 分别是:

  • 表结构, MySQL5.5 是users.frm; 8.0是 users.sdi
  • 表数据: users.MYD
  • 表索引: users.MYI

users2 表存储引擎是 InnoDB, MYSQL 8.0 下, 目录里是一个 ibd 文件.

2. 查看表结构

如果查看数据库有哪些表?

show tables; 

如何查看特定表的信息?

desc 表名;

如何查看当时创建表时的选项等具体的信息? 

show create table users \G;

3. 修改表

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

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

添加列

当前表只有四列属性:

现在我想添加一列address属性: 

alter table users add address varchar(60) comment '地址' after birthday;

插入新字段后, 对原来表中的数据没有影响:

修改列

修改列的字段类型

 现在把一个列 name 的类型修改为varchar 60:

alter table users modify name varchar(60);

 需要加上列修改后的属性

修改表的名称 
ALTER TABLE 原表名 RENAME TO 新表名;

alter table users rename to user 

指令中to可以省略 

修改列的名称
ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型;

 alter table user change name xingming varchar(60);

注意: 新的目标字段需要完整地定义, 即使其类型和之前一模一样, 否则报错:  

 删除列

 注意: 删除字段一定要小心, 删除字段及其对应的列数据都没了

alter table users drop address;

 4. 删除表

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

比如: drop table t1; 表t1就被删除了.
 

http://www.xdnf.cn/news/98209.html

相关文章:

  • 店匠科技摘得 36 氪“2025 AI Partner 创新大奖”
  • 深入解析:RocketMQ、RabbitMQ和Kafka的区别与使用场景
  • 高并发系统设计的六字真言
  • 7.7 Axios+Redux+JWT全链路实战:打通前后端API通信最佳实践
  • 努比亚Z70S Ultra 摄影师版将于4月28日发布,首发【光影大师990】传感器
  • 事关数据安全,ARM被爆不可修复漏洞
  • TCP编程
  • 智能电网第3期 | 配电房巡检机器人通信升级方案
  • Qt实现语言切换的完整方案
  • springboot+vue 支付宝支付(沙箱方式,测试环境使用)
  • 聊聊Spring AI Alibaba的ObsidianDocumentReader
  • 【人工智能】DeepSeek 的开源生态:释放 AI 潜能的社区协同与技术突破
  • Unity-无限滚动列表实现Timer时间管理实现
  • ubuntu24设置拼音输入法,解决chrome不能输入中文
  • 经验分享-上传ios的ipa文件
  • Windows 同步技术-计时器队列和内存屏障
  • 32单片机——GPIO的工作模式
  • 工具指南:免费将 PDF 转换为 Word 的 10 个工具
  • [蓝桥杯 2025 省 Python B] 最多次数
  • 数据一致性问题剖析与实践(三)——分布式事务的一致性问题
  • MIT IDSS深度解析:跨学科融合与系统科学实践
  • 【正则表达式】核心知识点全景解析
  • 【解决】layui layer的提示框,弹出框一闪而过的问题
  • 12、高阶组件:魔法增幅器——React 19 HOC模式
  • 深入详解Java中的@PostConstruct注解:实现简洁而高效初始化操作
  • java记忆手册(2)
  • python 更换 pip 镜像源
  • 书香换绿意,爱心已成荫|平安养老险陕西分公司“以书换植”公益活动
  • 区块链技术在物联网中的应用:构建可信的智能世界
  • 微任务与宏任务