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 列名;

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

相关推荐
保定公民24 分钟前
达梦数据库使用cp备份集恢复报错分析与解决
数据库
wd_cloud1 小时前
QT/6.7.2/Creator编译Windows64 MySQL驱动
开发语言·qt·mysql
少废话h2 小时前
Redis主从与集群搭建全指南
大数据·linux·redis·mysql
中冕—霍格沃兹软件开发测试2 小时前
测试用例库建设与管理方案
数据库·人工智能·科技·开源·测试用例·bug
The star"'2 小时前
mysql(4-7)
数据库·mysql·adb
The star"'2 小时前
mysql(1-3)
运维·mysql·云计算
jiayong233 小时前
Redis面试深度解析
数据库·redis·面试
思成不止于此3 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql
weixin_462446233 小时前
SpringBoot切换Redis的DB
数据库·spring boot·redis
哇哈哈&3 小时前
安装wxWidgets3.2.0(编译高版本erlang的时候用,不如用rpm包),而且还需要高版本的gcc++19以上,已基本舍弃
linux·数据库·python