MySQL表的管理 学习

思维导图

在这里插入图片描述

导学

在之前的章节中,其实我们主要学习了如何去创建一张表,那在本节课程中,我们将要学习如何去管理一张表。

表结构相关操作

添加删除表字段

语法:

添加字段

ALTER TABLE tb_name ADD 字段名称 字段属性 [完整性约束条件][FIRST(将某个字段加到起始位置)|AFTER 字段名称]

删除字段

ALTER TABLE tb_name DROP 字段名称

示例:

添加
alter table user add user_name varchar(60) not null after id
删除
alter table user drop email
动态添加删除默认值

语法:

添加默认值:

ALTER TABLE tb_name ALTER 字段名称 SET DEFAULT 默认值;

删除默认值:

ALTER TABLE tb_name ALTER 字段名称 DROP DEFAULT

示例:

-- 给email字段添加默认值 0-未填写
alter table user
alter email SET DEFAULT '0-未填写';

-- 删除age字段的默认值
alter table user2
alter age drop default
动态修改字段的属性和类型

语法:

修改字段类型,字段属性
ALTER TABLE tb_name
MODIFY 字段名称 字段类型 [字段属性] [FIRST | AFTER 字段名称]

修改字段名称,字段类型,字段属性
ALTER TABLE tb_name
CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称]

示例:

-- 修改字段类型,字段属性
alter table user
modify username varchar20) not null unique

-- 修改字段名称,字段类型,字段属性
alter table user
change username user_name varchar(20) not null
动态添加和删除主键
添加主键

ALTER TABLE tb_name ADD PRIMARY KEY(字段名称)

删除主键

ALTER TABLE tb_name DROP PRIMARY KEY;

示例:

-- 添加主键
ALTER TABLE user ADD PRIMARY KEY(id);

-- 删除主键
ALTER TABLE user DROP PRIMARY KEY;

注意:如果对主键设置自增约束后,是不能直接删除主键的,需要先删除自增约束。

动态添加和删除唯一约束

语法:

添加唯一

ALTER TABLE tb_name ADD UNIQUE KEY|INDEX [index_name](字段名称);

删除唯一

ALTER TABLE tb_name DROP INDEX index_name;

注意:当我们想要删除唯一约束的时候,需要借助唯一约束的名字,可以通过show create table tb_name语句查看表的详细信息。当没有给唯一字段的约束起名字时,系统默认将字段名设置为唯一字段索引名称。
示例:

-- 添加唯一索引
ALTER TABLE user
ADD UNIQUE KEY(username);

-- 或
ALTER TABLE user
ADD UNIQUE INDEX uni_email(email); --uni_加字段名称

-- 删除时则:
ALTER TABLE user DROP UNIQUE INDEX uni_email;
修改表名称
修改数据表名称:
ALTER TABLE tb_name RENAME [TO|AS] new _tb_name
或
RENAME TABLE tb_name TO new_tb_name

示例:

ALTER TABLE user
RENAME TO user666;

存储引擎

MySQL 5.5之后默认使用InnoDB存储引擎。

什么是存储引擎

“存储引擎”从字面理解,“存储”的意思的存储数据。
“引擎”一词来源于发动机,它是发动机中的核心部分。在软件工程领域,相似的称呼有“游戏引擎”、“搜索引擎”,它们都是相应程序或系统的核心组件。
所以从这里可以看出“存储引擎”似乎也是数据库的核心。存储引擎是MySQL有别于其他数据库管理系统的最大特色,比如它的兄弟Oracle中就没有专门的存储引擎的概念,我们知道关系型数据库的数据是存在表里的,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式,每个表格就是一个数据。
表是在存储数据的同时,还要组织数据的存储结构,而这些数据的组织结构就是由存储引擎决定的。
但是,对于用户和应用程序来说同一张表的数据,无论用什么引擎来存储,用户看到的数据都是一样的。不同的引擎存取、引擎功能,占用的空间大小,读取性能等可能有区别。
简单来说,存储引擎就是数据的存储结构,由实际业务决定。

常用引擎

对于日常工作来说,常用的存储引擎只有四种:默认的InnoDB、MyISAM和MEMORY。

  • MyISAM:拥有较高的插入,查询速度,但不支持事务,多用于数据仓库这样查询多而事务少的情况,速度较快。
  • InnoDB:5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定(可以提升多并发时的性能)。多用于web网站后台等实时的中小型事务处理后台。
  • MEMORY:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失

ACID指的是:原子性(Atomiocity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。这也是MySQL数据库的特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值