MySQL数据的管理(增、删、改)

在项目开发时,对数据的操作是必不可少的。
例如,插入数据、查询数据、更新数据以及删除数据。
接下来就开始讲解如何对存储在数据库中的数据进行管理。
插入记录
在对数据库进行管理时,若想要操作数据,需要先保证数据表中存在数据。MySQL 使用 INSERT 语句向数据表中添加数据,其基本语法格式如下:
MySQL数据的管理(增、删、改)
在上述语法格式中,“字段名1,字段名2,……”表示数据表中的字段名称,此处既可以是表中所有字段的名称也可以是表中指定字段的名称;“值1,值2,……”表示每个字段的值,每个值的顺序与类型必须与其对应的字段相互匹配。其中,若一次插入多条记录,各个记录值列表之间以逗号“,”分隔即可。
为了便于掌握,下面以操作内容管理系统的栏目表 cms_category 为例,演示插入记录的各种使用方法。
插入记录——为所有字段插入记录
在MySQL中,为所有字段插入记录时,有两种写法,一是在插入时带上字段列表,另一种是省略字段列表,具体SQL语句如下。
① 带字段列表
MySQL数据的管理(增、删、改)
在上述字段列表中字段名称的书写顺序可以随意更改,只要保证值列表中的数据与其相对应即可。例如,上述SQL语句也可以改成如下形式。
MySQL数据的管理(增、删、改)
② 省略字段列表
MySQL数据的管理(增、删、改)
当省略字段列表执行插入操作时,则必须严格按照数据表定义字段时的顺序,在值列表中为字段指定相应的数据。
执行以上两种SQL语句,运行结果如图所示。
MySQL数据的管理(增、删、改)
插入记录——为指定字段插入记录
在数据表 cms_category 中,id 字段是一个自动增加的整数,因此在执行时可以不对其进行插入操作,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
为了查看已添加的数据,以及 id 字段值的变化,可以使用 SELECT 语句查看数据表中的所有记录,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
在上述SQL语句中,“*”表示查询数据表中的所有字段,关于 SELECT 查询语句的相关知识将会在后面的任务中进行讲解,这里简单了解即可。SQL 语句执行后,结果如图所示。
MySQL数据的管理(增、删、改)
除了上述的方式外,在 MySQL 中,INSERT 语句还有一种语法格式,可以为表中指定的字段或者全部字段添加数据,其语法格式如下:
MySQL数据的管理(增、删、改)
在上述的语法格式中,“字段名1”、“字段名2”表示待添加数据的字段名称,“值1”、“值2”表示添加的数据。若在 SET 关键字后,为表中多个字段指定数据,每对“字段名=值”之间使用逗号(,)分隔。具体示例如下:
MySQL数据的管理(增、删、改)
插入记录——同时添加多条记录
对于需要同时添加多条记录而言,按照以上两种方式逐条添加数据非常麻烦。因此,可以使用一条INSERT语句添加多行记录,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
在上述语句中,由于省略了字段列表,因此添加数据时,需要按照表的定义顺序插入。其中,id 字段是自动增长的字段,如果使用 NULL 值,MySQL 会自动为其填入一个值。执行 SQL 语句后,使用 SELECT 查询的结果如图所示。
MySQL数据的管理(增、删、改)
修改记录
修改记录是数据库中常见的操作。例如,栏目表中的分类变更名称,就需要对其记录中的 name 字段值进行修改。MySQL 中使用 UPDATE 语句来更新表中的记录,其语法格式如下所示:
MySQL数据的管理(增、删、改)
上述语法格式中,“字段名1”,“字段名2”用于指定待更新的字段名称,“值1”,“值2”用于设置字段更新后的新值;“WHERE条件表达式”是可选的,用于指定哪些记录需要被更新。否则,数据表中的所有记录都将被更新。
下面以操作内容管理系统的栏目数据表 cms_category 为例,演示有条件更新记录和无条件更新记录的使用。
修改记录——有条件更新数据
有条件更新记录,就是利用 WHERE 子句来指定更新表中的某一条或者某几条记录。例如,修改表 cms_category 中 id=7 的记录,将其 name 字段的值更改为“生活”,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
从 SELECT 查询结果可以看出,利用 UPDATE 修改记录成功,如图所示。需要注意的是,如果表中有多条记录满足WHERE子句中的条件表达式,则满足条件的记录都会发生更新。
MySQL数据的管理(增、删、改)
修改记录——无条件更新数据
在执行 UPDATE 语句时,若没有使用 WHERE 子句,则会更新表中所有记录的指定字段。例如,修改表 cms_category 的排序字段 sort,将表中所有记录的字段值都更新为 50,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
从 SELECT 查询结果可以看出,利用 UPDATE 修改所有记录成功,如图所示。
MySQL数据的管理(增、删、改)
删除记录
在数据库中,若有些数据已经失去意义或者错误时,就需要将它们删除。此时,可以使用 MySQL 中提供的 DELETE 语句来删除表中的记录,其语法格式如下所示:
MySQL数据的管理(增、删、改)
在上面的语法格式中,“表名”指的是待执行删除操作的表,WHERE 子句为可选参数,用于指定删除的条件,满足条件的记录才会被删除。
下面以操作内容管理系统的栏目数据表 cms_category 为例,演示删除部分数据和删除全部数据的使用。
删除记录——删除部分数据
删除部分数据是指根据 WHERE 子句指定的判断条件,删除表中符合要求的一条或者某几条记录。例如,删除 cms_category 表中 pid=1 的记录,具体 SQL 语句如下:
MySQL数据的管理(增、删、改)
从执行结果可以看出,成功的删除了 5 条记录,利用 SELECT 语句查看执行后的结果如图所示。
MySQL数据的管理(增、删、改)
删除记录——删除全部数据
删除全部数据就是在 MySQL 数据库中执行 DELETE 操作时,不设置WHERE 子句判断条件。例如,删除 cms_category 表中所有的记录,具体SQL 语句如下:
MySQL数据的管理(增、删、改)
从SELECT 查询结果可以看到记录为空,说明表中所有的记录都被成功删除,如图所示。需要注意的是,在实际开发中要慎重执行删除全部数据的操作,因为数据一旦被删除,就不可被恢复。
MySQL数据的管理(增、删、改)
除此之外,在 MySQL 数据库中,还有一种方式可以用来删除表中所有的记录,这种方式需要用到一个关键字 TRUNCATE,其语法格式如下:
MySQL数据的管理(增、删、改)
示例:通过“表名”指定要清空的表,具体如下。
MySQL数据的管理(增、删、改)
对于同样用于删除数据表的操作,TRUNCATE 关键字与 DELETE 语句也有一定的区别,具体如下:
1.DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句。
2.DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分记录,而TRUNCATE语句只能用于清空表中的所有记录。
3.使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重新由1开始,而使用DELETE语句删除表中的记录时,不影响自动增长值。