【MySQL数据库基础】数据的增、删、改

上一篇文章,我们梳理了用于操纵结构的DDL语句。这一篇,就要开始操作数据了。对于SQL语言来说,增删改查永远是操作数据逃不开的四大天王。而其中最有技术含量的,当要数查询数据了,那可真是十八般武艺样样俱全呐。所以,在这篇文章中,我们暂且不涉及过多的查询内容,将精力更多的放在基础的增删改上。毕竟,没有数据让我们查,空有一身查数据的本领也是无用武之地的对吧。😃

在这里插入图片描述

对了,前面两篇:

以及,本节的思维导图:

在这里插入图片描述


首先,让我们打开数据库软件,打开数据库找到后文演示所用的学生表

在这里插入图片描述

查询所有数据

在开始介绍增删改之前,有必要先了解一个语句用以查询表中的所有数据,这样,我们才可以在增删改数据之后及时的查看结果。

这条语句就是SELECT * FROM 表名;

其中,select from表示查询,*表示通配也就是所有的字段都要。
在这里插入图片描述
现在可以将*换做具体的字段名称,这样查出来的表就只有对应的字段了。
在这里插入图片描述

插入数据

向表中插入一条记录,需要使用INSERT INTO语句,
它的具体格式如下:

INSERT INTO 表名(字段1,字段2...) VALUE(1,2,...);

在表名后面,我们需要指明要插入的这条记录有哪些字段的值,在value关键字后面的括号中,按照表名给出的字段顺序填入对应值即可。
例如,插入一条学生记录:

姓名:小明
班级:2
年级:1

由于id是自增主键,所以我们可以不插入主键,编写SQL语句

INSERT INTO student(name,student_class,grade) VALUE('小明',2,1);

放入MySQL执行:
在这里插入图片描述
执行成功!对于insert语句,需要注意:

  • 一定不要将逗号和分号写错了!!!
  • 一定将插入数据的数量及格式和字段对应!!!

省略字段

可以在选择表的时候不选择字段。这意味着,你需要插入所有字段,并且需要按照定义的顺序!

例如,省略字段,再插入一个学生:

id:2
姓名:小刚
班级:13
年级:3

编写SQL

INSERT INTO student VALUE(2,'小刚',13,3);

放入数据库运行之
在这里插入图片描述

插入多条数据

一次性插入多条记录也是可以的,只需要将value换成复数形态values即可,后面每一个括号都是一条数据,括号之间使用逗号隔开;

通式为:INSERT INTO 表名(字段1,字段2...) VALUES(A值1,A值2...),(B值1,B值2....)....;

例如,向数据库中插入三个同学:

-------------------------同学1------------------
姓名:小红
班级:4
年级:2
-------------------------同学2------------------
姓名:小丽
班级:4
年级:2
-------------------------同学3-----------------
姓名:李雷
班级:5
年级:1

编写SQL语句:

INSERT INTO student(name,student_class,grade) 
VALUES
('小红',4,2),
('小丽',4,2),
('李雷',5,1);

运行之:
在这里插入图片描述
另外,使用values不一定必须插入多条数据,仅插入单条数据是可以的。所以,只使用values就可以覆盖value的功能


更新数据

更新数据,使用的关键字是update

说到这里,我觉得有必要强调:

  • 是update,不是updata!!!
  • 是update,不是updata!!!
  • 是update,不是updata!!!

好了,下面我们来看这条语句的完整版格式:UPDATE 表名 SET 字段1 = 值1,字段2 = 值2...;

整体来看,就是更新 表 设置 字段=值....;

例如:将同学们的年级改成1,班级设置为3
编写SQL:

UPDATE student SET grade = 1,student_class = 3;

运行之:
在这里插入图片描述

where字句限制

上面的语句让我们实现了对student_classgrade两个字段的更改,但是一个显而易见的问题就是,他修改了所有记录!!

如果只需要其中的某一条或者某几条,就需要使用到where字句进行限制,这相当于在更改的语句上加上了条件判断,只有当条件符合,记录才被更改。

例如,将李雷的年级改成5:
编写SQL

UPDATE student SET grade = 5 WHERE name = '李雷';

执行之
在这里插入图片描述

当然,这个也允许与或运算,分别是AND OR

使用AND

例如,将三班的名字叫小红的人年级改成3
编写SQL

UPDATE student SET grade = 3 WHERE student_class = 3 AND name = '小红';

执行之:
在这里插入图片描述

使用OR

例如,将小明和小刚的班级改为4
编写SQL:

UPDATE student SET student_class = 4 WHERE name = '小刚' OR name = '小明';

运行之
在这里插入图片描述

使用IN

刚刚的使用or语句实现了多个记录的查询,但是如果需要更改的类过于多,使用or就会很不方便。这时候,使用in在集合中进行选择就会是不出错的方式。
它的使用方式为IN (值1,值2....)

例如,将小丽,小红的班级改成5
编写SQL

UPDATE student SET student_class = 5 WHERE name IN ('小丽','小红');

运行之
在这里插入图片描述


删除数据

删除数据主要使用的是delete from语句,它的完整形式为:DELETE FROM 表名 WHERE 限制

如果不加限制,MySQL将删除所有记录!!!(删库跑路的节奏)

例如,删除小明同学
编写SQL:

DELETE FROM student WHERE name = '小明';

运行之;
在这里插入图片描述

另外还有另一种删除所有数据的语句,叫做truncate 表名;

DELETE FROM 表名;不同的是,delete语句仅是删除记录,而truncate则是删除整张表,之后再重新造一张一模一样的表。
这也就是的被truncate删除的数据不能够再恢复


参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值