MySQL 增删查改基础版

插入

插入全部列

插入就是增加的意思。先创建一个学生表:

 create table student(id int,name varchar(50),age int,score double(3,1));

然后插入数据,insert into 表名 values(表里面的值); 。四个数据对应的是:班级,名字,年龄。成绩:

insert into student values (1, 'zhangsan', 19, 98.5);

这里先介绍一个简单查询全表的语句:

select * from student;

运行结果如下:
在这里插入图片描述

同时插入多条记录

插入的时候,一个括号代表一条记录。多个括号就是同时插入多条记录。代码如下:

insert into student values (2, '李四', 20, 98.0),(3, '王五', 21, 97);

在这里插入图片描述

插入部分列

在插入部分列的时候,在表名后面加个括号,里面写上要插入的列就好,然后在 values 后面的括号内填入要插入列的数值就好。未插入的列的值就是 NULL 。代码如下:

insert into student (id,name) values (10,'Lockey');

运行结果如下:
在这里插入图片描述

查找

查询是数据库当中用的最多的一种操作。也是考点最多的方式。

全列查找

全列查找就是把一个表的所有的列,所有的行都查询出来。select * from 表名; * 是通配符,表示一个表的所有列。代码如下:

select * from student;

运行结果如下:
在这里插入图片描述
不过这个操作也是很危险的操作。如果数据量很大的话,很容易把服务器挤爆。

查找部分列

在查找的时候,也可以只查找部分列。select 列名,列名 from 表名; 先创建一个包含多个列的表:

create table exam_result(id int, name varchar(50),chinese decimal(3,1),math decimal(3,1),english decimal(3,1));

然后插入多个数据:

INSERT INTO exam_result (id,name, chinese, math, english) VALUES
                                                              (1,'qqq', 67, 98, 56),
                                                              (2,'www', 87.5, 78, 77),
                                                              (3,'eee', 88, 98.5, 90),
                                                              (4,'rrr', 82, 84, 67),
                                                              (5,'ttt', 55.5, 85, 45),
                                                              (6,'yyy', 70, 73, 78.5),
                                                              (7,'uuu', 75, 65, 30);

现在只在表中查询 名字 和 语文成绩 ,代码如下:

select name,chinese from exam_result;

运行结果如下:
在这里插入图片描述
这里通过查询就筛选出了由 名字 和 语文成绩 组成的表。

查询的时候进行运算操作

进行运算就是查询的时候,同时进行一些运算操作(列和列之间)。例如:期望查询结果中的语文成绩比实际多 10 分。代码如下:

select name,chinese + 10 from exam_result;

运行结果如下:
在这里插入图片描述
要注意的是,这里的查询结果都是临时表。并不会对原始数据作出修改。

查询每个学生的总分

查询总分的时候,把所以成绩加起来就好,代码如下:

select name,chinese + math + english from exam_result;

这里是把语文,数学,英语的成绩加起来。运行结果如下
在这里插入图片描述

给查询的临时表起别名

在列名之后通过 as 就可以给查询的临时表起别名了。select 列名 as 别名 from 表名; 代码如下:

select name,chinese + math + english as total from exam_result;

运行结果如下:
在这里插入图片描述

针对查询结果去重

使用 distinct 针对查询的结果,将相同的结果去掉。代码如下:

select distinct math from exam_result;

运行结果如下:
在这里插入图片描述

多个列去重

如果要针对多个列进行去重,就得这多个列的值都相同才能去重:

select distinct math,english from exam_result;

运行结果如下:
在这里插入图片描述

按照总成绩排序

在排序的时候,通过 order by 来进行排序。select 列名 from 表名 order by 列名 asc/desc; desc 代表升序和降序。升序排序可以默认不写代码如下:

select name,chinese + math + english from exam_result order  by chinese + math + english;

运行结果如下:
在这里插入图片描述

按照别名来排序

将总成绩换为别名,然后进行排序。代码如下:

select name,chinese + math + english as total from exam_result order  by total;

运行结果如下:
在这里插入图片描述
如果数据库当中是带有 NULL 值的,按照升序是最前面,按照降序是最后面,也就是说:空值是最小值。先插入一个带有空值的数据:

insert into exam_result values (8,'酷酷酷',null ,null ,null );

带有空值的运行结果如下:
在这里插入图片描述

对查询结果按照某一列进行排序

对查询的结果按照数学成绩进行排序,代码如下:

select * from exam_result order by math asc;

运行结果如下:
在这里插入图片描述
结果就是按照数学成绩进行升序排序了。

根据多个列进行排序

在排序的时候,如果两个值相同的话,那么就可以再指定一个列来进行排序。这里使用数学和语文举例。当数学成绩一样的时候,就根据语文成绩进行排序。代码如下:

select name,math,chinese from exam_result order by math,chinese;

运行结果如下:
在这里插入图片描述

条件查询

条件查询的时候,主要用到的是 where 。在 where 后面加一些条件来进行查询。

查询某一列小于某个值

要查询某一列小于某个值的数据的时候,在 where 后面加条件就好。select 列名,列名 from 表名 where 某一列 < 60; 代码如下:

select name,english from exam_result where english < 60;

运行结果如下:
在这里插入图片描述

