MySQL基础操作总结_CRUD
创始人
2024-01-25 02:40:03
0

文章目录

1.新增 insert

1.1 单行数据+全列插入

1.2 多行数据+指定列插入

2.查询 select

2.1 全列查询

2.2 指定列查询

2.3 查询字段包含表达式

2.4 别名

2.5 去重:distinct

2.6 排序:order by 

2.7 条件查询 

2.7.1 where条件查询

2.7.2 and与or查询

2.7.3 范围查询

2.7.4 模糊查询 like

2.7.5  NULL 的查询:IS [NOT] NULL

2.8 分页查询 : limit

3.修改 update

4.删除 delete


CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

其中查询操作是应用场景最多的,需要熟练使用,下面对四个操作演示一下用法

1.新增 insert

语法

insert [into] table_name values (value_list)...
value_list: value,......

先创建一张学生表

 insert into student1 values (1001,20110,'张三','123456@qq.com');

1.1 单行数据+全列插入

插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致

 insert into student1 values (1001,20110,'张三','123456@qq.com');insert into student1 values (1002,20111,'李四','2123456@qq.com');

1.2 多行数据+指定列插入

插入两条记录,value_list 数量必须和指定列数量及顺序一致

insert into student1 (id,sn,name,qq_emial) values (1003,20112,'王五','323456@qq.com'),(1004,20113,'赵六','42345@qq.com');

2.查询 select

在工作的场景中,查询操作出现的概率是四个操作中最大的,比起其它三个操作也相对复杂

语法

select  [distinct]{* | colunm [,ccolumn] ...]}[from table_name][where ...][order by column [asc|desc],...]limit...

创建一个考试成绩表

 

 插入一些数据

insert into exam_result(id,name,chinese,math,english) values(71250,'张三',95.5,82.2,67.5),(69753,'李四',88,86,89),(12254,'王五',87,88,98),    (61256,'张六',73,85,65),(30258,'孙七',25,88,65),(11260,'柯八',82,76,45);

2.1 全列查询

一般不建议使用 *进行全列查询,原因如下:

1.全列查询是一个危险的操作,当数据库的数据很多时,全列查询意味着需要传输的数据量也很大

2.可能影响到索引的使用

 select*from exam_result;

2.2 指定列查询

指定列的查询不用按照表定义的顺序来

select name,chinese from exam_result;

 

2.3 查询字段包含表达式

表达式不包含字段时,就像上面介绍的指定列查询

包含一个字段的查询

select name,chinese+10 from exam_result;

表达式:chinese+10  

包含多个字段的表达式查询

 select name,chinese+math from exam_result;

2.4 别名

别名是指为查询结果中的列指定别名,表示返回结果集,以该别名作为列名

语法

select column [as] alias_name[] from table_name;

as 后加别名,也可以省略

查询每个同学的总成绩:

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

 省略as效果相同

2.5 去重:distinct

使用DISTINCT关键字对某列数据进行去重

english 列有重复数据,使用DISTINCT关键字去重

select distinct english from exam_result;

2.6 排序:order by 

 asc 为升序

desc 为降序

默认为asc

语法

select ... from table ....order by column [asc|desc];

注意:

1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

3. 使用表达式及别名排序

查询同学及总分,由高到低

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

4. 可以对多个字段进行排序,排序优先级随书写顺序

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

2.7 条件查询 

比较运算符:

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 ANDa1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符:

和逻辑关系运算符相同,and和&&,or和||,not和非

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT

条件为 TRUE(1),结果为 FALSE(0)

2.7.1 where条件查询

查询总分在 200 分以下的同学

注意:where条件可以用于表达式,不能使用别名

 select name,chinese+math+english 总分 from exam_result where chinese + math + english < 200;

如果加别名

MySQL不允许在WHERE子句中使用列别名,因为

计算WHERE子句时,可能尚未确定列值

2.7.2 and与or查询

注意:AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

查询语文成绩大于80分,且英语成绩大于80分的同学

select * from exam_result where chinese > 80 and english > 80;

查询语文成绩大于80分,或英语成绩大于80分的同学

select * from exam_result where chinese > 80 or english > 80;

我们观察一下and和or 的优先级

不加括号时:

先执行 english > 80 and math > 80,返回结果后再执行or再返回结果,为了避免不必要的麻烦,我们可以在使用时加上括号

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

 加括号时:

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

2.7.3 范围查询

1.between...and...

也可以用and 完成查询操作

查询语文成绩在 [80, 90] 分的同学及语文成绩

 select name,chinese from exam_result where chinese between 80 and 90;

2.in

使用or 也能实现

查询数学成绩是 76 或者 88 或者 82 或者 99 分的同学及数学成绩

 select name,math from exam_result where math in(76,88,82,99);

2.7.4 模糊查询 like

% 匹配任意多个(包括 0 个)字符

select name from exam_result where name like '张%';

