【MySQL】表的操作

发布于:2024-10-09 ⋅ 阅读:(39) ⋅ 点赞:(0)

1. 创建表

create table table_name (
	fieId1 datatype,
	fieId2 datatype,
	fieId3 datatype
) [character set 字符集] [collate 校验规则] [engine 存储引擎];

说明:

  • fieId表示列名;
  • datatype 表示列的类型;
  • character set 字符集,如果没有指定字符集,那么就默认继承该表所在数据库的字符集;
  • collate 校验规则,如果没有指定校验规则,那么就默认继承该表所在数据库的校验规则;
  • engine 存储引擎,如果没有指定存储引擎,那么就默认继承该表所在数据库的存储引擎;

image-20241003000257653

上图例子中,创建了一个指定utf8字符集和utf8_general_ci校验集和MyISAM存储引擎的表,同时再创建一个存储引擎为innodb的表,观察目录结构

image-20241003000616511

可以发现,不同的存储引擎,创建表的文件不一样

  • 对于MyISAM存储引擎,创建的文件有三个
    • table_name.frm:表结构
    • table_name.MYD:表数据
    • table_name.MYI:表索引
  • 对于innodb存储引擎,创建的文件有两个
    • table_name.frm:表结构
    • table_name.idb:表数据和表索引

这是因为底层存储的数据结构不一样

2. 查看表

2.1 查看数据库中所有表

show tables;

image-20241003005006201

2.2 查看表结构

desc table_name

image-20241003001133704

3. 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表(虽然大家都很讨厌修改,但是甲方爸爸最大嘛)

alter table table_name add (column datatype [defalut expr][, column datatype] ...); -- 添加列
alter table table_name modify (column datatype [defalut expr][, column datatype] ...); -- 修改列
alter table table_name drop (column); -- 删除列
  • 案例:对于下列结构的表进行修改

image-20241003003947942

1. 添加一个保存文件路径的字段

alter table users add assets varchar(100) comment '图片路径' after birthday;
-- 插入列名为assets的一列,在birthday之后,其中comment表示注释当前列

image-20241003004251827

如上所示,插入成功,并且插入新字段对原来表中数据没有影响

2. 修改name的长度最大为60

alter table users modify name varchar(60);

image-20241003004423800

3. 删除password列

注意:删除字段一定要小心,字段删除后其列对应的所有数据都将会被删除

alter table users drop password;

image-20241003004615082

4. 修改表名为employee

alter table users rename to employee; -- 这里to可以省略

image-20241003004837735

5. 修改列名为xingming

alter table employee change name xiaoming varchar(60); -- 新字段需要完整定义(覆盖式的更新)

image-20241003005112993

4. 删除表

drop [temporary] table [if exists] table_name

image-20241003005201777


本节完…

drop [temporary] table [if exists] table_name

在这里插入图片描述


本节完…