列和列之间的比较

在比较的时候,通过 where 就可以。代码如下:

select name,english,chinese from exam_result where chinese > english;

要注意的是:前面的 name 和 english 和 chinese 只是查出来的表的显示内容。并不是条件。运行结果如下:
在这里插入图片描述

并且条件查询

在查询的时候,通过 and 来连接多个条件进行查询,and 是并且的意思。代码如下:

select name,chinese,english from exam_result where chinese > 80 and english > 80;

这里查询的是 语文和英语 都大于 80 的学生。运行结果如下:
在这里插入图片描述

或者条件查询

通过 or 来完成对或者条件的查询,代码如下:

select name,chinese,english from exam_result where chinese > 80 or english > 80;

这里查询的是 语文或者英语 负数大于 80 的学生。运行结果如下:
在这里插入图片描述

and 和 or 的优先级

在 SQL 当中 and 的优先级比 or 的优先级大,如果想打破优先级,就需要加括号。比如下面的代码:

select * from exam_result where (chinese > 80 or math > 70) and english > 70;

这里就是先比较括号里面的,然后再 and 比较。运行结果如下:
在这里插入图片描述

between 方法

between 就是介于两者之间的表示,要注意的是 between 两边都是闭区间。代码如下:

select * from exam_result where chinese between 80 and 90;

就是选出语文成绩 大于等于 80,小于等于 90 的学生。运行结果如下:
在这里插入图片描述

in 方法

in 方法就是给定几个值,如果有满足这些数据的时候,就输出。代码如下:

select * from exam_result where math in (58,59,98,99);

这里筛选的就是数学成绩在:58,58,98,99 当中。运行结果如下:
在这里插入图片描述

模糊匹配 like

模糊匹配就是有一些关键字一样就可以查询出来。like 查询的时候要搭配通配符来使用

% 通配符

通过 % 通配符就可以进行模糊查询,% 可以代表任意字符,包含 0 个字符。代码如下:

select * from exam_result where name like 'q%';

这里查询出来的是以 q 开头的名字。运行结果如下:
在这里插入图片描述

_ 下划线

下划线通配符,一个下划线只能匹配到一个字符。代码如下:

select * from exam_result where name like 'q__';

这里查询的是以 q 开头的三个符号。运行结果如下:
在这里插入图片描述

查找 NULL 成绩

查找 NULL 成绩的时候,有两种方法:

  1. 通过 <=> 来判断是不是
  2. 通过 is null 来判断是不是

<=>

通过 <=> 来判断,代码如下:

select * from exam_result where chinese <=> null;

运行结果如下:
在这里插入图片描述

is null

is null 也是判断 空 的一中方法,代码如下:

select * from exam_result where chinese is null;

运行结果如下:
在这里插入图片描述

分页查询 limit

分页查询当中,使用 limit 来进行分页。代码如下:

select * from exam_result limit 3;

运行结果如下:
在这里插入图片描述
这里的 limit 限制是 3,也就是一页显示 3 条记录。

offset

offset 是配合 limit 来使用的,就是从 offset 这个位置去查找。代码如下:

select * from exam_result limit 3 offset 3;

运行结果如下:
在这里插入图片描述

搭配条件使用

limit 可以搭配 条件,以及 order by 等操作来组合使用。代码如下:

select name,chinese + math + english as total from exam_result order  by total desc limit 3;

运行结果如下:
在这里插入图片描述

修改

修改主要是使用 update 来进行的。修改: update 表名 set 列名 = 值,列名 = 值 where 条件; where 后面的条件,是针对哪些进行修改。符合 where 条件的就会修改,不符合就不修改。如果 where 省略了,就是修改所有记录。在修改的时候会把原始数据修改。

使用 where 来修改

通过 where 后面加条件就可以完成修改。代码如下:

update exam_result set math = 98 where name = 'eee';

运行结果如下:
在这里插入图片描述

一次修改多个数值

在修改的时候可以一次修改多个数值,代码如下:

update exam_result set math = 60, chinese = 70 where name = 'uuu';

运行结果如下:
在这里插入图片描述

对前几个序列进行修改

在对前几个序列进行修改的时候,可以通过 order by 来进行排序,然后再通过 limit 来限制前几个序列,然后修改就好了。代码如下:

update exam_result set math = math + 10 order by chinese + math + english limit 3;

这里是对总成绩倒数前三的人的数学成绩加上 10 分。运行结果如下:
在这里插入图片描述

修改全部数据

修改全部数据的时候,只要不加 where 就可以了。例如:把语文成绩全部修改为原来的一半。代码如下:

update exam_result set chinese = chinese / 2;

运行结果如下:
在这里插入图片描述

删除

删除操作的时候,使用的是 delete 关键字。delete from 表名 where 条件;

使用 where 删除

在 where 后面加上条件就好了。代码如下:

delete from exam_result where id = 6;

这里就是删除 id 为 6 的信息。运行结果如下:
在这里插入图片描述

删掉所有数据

删掉所有数据的时候,就不用加 where 了。要注意删除的时候一定写准条件,不然写错就可能删掉很多数据。代码如下:

delete from exam_result;

运行结果如下:
在这里插入图片描述

  • 26
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lockey-s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值