_ 匹配严格的一个任意字符

select name from exam_result where name like '王_';

2.7.5  NULL 的查询:IS [NOT] NULL

查询 qq_mail 已知的同学姓名

 select name,qq_emial from student1 where qq_emial is not null;

 查询 qq_mail 未知的同学姓名

 select name,qq_emial from student1 where qq_emial is null;

2.8 分页查询 : limit

从0开始筛选n条结果

... ... limit n

从s开始筛选n条结果

... ... limit s,n

 

 比第二种方法更明确

从s开始筛选n条结果

... ... limit n offset s

 

我们对成绩表按id分页,分别显示3页

第一页

 select id,name,math,english,chinese from exam_result order by id limit 3 offset 0;

第二页

select id,name,math,english,chinese from exam_result order by id limit 3 offset 3;

 第三页

select id,name,math,english,chinese from exam_result order by id limit 3 offset 6;

如果没有结果会显示空,如果有结果但是不满足要查询的数量,也会显示不满足查询数量的数据,也就是如果只剩下两条数据,分页后查询的是三条,最后一页也会显示剩下的两条数据

3.修改 update

语法

update table_name set column = ......

将张三同学的数学成绩变更为 80 分

update exam_result set math = 80 where name = '张三';

将总成绩倒数前三的 3 位同学的英语成绩加上 30 分

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

4.删除 delete

涉及删除了,肯定又是一个比较危险的操作

语法

delete from tbale _name ... ...

删除张三同学的考试成绩

delete from exam_result where name = '张三';

删除整张表

delete from table_name; 

 

 

相关内容

热门资讯

经典好签名 经典好签名  1、点一盏灯,思一段情,等待一丝希望。  2、我不需要 你有多完美 我只需要你 让我感...
独一无二的网名 独一无二的网名  网名的特征  以下特征为多数情况,并不代表全部。  象征性,网名和自己的名字一样,...
全网最火微信名 全网最火微信名  微信名字的类型有很多,有温柔的、搞笑的、霸气的、可爱的等等,所以我们在选择的时候可...
独一无二的微信名俩字 独一无二的微信名俩字  网名一般是指网友在网络世界里的一个虚拟名称。以下是小编为大家收集的.独一无二...
网名符号大全花样符号 网名符号大全花样符号  网名符号大全花样符号(精选300个)  网名指在网上使用的名字。由于网络是一...
情人节爱情个性签名 情人节爱情个性签名5篇  随着社交网络的迅猛发展,越来越多人钟情于在社交平台上不定时地更换个性签名,...
禅舞不二歌词 禅舞不二歌词逃生门怎么上了锁有个人还困在里头被下了魔咒住进了一座迷宫叫想不通hello 真的没那么严...
奥兰多·布鲁姆 奥兰多·布鲁姆奥兰多·布鲁姆奥兰多·布鲁姆,英国著名影星,因出演《魔戒三部曲》中的精灵弓箭手莱格拉斯...
劲舞团游戏名 劲舞团游戏名  一、网名的特征  象征性,网名和自己的名字一样,也是身份的象征  随意性,即可更改。...
两个字的网名(精选500个) 两个字的网名(精选500个)  一、网名的介绍  网名指在网上使用的名字。由于网络它是一个虚拟里的'...
qq时尚个性签名 qq时尚个性签名  流行元素每天都在变,在多变的时代,我们如何才能成为一个永远时尚的人呢?下面是瑞文...
服装店名字(精选800个) 服装店名字(精选800个)  一、什么是名字  名字是指人或者产品、物体的名称,姓名有广义与狭义之分...
个性繁体字签名 个性繁体字签名大全  1、如果有一天我變了,請你記住,有一句話叫做拜你所賜。  2、藍顔,就是把你當...
幸福宣言个性签名 幸福宣言个性签名(精选140句)  随着网络社交的悄悄演进,越来越多人钟情于在社交平台上不定时地更换...
分手qq个性签名 分手qq个性签名大全  1、演绎爱情的小丑,终究逃不过分手的结局  2、分离或许是最好的选择,这样就...
丁村民俗博物馆 丁村民俗博物馆丁村民俗博物馆丁村民俗博物馆(丁村民俗博物馆)丁村民俗博物馆,位于山西临汾。明清两代的...
帽峰森林公园 帽峰森林公园地理区位  帽峰山森林公园始建于1997年,2001年经省林业局批准为省级森林公园。公园...
漂亮有个性的qq签名 漂亮有个性的qq签名  1、一朝春去红颜老,花落人亡两不知。  2、我真的没有能力留住每一个我不想失...
罕见好听的古风女名500例 罕见好听的古风女名500例  什么是名字  名字是指人或者产品、物体的名称,姓名有广义与狭义之分,还...
单身说说签名 单身说说签名大全60句精选  没有人陪伴,和勇敢无关。只是刚好在人生最自由的时光。没有人陪伴也可以习...