本章的重点内容包括:
数据操作语言概述
介绍如何操作表里的数据
数据填充背后的概念
如何从表里删除数据
如何修改表里的数据
本章介绍SQL里的数据操作语言(DML),它用于修改关系型数据库里的数据和表。
5.1 数据操作概述
数据操作语言使数据库用户能够对关系型数据库里的数据进行修改,包括用新数据填充表、更新现有表里的数据、删除表里的数据。
SQL里3个基本的DML命令是:
INSERT;
UPDATE;
DELETE。
5.2 用新数据填充表
用数据填充表就是把新数据输入到表的过程,无论是使用单个命令的手工过程,还是使用程序或其他相关软件的批处理过程。
5.2.1 把数据插入到表
INSERT语句可以把数据插入到表,它具有一些选项,其基本语法如下所示:
INSERT INTO TABLE_NAME
VALUES(‘value1’,’value2’,[NULL]);
字符、日期和时间数据的值必须以单引号包围,而数值或NULL值就不必了。
5.2.2 给表里指定列插入数据
给表中特定列插入数据的语法如下所示:
INSERT INTO TABLE_NAME(‘COLUMN1’, ‘COLUMN2’)
VALUES(‘VALUE1’,’VALUE2’);
INSERT语句里的字段列表次序不一定要与表定义中的字段次序相同,但插入值的次序要与字段列表的次序相同。
5.2.3 从另一个表插入数据
SELECT是SQL里执行查询的主要命令;FROM是查询中的一个子句,用于指定要进行查询的表的名称;WHERE子句也是查询的一部分,用于设置查询的条件。
5.2.4 插入NULL值
NULL值表示字段没有值,与空字符串是不同的。
5.3 更新现有数据
利用UPDATE命令可以修改表里的现有数据。
5.3.1 更新一列的数据
UPDATE语句最简单的形式是用于更新表里的一列数据。更新一列的语法如下所示:
update table_name
set column_name = ‘value’
[where condition];
在使用没有WHERE子句的UPDATE命令时要特别小心。如果没有使用WHERE子句设置条件,表里所有记录的相应字段都会被更新。在大多数情况下,DML命令都需要使用WHERE子句。
5.3.2 更新一条或多记录里的多个字段
SQL的一种趋势:通常使用逗号来分隔不同类型的参数。
在每个UPDATE语句里,关键字SET只能使用一次。如果需要一次更新多个字段,就要使用逗号来分隔这些字段。
5.4 从表里删除数据
DELETE命令用于从表里删除整行数据。它不能删除某一列的数据,而是删除行里全部字段的数据。
作为一条规则,DELETE语句应该问题使用WHERE子句。
5.5 小结
本章介绍了DML里的3个基本命令:INSERT、UPDATE和DELETE。显然,数据操作是SQL里的一种强大功能,让用户能够用新数据填充表、更新现有数据和删除数据。
在对数据库里的数据进行更新或删除操作时,有时忽略了WHERE子句会让我们得到深刻的教训。在需要对特定记录进行操作时,特别是进行更新和删除时,一定要使用WHERE子句在SQL语句里设置条件,否则就会影响到目标表里的全部数据,这对数据库来说可能是一场灾难。在进行数据操作时,要注意保护数据并保持谨慎。