MySQL--表的操作

目录

创建表

查看表结构

修改表

新增列

修改列类型

修改列名

修改表名:

删除列

删除表


创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明
  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
  • 最后一个属性不用加   ,
  • 如果使用数据库默认的,最后一行括号后面的可以省略。
  • ENGINE用于指定表所采用的存储引擎。
  • COMMENT用于对指定列添加注释信息。

举例:

创建表user1

create table user1 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

创建表user2

create table user2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine innodb;

这是我们可以到目录:/var/lib/mysql/user1查看数据库内容

这里我们发现对于表users,users2它们的文件与后缀名是不一样的。

说明一下:

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

查看表结构

desc 表明;

这里我们查看users的表结构:

desc user1;

  • Filed:字段名字。
  • Type:字段类型。
  • Null:是否允许为空。
  • Key:索引类型。
  • Default:默认值。
  • Extra:扩充。

修改表

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

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 列名 新列名 新列属性;

这里为了较好的演示先在修改表中插入两条数据:

新增列

alter table 表名 add 列名 列属性  [after 列名/ not null first];

在user表中新增一列照片路径:

注意:

after password表示该列新增到password属性后面,如果想要将新增的列放到第一列,可以将after及其以后的换成not null first,如果没有after password这部分默认是将新增的列放到最后面。

如:新增grade列放到第一列,新增hobby列放到最后面:

修改列类型

alter table 表名 modify 列名 修改后的列属性;

这里我们将user表中的password列的类型由char(20)修改成char(50),如下:

注意:

如果需要修改类型后仍然保留comment字段,需要在修改时重新指定comment字段。

修改列名

alter table 表名 change 修改前的列名 修改后的列名 修改后的属性;

将user表中password列的列名改成passwd。如下:

修改表名:

alter table 修改前的表名 rename 修改后的表名;

将user表修改成employee。

删除列

alter table 表名 drop 删除列;

将employee表中的path列删除

删除表

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

将employee表删除:

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慢慢走,慢慢等

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

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

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

打赏作者

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

抵扣说明:

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

余额充值