sql_基础_修改数据

1,插入数据:INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

INSERT INTO students (class_id, name, gender, score) VALUES (2, ‘大牛‘, ‘M‘, 80);

注意到我们并没有列出id字段,也没有列出id字段对应的值,这是因为id字段是一个自增主键,它的值可以由数据库自己推算出来。此外,如果一个字段有默认值,那么在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);

2,更新数据:

  update基本语法:update 表名 SET 字段1=值,字段2=值2,....WHERE

我们想更新studentsid=1的记录的namescore这两个字段,先写出UPDATE students SET name=‘大牛‘, score=66,然后在WHERE子句中写出需要更新的行的筛选条件id=1

注意到UPDATE语句的WHERE条件和SELECT语句的WHERE条件其实是一样的,因此完全可以一次更新多条记录:

更新id=5,6,7的记录:UPDATE students SET name=‘小牛‘, score=77 WHERE id>=5 AND id<=7;

UPDATE语句中,更新字段时可以使用表达式。例如,把所有80分以下的同学的成绩加10分:

-- 更新score<80的记录:UPDATE students SET score=score+10 WHERE score<80;

如果WHERE条件没有匹配到任何记录,UPDATE语句不会报错,也不会有任何记录被更新。例如:

-- 更新id=999的记录 UPDATE students SET score=100 WHERE id=999;

update 可以没有条件 UPDATE students SET score=60,整个表都都会更新;

使用UPDATE,我们就可以一次更新表中的一条或多条记录。

3,DELETE:删除:

语法:DELETE FROM 表名 WHERE....

-- 删除id=1的记录

DELETE FROM students WHERE id=1;

 DELETE语句的WHERE条件也是用来筛选需要删除的行,因此和UPDATE类似,DELETE语句也可以一次删除多条记录:

-- 删除id=5,6,7的记录  DELETE FROM students WHERE id>=5 AND id<=7;

 如果WHERE条件没有匹配到任何记录,DELETE语句不会报错,也不会有任何记录被删除。例如:

-- 删除id=999的记录,DELETE FROM students WHERE id=999;

DELETE FROM students;这时,整个表记录都会被删除。

在使用MySQL这类真正的关系数据库时,DELETE语句也会返回删除的行数以及WHERE条件匹配的行数。

例如,分别执行删除id=1id=999的记录:

mysql> DELETE FROM students WHERE id=1; Query OK, 1 row affected (0.01 sec) mysql> DELETE FROM students WHERE id=999; Query OK, 0 rows affected (0.01 sec)
使用DELETE,我们就可以一次删除表中的一条或多条记录。

  

 

相关文章