mysql增删查改

Posted 自由乐土

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql增删查改相关的知识,希望对你有一定的参考价值。

mysql的CURD基础操作

作为一名学习MySQL的小白用户,你想了解MySQL吗?来,我来教你。

1.咱们先了解一下这个问题:
当想使用Mysql的关键字作为表名或数据库名称时,怎么操作?
在此关键字的左边和右边分别加上 ` 符号(这个符号在esc键下面),例如想用desc当作表名称时即:

在这里插入图片描述
2.where条件查询
在这里插入图片描述
以上运算符与where一起使用。
A.当要查询数学成绩大于九十分的且降序排序,则有以下两种情况
(1)select * from exam_result where math > 90 order by math asc;

(2)select * from exam_result order by math asc where math > 90;
但是只有第一种情况是对的
B.对于null的判断,= 和!= 以及<> 不能用来判断某一对象的属性是否为null,因为其结果都为否,要想判断是否为null可以使用<=>或者 is null(判断是否为null),要想判断是否不为null可以使用is not null来进行判断。
C. 以上查询都比较简单,下面将介绍模糊查询
模糊匹配,% 表示任意多个字符, _ 表示一个字符,看代码:
这是表内所有数据:
在这里插入图片描述
(1)想查询名字带有三的所有人的信息,则命令是:
select * from exam_result where name like ‘%三%’;
在这里插入图片描述
(2)想查询名字最前一个字是唐的:
命令是:select * from exam_result where name like ‘唐%’;
在这里插入图片描述
想查询姓氏是沙的人信息:
命令是: select * from exam_result where name like ‘沙%’;
在这里插入图片描述
想查询唐姓二字名称的人信息:
命令是: select * from exam_result where name like ‘唐_’;
在这里插入图片描述
D.not 是结合使用的,不是单独用来使用的
例如:
select * from exam_result where math in (98,91,89);
在这里插入图片描述
加上not后意思相反:
select * from exam_result where math not in (98,91,89);
在这里插入图片描述
3.分页查询
(1)问题:啥是分页查询?为何要分页查询?
分页查询是针对数据量庞大的时候,指定查询某几个相连的数据,一页一页的展示出来。
有时候数据量太大,那么一次性查找数据的时候,系统会执行SQL语句,此时查询是需要时间的。有时候系统会卡住,优化方案就是用分页查询。
每次只查询,当前页需要显示的数据即可。如果每页10条数据,那么只查询10条数据,每次点击下一页的时候又会请求10条数据,效率提高了;
(2)语法
A. select * from exam_result limit s,n; 从偏移位置为s的地方,取出n条数据。位置是从0号下标开始的。(s为0时可省略)
B.分页查询的另一种格式: select * from exam_result [where…] [order by …] limit n offset s;
(从s位置开始,取n个数据)
注意和where以及order by混合使用时的先后顺序。
例如:
在这里插入图片描述
4.修改update
语法:uUPDATE table_name SET column = expr [, column = expr …] [WHERE …] [ORDER BY …] [LIMIT …]
举例说明:
select * from exam_result where name = ‘唐三’;(先显示出一会要修改的内容方便一会进行比较)
update exam_result set math = math + 5 where name = ‘唐三’;
在这里插入图片描述
5.删除delete
语法:DELETE FROM table_name [WHERE…] [order by…] [limit…];
注意:delete * from table_name;是删除整张表的所有内容;
delete * from table_name where…;是删除满足where条件的所有数据;
(这里提一下要想删除表直接用前面学的:drop table table_name;即可)

最后再讲一个注意点:
当update和limit组合使用时,此时update只能修改前几个数据,而不支持修改从第几个到第一个数据。说完有点懵,直接代码解释:
(1)当想修改id靠前的三位学生的数学成绩,加上三分时,代码应该为:
update exam_result set math = math + 3 order by id desc limit 3;
在这里插入图片描述
(2)当想修改id排序从第二个数据到第四个数据,让其英语成绩加两分时,通常思维应该写成:
update exam_result set english = english + 2 order by id desc limit 1,3;
在这里插入图片描述
但是却出错了,不支持这样修改。

以上是关于mysql增删查改的主要内容,如果未能解决你的问题,请参考以下文章

Mysql基础命令整理(增删查改)

Mysql基础命令整理(增删查改)

mysql简单操作,增删查改.

MySQL表的增删查改

MySQL表的增删查改

MySQL增删查改 练习(基础)