MySQL 基础语法,新增、修改、删除数据相关。
0. 数据表
接下来的示例会使用一个 world 数据表,表中存储了世界上的所有国家的相关信息。
name:国家名称
continent:洲份
area:面积
population:人口
gdp:国内生产总值
1. INSERT 数据插入语句
SELECT 语句是最常用的 SQL 语句,除此之外的就是 INSERT 语句了。INSERT 语句是用来插入(或添加)行到数据库表的。
// 使用 INSERT 语句添加数据到数据库表中 |
VALUES 后面跟随的是需要插入的列数据,需要包含所有列的数据(不希望添加的列可以添加 NULL 值),次序与定义表时的次序一致。
由于这种语法高度依赖表中列的定义次序,并且表结构改变时不能保证定义次序不发生改变。所以 这种语法是不安全的,应该避免使用这种语法。
除此之外,还有一种更安全的 INSERT 语法。
// 使用 INSERT 语句添加数据到数据库表中 |
与前一种语法相比,在表名后面明确说明了列的次序,VALUES 后面的值将根据给出的次序进行填充。除此之外,不希望添加的列可以直接省略。
INSERT 语句插入多行
如果希望同时添加多行数据,可以使用多条 INSERT 语句一次提交。
// 使用 INSERT 添加多行数据 |
也可以将多条 INSERT 语句组合起来,在 VALUES 后使用逗号分隔多行的数据。
// 使用 INSERT 添加多行数据 |
对比两种语法,使用单条 INSERT 语句处理多个插入 比使用多条 INSERT 语句 更快。
INSERT SELECT 插入查询出的数据
除了可以插入给出的数据,还可以将 SELECT 查询出来的结果插入表。这由一条 INSERT 语句和 SELECT 语句组成。
// 使用 INSERT SELECT 插入数据 |
两个表的字段可以不相同 ,因为 MySQL 是根据给出的列次序填充数据的。
要注意的是, 如果主键值重复会导致后续的 INSERT 操作失败。
2. UPDATE 更新数据语句
为了修改(更新)表中的数据,我们还需要使用到 UPDATE 语句。
// 使用 UPDATE 更新数据 |
使用 SET 指定需要修改的列名与修改值,多个修改值使用逗号分隔。
每一条 UPDATE 语句都应该使用 WHERE 子句告诉 MySQL 更新哪一行。 如果省略 WHERE 子句将会更新表中所有的行。
IGNORE 关键字
如果 UPDATE 在更新一行或多行数据时出现了错误,整条 UPDATE 语句都会被取消。使用 IGNORE 关键字,即使出现了错误也会继续更新。
UPDATE IGNORE world ... |
3. DELETE 删除数据语句
为了删除表中的数据,我们还需要使用到 DELETE 语句。
// 使用 DELETE 删除数据 |
同样的, 如果省略 WHERE 子句,DELETE 将删除表中的所有行。 如果确实想清空表的数据,还可以使用 TRUNCATE TABLE 语句,该语句比 DELETE 更快(TRUNCATE TABLE 会先删除表,再重建表)。