MySQL——表操作

目录

一、创建表

二、查看表

[2.1 查看表中某成员的数据](#2.1 查看表中某成员的数据)

[2.2 查看整个表中的表成员](#2.2 查看整个表中的表成员)

[2.3 查看创建表时的句柄](#2.3 查看创建表时的句柄)

[三、修改表 alter](#三、修改表 alter)

[3.1 重命名 rename](#3.1 重命名 rename)

[3.2 新增一列 add](#3.2 新增一列 add)

[3.3 更改列属性 modify](#3.3 更改列属性 modify)

[3.4 更改列名称 change](#3.4 更改列名称 change)

[3.5 删除某列](#3.5 删除某列)


上一篇博客介绍了库的操作,接下来来看一下表的相关操作。

一、创建表

create table table_name (

field1 datatype,

field2 datatype,

field3 datatype

) character set 字符集 collate 校验规则 engine 存储引擎;

注意,最后一个数据成员后面没有逗号。

下面我们举例看一下如何创建表:

mysql> create table user1(

-> id int,

-> name varchar(20) comment '用户名',

-> password char(32) comment '用户密码',

-> birthday date comment '用户生日'

-> )character set utf8 collate utf8_general_ci engine MyIsam;

Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> create table user2(

-> id int,

-> name varchar(20) comment '用户名',

-> password varchar(32) comment '用户密码',

-> birthday date comment '用户生日' ->

)charset=utf8 collate=utf8_general_ci engine=InnoDB;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

对于字符集、校验集以及存储引擎的设置,以上两个例子中的方法都可以使用,可以直接使用空格,也可以使用 = 赋值。

二、查看表

2.1 查看表中某成员的数据

desc 表名;

关于查找到的信息,请看下图:

2.2 查看整个表中的表成员

show tables;

2.3 查看创建表时的句柄

show create table 表名 \G

\G 格式化显示,过滤掉不需要的符号

使用 \G 前:

使用 \G 后:

三、修改表 alter

3.1 重命名 rename

alter table tb_name rename to new_name;

在MySQL中对表进行重命名,输入以下语句:

mysql> alter table user1 rename to user;

Query OK, 0 rows affected (0.03 sec)

验证一下:

mysql> show tables;

+----------------------+

| Tables_in_helloworld |

+----------------------+

| user |

+----------------------+

1 row in set (0.00 sec)

可以看到 user1 真的被重命名为 user 了

3.2 新增一列 add

为了方便观察现象,先执行以下语句向表中插入两条数据:

mysql> insert into user values(1, '张三', '123456', '2010-06-18'), (2, '李四', '654321', '2014-07-12'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0

alter table tb_name add 列名 数据类型 (comment '备注 ' after 某列名);

在某列后新增新列,括号中的内容可以省略

mysql> select * from user;
+------+--------+----------+------------+--------+
| id | name | password | birthday | school |
+------+--------+----------+------------+--------+
| 1 | 张三 | 123456 | 2010-06-18 | NULL |
| 2 | 李四 | 654321 | 2014-07-12 | NULL |
+------+--------+----------+------------+--------+
2 rows in set (0.00 sec)

可以看到,表中真的在 birthday 后新增了一列 school

3.3 更改列属性 modify

这里的列属性是列的数据类型与comment

alter table tb_name modify 列名 新属性 (comment '新备注');
将 `name` varchar(20) DEFAULT NULL COMMENT '用户名', 改为 varchar(32) 且不加 comment:

mysql> alter table user modify name varchar(32);

使用 show create table user 查看:

`name` varchar(32) DEFAULT NULL,

从上面的例子可以看出来,在修改之前,因为我们在 create 时,为 name 添加了 comment ,但是修改后仅仅更改了数据类型,并没有新添加 comment ,之后在查看时,发现 comment 的内容消失了,这意味着什么呢?

不难看出, modify 的修改是以新属性覆盖旧属性

3.4 更改列名称 change

alter table tb_name change 原列名 新列名 列属性;

将表中第一列的 id 改为 ID:

mysql> alter table user change id ID int;

前后使用 show create table user; 可以发现:

`id` int DEFAULT NULL, 被修改为了 `ID` int DEFAULT NULL 。

3.5 删除某列

alter table tb_name drop 列名;

这个比较简单,就不做样例说明了。

相关推荐
偶像你挑的噻18 分钟前
3.Qt-基础布局以及事件
开发语言·数据库·qt
Dxy123931021632 分钟前
MySQL如何做读写分离架构
数据库·mysql·架构
毕设十刻2 小时前
基于Vue的考勤管理系统8n7j8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
合方圆~小文2 小时前
不同画面,三个镜头实时监控拍摄方案
数据结构·数据库·人工智能
ChrisitineTX3 小时前
凌晨突发Java并发问题:synchronized锁升级导致接口超时,排查过程全记录
java·数据库·oracle
极限实验室3 小时前
Easysearch 2.0.0 性能测试
数据库·性能优化
老华带你飞4 小时前
社团管理|基于Java社团管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
shayudiandian4 小时前
用LangChain打造你自己的智能问答系统
java·数据库·langchain
马克学长4 小时前
SSM特殊教育学校学生管理系统002k1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生管理系统·特殊教育·ssm 框架
卿雪5 小时前
Redis 线程模型:Redis为什么这么快?Redis为什么引入多线程?
java·数据库·redis·sql·mysql·缓存·golang