7.数据表管理

数据库是数据的集合,而表是数据具体存储的位置,所以数据库表相关的内容是我们需要掌握的重要内容,这里我们将数据库表相关的一些操作给大家整理出来,下边我们就一起来学习下这些内容。

操作数据表

如何操作数据库表呢?这里我们给大家介绍下数据库表的创建和删除相关的内容。

创建数据表

CREATE TABLE 表名 (

列名 类型 是否为空 auto_increment,

列名 类型 DEFAULT 默认值,

PRIMARY KEY (主键列名)

) ENGINE=数据库引擎 DEFAULT CHARSET=utf8 COMMENT '描述文本';

如上所示是我们创建数据库表的语法格式,这里我们以创建用户表为例给大家做一个演示,其中用户表包括如下信息:

如下是具体执行的创建用户的情况:

显然,执行上述命令之后,在数据库中,我们就添加了一张名为user的用户表,在这个过程中有几点需要向大家说明一下:

首先,在创建数据库的时候,在 id 这一列后边我们设置了 auto_increment 这样一个关键字,它表示的是这一列的值可以自增,我们需要将列的数据类型设置为 数值类型就可以了,之后当我们向数据库表中添加数据的时候,不需要操作这一列,它也会从1开始填充到数据表中;

第二,MySQL默认表中的列是可以为空的,如果我们想要设置这个列不为空的话,只要在数据类型后边添加 NOT NULL 就好了;

第三,创建数据库表的时候我们可以指定使用的数据引擎,所谓数据库引擎是用来存储、处理、保护数据的核心服务,通过它可以控制访问权限并且快速的处理事务,满足企业中多数应用程序的要求,一般我们使用的都是 InnoDB 数据引擎;

在创建数据库方面,除了掌握上述内容外,我们还需要注意在每个数据库中,我们必须保证表名是唯一的,也就是说如果我们创建的表名在数据库中已经存在的话,那么是会出现错误的。

删除数据表

DROP TABLE 表名;

在创建表之后,如果这张表不再适合我们的系统的话,我们需要将它删除,我们可以按照如上方法来删除数据库表,因为这个比较简单的一点,所以大家可以创建一张测试表,然后执行这个命令,看下具体的效果,在这里就不给大家演示了。

修改数据表

通过刚才的介绍,大家已经掌握了创建数据库表和删除数据库表相关的操作,但是不知道大家是否想过,在添加数据库表之后,这个表的名称、表中的某个列名、某个列的数据类型可能并不合适,这时候我们需要对这个表进行修改,这时候应该怎么做呢?很简单,我们是可以通过ALTER系列的命令来达到这个目的,下边我们就来学习下这些内容。

修改表名称

要修改表名的话,我们可以使用ALTER命令来实现,也可以使用RENAME命令来实现,因为修改表名的情况还是会经常遇到的,所以在这里我们针对这两个方法分别给大家介绍一下。首先,我们需要了解的就是通过ALTER命令来修改表名称:

ALTER TABLE 原表名 RENAME TO 新表名;

这里我们以新创建的user表作为操作对象,将它的名称修改为user1,具体的执行情况如下所示:

大家可以看到,使用ALTER命令修改用户名之后,我们使用show tables命令可以看到之前名为user的数据表名称已经变成user1了,下边我们使用RENAME命令将这个数据表重新设置为user,这个命令的语法如下:

RENAME TABLE 原表名 TO 新表名;

接下来我们使用它来修改下这个数据表名称:

在这里我们唯一需要注意的地方就是不要将 原表名 和新表名的位置颠倒,相信都是可以操作成功的。

修改表结构

除了修改表的名称外,我们还可能涉及到修改表结构的操作,所谓修改表结构就是向表中添加一个数据列、删除一个数据列、修改一个数据列的名称或类型,下边我们就针对这些操作给大家做相应的介绍。

首先,我们来学习下,如何向数据库表中添加一个列,这时候我们需要使用的命令如下所示:

ALTER TABLE 表名 ADD COLUMN 列名 数据类型;

这里我们向user表中添加一个名为col1的列,数据类型是int,具体的执行情况如下:

大家可以看到,执行这个命令之后,我们的user表中已经有了一个名为col1的数据列,这就是向数据表中添加列的方法。但是这里我们存在一个问题,使用这种办法添加的列,总是排在数据表最后的位置,如果我们想要添加一个数据列,而且要求这个列必须在id这一列后边,如何实现这种操作呢?我们可以按照如下方法来实现:

ALTER TABLE 表名 ADD COLUMN 列名 数据类型 AFTER 列名;

在这条语句中,我们指定了新添加的数据列在指定的列名之后,具体实现如下:

大家可以看到新添加的这个列在id列之后,这就是我们添加数据列时候可能用到一些技巧,但是千万不要自作聪明的认为使用BEFORE就可以在某个指定列的前边添加列了,这种操作是不存在的,但是如果我们想要将新添加的列,放置到表中第一列的话,可以通过如下命令来实现:

ALTER TABLE 表名 ADD COLUMN 列名 数据类型 FIRST;

接下来,我们需要学习的是如何移除已经添加到数据库中的列,实现这个操作需要借助如下命令:

ALTER TABLE 表名 DROP COLUMN 列名;

使用这种方法,我们可以直接将数据表中的某一列移除掉,这里我们以移除col2为例给大家做如下演示,执行结果如下所示:

大家可以看到,执行命令之后,之前存在测试表中的col2这一列已经不存在了,这就是从数据表中移除列的方法。

接下来,我们给大家介绍下,如何来修改数据表中的列名或者数据类型。首先呈现给大家的是关于修改列名和列类型的方法,语法格式如下:

ALTER TABLE 表名 CHANGE 原列名 新列名 类型;

这里,我们来修改下测试表中的col1列的列名为col,数据类型为varchar(32),执行情况如下:

大家可以看到,修改之后原本名为col1,数据类型为int的数据列,修改之后列名变成col,数据类型变成varchar(32),在这里需要我们注意的是即使修改列名前后的数据类型是一样的,在这条语句末尾的 数据类型 也是不可缺少的。

除了上边修改列名和列类型的方法外,我们还可以通过命令之修改列的数据类型,具体的命令语法格式如下:

ALTER TABLE 表名 MODIFY COLUMN 列名 类型;

在实际工作中,特别是项目开始之初,很多需求并不是很明确,所以可能会经常修改数据库相关的需求,所以这里给大家介绍的和修改数据表相关的命令可能会常常用到,希望大家多多留意。

PS:关于数据表相关的操作到这里为止已经为大家介绍完了,下一次我们将为大家介绍数据表约束相关的操作。如果您感觉这些内容对您的学习或者工作有所帮助的话,欢迎转发给您周围的同事或者朋友,感谢您的支持和帮助。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181203G0EVN400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动