MySQL表的操作

MySQL表的操作

1. 表的操作

1.1 创建表

语法:

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

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

1.2 创建表案例

mysql 复制代码
mysql> create table user1(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> )character set utf8 collate utf8_general_ci engine MyIsam;
    
mysql> create table if not exists user2(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> )charset=utf8 collate=utf8_general_ci engine=InnoDB;

说明:

不同的存储引擎,创建表的文件不一样。

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

  • user1.frm:表结构
  • user1.MYD:表数据
  • user1.MYI:表索引

user2 表存储引擎是InnoDB ,在数据目中有两个不同的文件,分别是:

  • user2.frm:表结构
  • user2.ibd:表数据和索引

1.3 查看表结构

mysql 复制代码
desc 表名;
mysql 复制代码
show create table 表名;
# 查看表创建时的详细信息

1.4 修改表

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

  1. 修改表名

    mysql 复制代码
    alter table 旧名字 rename to 新名字
    # 其中to可以省略
  2. 插入数据

    mysql 复制代码
    insert into myuser values (1,'张三','abc123','2002-1-1');
    insert into myuser values (1,'李四','123aaa','2002-12-4');
  3. 在表中添加一个字段,用于保存图片路径

    mysql 复制代码
    ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

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

  4. 修改表中字段的属性

    mysql 复制代码
    ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);

    注意这里修改新属性只改变了类型,我们之前设置的comment备注被覆盖。

  5. 删除某一字段

    mysql 复制代码
    ALTER TABLE tablename DROP (column);

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

  6. 修改某一字段名称

    mysql 复制代码
    mysql> alter table myuser change name XingMing varchar(70) DEFAULT NULL; 
    # 新字段需要完整定义

1.5 删除表

语法:

mysql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

mysql 复制代码
drop table user2;
相关推荐
Nyarlathotep011316 小时前
SQL的事务控制
sql·mysql
进击的丸子16 小时前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
用户861782773651817 小时前
MySQL 8.0从库宕机排查实录:中继日志膨胀引发的连锁故障复盘
mysql
NineData1 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
IvorySQL1 天前
双星闪耀温哥华:IvorySQL 社区两项议题入选 PGConf.dev 2026
数据库·postgresql·开源
ma_king2 天前
入门 java 和 数据库
java·数据库·后端
jiayou642 天前
KingbaseES 实战:审计追踪配置与运维实践
数据库
随风飘的云2 天前
mysql的innodb引擎对可重复读做了那些优化,可以避免幻读
mysql
NineData2 天前
NineData 迁移评估功能正式上线
数据库·dba
NineData2 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算