本篇为SQL完整笔记下半部分,上半部分见 这个链接 。
3、增删改数据
关系数据库的基本操作就是增删改查,其中SELECT语句就是在查询。
而对于增、删、改,对应的SQL语句分别是:
- INSERT:插入新记录;
- UPDATE:更新已有记录;
- DELETE:删除已有记录。
3.1 增INSERT
INSERT语句用于向数据库中插入一条或多条新的记录。其基本语法:
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);
#### 例如:
INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80);
#### 例子解释:
先列举出需要插入的字段名称,然后在VALUES子句中依次写出对应字段的值!
注:如果一个字段有默认值,那么在INSERT语句中也可以不出现。
要注意,字段顺序不必和数据库表的字段顺序一致,但值的顺序必须和字段顺序一致。也就是说,可以写INSERT INTO students (score, gender, name, class_id) …,但是对应的VALUES就得变成(80, ‘M’, ‘大牛’, 2)。
★ 可以一次性添加多条记录,只需要在VALUES子句中指定多个记录值,每个记录是由(…)包含的一组值:
INSERT INTO students (class_id, name, gender, score) VALUES
(1, '大宝', 'M', 87),
(2, '二宝', 'M', 81);
3.2 改UPDATE
UPDATE语句用于更新数据库表中的记录,其基本语法是:
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;
#### 例子
UPDATE students SET name='大牛', score=66 WHERE id=1;
#### 例子解释
更新students表id=1的记录的name和score这两个字段。
可以一次更新多条记录:
UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7;
★ 在UPDATE语句中,更新字段时可以使用表达式。例如,把所有80分以下的同学的成绩加10分:
UPDATE students SET score=score+10 WHERE score<80;
而如果WHERE条件没有匹配到任何记录,UPDATE语句不会报错,也不会有任何记录被更新。
★ 警告:UPDATE语句可以没有WHERE条件,但这很容易造成整个表的记录被更新!!追悔莫及!!所以,在执行UPDATE语句时要非常小心,最好先用SELECT语句来测试WHERE条件是否筛选出了期望的记录集,然后再用UPDATE更新。
其它补充——
3.3 删DELETE
DELETE语句用于删除数据库表中的记录,其基本语法为:
DELETE FROM <表名> WHERE ...;
#### 例子
DELETE FROM students WHERE id=1;
#### code解释
删除students表中id=1的记录。
注意到DELETE语句的WHERE条件也是用来筛选需要删除的行,所以也可以一次删除多条记录:
DELETE FROM students WHERE id>=5 AND id<=7;
# 删除5、6、7行
而如果WHERE条件没有匹配到任何记录,DELETE语句不会报错,也不会有任何记录被删除。
★ 警告: 不带WHERE条件的DELETE语句会删除整个表的数据!!删库跑路必备——
DELETE FROM students;
这时,整个表的所有记录都会被删除。所以,在执行DELETE语句时也要非常小心,最好先用SELECT语句来测试WHERE条件是否筛选出了期望的记录集,然后再用DELETE删除。
其它补充——