前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】数据库的操作(下)

【MySQL】数据库的操作(下)

原创
作者头像
Lin_Alpaca
发布2023-09-13 22:25:14
1840
发布2023-09-13 22:25:14
举报
文章被收录于专栏:MySQL.MySQL.

目录

创建表

查看列结构

查看表属性

修改表的列

修改表名称

修改列名称

删除表

创建表

🎃创建完数据库后,还要创建表才能插入对应的数据,而表的创建还需要涉及数据库的数据结构,会进行一下简单的介绍。

代码语言:javascript
复制
create table (
    ...    //eg. name varchar(20) comment '用户名',
    ...
) charset = ... collate = ... engine = ...;

🎃这里我们在数据库中创建了一个表,而列的数据类型分别为字符串和整型。

🎃其中 comment 起到类似于注释的作用,之后可以查询到。

🎃创建数据库时,我们可以指定字符集和校验集,创建表时同样也可以指定。当创建数据库时未指定字符集和校验集时,则使用系统的默认选项,而创建表时若未指定,则默认使用当前数据库设定的字符集和校验集。

查看列结构

🎃创建了一个表,是否我们需要查看一下其中的列结构,验证一下创建的表满足我们的预期。

代码语言:javascript
复制
desc 表名

🎃我们可以看到各列的信息:

  • Field: 该列的名称
  • Type: 该列的数据类型
  • Null: 该列是否能为空
  • Key: 该列是否为特殊键
  • Default: 该列的默认值

查看表属性

🎃上面的操作是查看列结构,而关于表属性则需要用下面这个操作。

代码语言:javascript
复制
show create table 表名

🎃而我们在创建表使用的 comment 在这里便可以查询到,不仅如此还能查询到该表使用的存储引擎和字符集、校验集。

修改表的列

代码语言:javascript
复制
alter table 表名 add (datatype ... comment ...)  //添加列

alter table 表名 modify 列名 ...  (与 add 相同)      //修改列

alter table 表名 drop 列名            //删除列

🎃当表中的列无法满足我们的使用需求时,便可以使用列修改操作进行修改。

🎃如下,我们对一列进行了增加修改和删除操作,可以跟着流程体会一下。

代码语言:javascript
复制
mysql> alter table t1 add hobby varchar(20);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
| hobby | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table t1 modify hobby int ;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
| hobby | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table t1 drop hobby;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

[注意]: 修改成员属性/大小时,会覆盖掉原来的comment,若不新写comment,则该列将不会有注释。

修改表名称

代码语言:javascript
复制
alter table 旧名称 rename to 新名称

🎃修改表名称,本质上还是修改表,因此开头的关键字还是使用 alter,而后使用 rename to 进行名称的修改。

修改列名称

🎃有修改表名称自然也有修改列的名称,第二个关键字替换成 change,而新字段需要完整定义,因此要再写一遍要设定的数据类型。

代码语言:javascript
复制
alter table 表名 change 旧名称 新名称 ...(数据类型)
代码语言:javascript
复制
mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table t1 change id id1 int;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| id1   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除表

🎃删除表十分简单,使用 drop 关键字并指定表明即可。

代码语言:javascript
复制
drop table 表名

我正在参与 腾讯云开发者社区数据库专题有奖征文

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建表
  • 查看列结构
  • 查看表属性
  • 修改表的列
  • 修改表名称
  • 修改列名称
  • 删除表
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档