MySQL表的操作

本文详细介绍了MySQL中对表的管理操作,包括使用DDL创建、查看、修改和删除表。创建表涉及CREATETABLE语句,可以选择存储引擎和指定列的属性。查看表结构使用DESC命令,而修改表可以添加、修改或删除列,以及更改表名。删除表使用DROPTABLE语句,需要注意临时表的处理。
摘要由CSDN通过智能技术生成

目录

一、创建表

二、查看表结构

三、修改表

四、删除表


MySQL中对表的操作会涉及到两类SQL语句:

  • DDL(Data Definition Language)数据定义语言:如建表、删表、改表、新增列、删除列等
  • DML(Data Manipulation Language)数据操作语言:如插入记录、删除记录、修改记录等

本博客中主要讲解表的DDL操作,即对表的结构进行控制

一、创建表

CREATE TABLE [IF NOT EXISTS] table_name(
	field1 datatype1 [COMMENT '注释信息'],
	field2 datatype2 [COMMENT '注释信息'],
	field3 datatype3  [COMMENT '注释信息']
)[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];
  • SQL中大写的表示关键字,[ ]中代表的是可选项
  • field表示列名,datatype表示列的类型
  • CHARSET用于指定表所采用的编码格式,若没有指定则以所在数据库的编码格式为准
  • COLLATE用于指定表所采用的校验规则,若没有指定则以所在数据库的校验规则为准
  • ENGINE用于指定表所采用的存储引擎
  • COMMENT用于对指定列添加注释信息

创建表案例

在创建表之前需先选中一个数据库,再在数据库中创建表,这里先创建一个数据库

数据库创建完毕后选中数据库,在该数据库中创建一个user表,在建表时指定使用MyISAM存储引擎

表创建完毕后在数据库的数据存储路径下的db7目录中,就会对应增加三个文件

  • 采用不同的存储引擎,创建表时所产生的文件不一样
  • 采用InnoDB存储引擎建表,会产生对应的xxx.frm(表结构)和xxx.ibd(表数据+表索引)文件
  • 采用MyISAM存储引擎建表,会产生对应的xxx.frm(表结构)、xxx.MYD(表数据)和xxx.MYI(表索引)文件

二、查看表结构

使用 desc 表名 可查看表结构

  • Field表示该字段名字
  • Type表示该字段类型
  • Null表示该字段是否允许为空
  • Key表示索引类型,如主键索引为PRI
  • Default表示该字段的默认值
  • Extra表示该字段的额外信息说明

若想查看创建表时的相关细节,可使用 show create table 表名 查看创建表的SQL语句

三、修改表

ALTER TABLE table_name ADD 新增列名 新增列的属性;

ALTER TABLE table_name MODIFY 列名 修改后的列属性;

ALTER TABLE table_name DROP 列名;

ALTER TABLE table_name RENAME [TO] 新表名;

ALTER TABLE table_name CHANGE 列名 新列名 新列属性;

修改表的过程中可能会影响到表中的数据,为了演示这个过程,在修改表之前先向user表中插入两条数据

新增列

在user表中新增一列用于保存用户的照片路径

注意:新增列SQL中的after表示将该列新增到哪一列之后,若想将新增的列放到第一列,可以将after及其之后的SQL换成not null first

可以看到之前插入表中的两条记录对应的path值为NULL,因此新增列后可能还需对原来插入的记录进行修改

修改列属性

将user表中passwd列的类型由varchar(30)改成varchar(25)

若修改列类型后仍需保留comment字段,需在修改时重新指定comment字段

修改列名

将user表中passwd列的列名改成password

修改表名

将user表的表名改成person

删除列

将person表中的path列删除

注意:删除列后,该列所对应的数据都被删除,请谨慎删除

四、删除表

DROP [TEMPORARY] TABLE [IF EXISTS] table_name;
  • 若在创建表时加上TEMPORARY关键字,那么服务器将创建出一个临时表,该表会在与服务器的会话终止时自动消失
  • TEMPORARY表的名字可以与某个已有的永久表相同,当有TEMPORARY表存在时,对应的永久表会隐藏起来(即无法访问)
  • 为了避免重新连接后(TEMPORARY已经不存在),在未做检测的情况下调用DROP误删了对应永久表,因此在使用DROP删除临时表时需要带上TEMPORARY关键字

将person表删除,如下:

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GG_Bond20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值