【MySQL】表的操作

前言

上一期我们对库操作进行了介绍,本期我们对表的结构操作进行来介绍。

目录

前言

一、创建表

二、表的相关查询

[2.1 查询当前库中的所有表](#2.1 查询当前库中的所有表)

[2.1 查询创建表时的详细信息](#2.1 查询创建表时的详细信息)

[2.3 查询表的结构](#2.3 查询表的结构)

三、修改表

[3.1 修改表名](#3.1 修改表名)

[3.2 添加字段](#3.2 添加字段)

[3.3 修改字段](#3.3 修改字段)

[3.4 删除列](#3.4 删除列)

四、删除表


一、创建表

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

说明:

• field 表示列名

• datatype 表示列的类型

• character set 表的字符集,如果没有指定字符集,则使用数据库的字符集

• aollate 表的校验规则,如果没有指定校验规则,则使用数据库的校验规则

注意:表的最后一个字段后面不要添加逗号。

这里我们创建了一个user1 的表,修改了默认的存储引擎(InnoDB )为MyIsam了,然后有创建了一张user2 的表,按照默认的存储引擎(InnoDB)创建的。我们根据上期介绍的,此时会在 /var/lib/mysql 下的一个目录中,会有相关的文件(表):

.frm是负责存储表的结构定义的,.MY*表示存储引擎是MyIsam的,MYD 存储表的数据,MYI 存储表的索引(MyIsam是将表的数据和索引分开存的, 而InnoDB是将数据和索引存在一起的),这个我们后期在介绍!

二、表的相关查询

2.1 查询当前库中的所有表

sql 复制代码
show tables;

2.1 查询创建表时的详细信息

sql 复制代码
show create table tb_name;

这样看起来不好,我们直接将 **;**换 \G

2.3 查询表的结构

sql 复制代码
desc table_name;

三、修改表

在实际开发中,经常修改某个表的表结构,比如字段名字、字段大小、字段类型、表的字符集类型、表的存储引擎等。还会需要我们进行添加字段、删除字段等操作,这时候就需要对表进行修改。

3.1 修改表名

sql 复制代码
alter table 原表名 rename to 想修改为的表名;

比如当前有两个表,我们把 user1 修改为 user

这里的 to也是可以省略的!

3.2 添加字段

sql 复制代码
alter table 表名 add 字段名 字段类型 comment 描述  after 字段名;

我们先在user表中,插入两条数据:

然后执行插入一个性别sex字段,在姓名name之后

再来查询一下当前表中的数据:

我们发现新增的字段对原先的数据不会产生影响

3.3 修改字段

修改字段 分为修改字段名修改字段类型

• 修改字段名

sql 复制代码
alter table 表名 change 原字段名 新字段名 新字段的类型; #注意新字段需要完整定义

• 修改字段类型

sql 复制代码
alter table 表名 midify 字段名 新类型;

3.4 删除列

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

sql 复制代码
alter table 表名 drop 列名;

比如这里我们删除 password

四、删除表

sql 复制代码
drop table [if not exists tb_name] tb_name;

比如我们这里删除 user

该指令会将整张表以及表中的数据都删除,删除前一定要做好备份。

建议:不要轻易的删除和修改表的结构,因为数据库一般处于开发的最底层,一旦某一个字段修改或者删除了,其上层所有依赖的该数据库项目/软件都会被影响,对程序员来说这就很伤!!!

相关推荐
Amctwd9 分钟前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou44 分钟前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh1 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵2 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多3 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆3 小时前
MySQL——1、数据库基础
数据库·adb
Chasing__Dreams3 小时前
Redis--基础知识点--26--过期删除策略 与 淘汰策略
数据库·redis·缓存
源码云商3 小时前
【带文档】网上点餐系统 springboot + vue 全栈项目实战(源码+数据库+万字说明文档)
数据库·vue.js·spring boot
源远流长jerry4 小时前
MySQL的缓存策略
数据库·mysql·缓存
纯纯沙口4 小时前
Qt—用SQLite实现简单的注册登录界面
数据库·sqlite