🎁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主
🎥 本文由 tq02 原创,首发于 CSDN🙉
🎄 本章讲解内容:MySQL的数据增删查改等操作🎁欢迎各位→点赞👍 + 收藏⭐ + 评论📝+关注✨
使用 MySQL数据库服务器
前言
数据表是数据库的重要组成部分,每一个数据库都是由若干个数据表组成的。没有数据表就无法在数据库中存放数据。
俗语:一个仓库(数据库)没有货物单(数据表)就无法得知有什么货物(数据)
抽象理解:我们得想先拥有一份空白的采购单(空白的数据表),我们需要向其中添加我们需要的东西,再经过修改,采购后,采购单变成了货物单,代表了仓库拥有的货物。
而对应的数据表操作:增加数据、查询数据、修改数据和删除数据。
第一步 第二步 第三步
创建数据库 创建数据表 添加数据并进行修改
//第一步创建一个名为商店数据库
create database shop character set utf8mb4;
//第二步创建一个名为货物的数据表,拥有字段:商品名称、商品价格、商品库存、商品描述
create table foods(
foods_name varchar(10) comment '货物名',
foods_price int comment '价格',
foods_stock int comment '库存',
foods_describe varchar(10) comment '用途'
);
//第三步,使用增删查改,对数据表进行操作
一.增加数据
增添数据,有2种方法:
单行数据+全列插入
格式:insert into 数据表名 values(数据1,数据2,.....,数据n);
** **多行插入+指定列插入
格式:insert into 数据表名(字段名1,字段名2) values (数据1,数据2);(数据3,数据4);
单行数据+全列插入 代码示例:
注:单行插入,只能插入一行,并且要与字段名的数据类型相对应。
多行插入+指定列插入 代码示例:
insert into foods(foods_name,foods_stock) values('文具盒',3);('书本',5);
数据表名后面的括号里未包含的字段名,默认值为NULL,而values之后的一个括号代表了1行数据
二.查询数据
顾名思义,查看数据表中的数据。且这种有很多方法。
1.查询数据表的所有信息 2.展示 数据表 某列信息
** select * from 表名; select 列名 from 数据表;** 3.查询通过计算的列,使用临时表展示。 **select 列名1,列名2,...,列名n+数字/列 from 数据表;**
4.用别名代表列名 用临时表展示 。 5.消除取值重复的行,临时表展示
**select 列名 as 别名; select distinct 列名 from 表名**;
6.将查询结果进行排序。 7.条件查询
** select 列名 from 表名 order by 列名; 使用where。**
2.1查询数据表中所有信息
语法格式:**select * from 表名; **
使用 **select *from foods**;查询表中信息。
2.2查询表中指定的列信息
语法格式:select 列名 from 数据表;
例如,我们查询foods_name列信息,使用 :select foods_name from foods;
2.3查询通过计算的列
语法格式: select 列名1,列名2,...,列名n+数字/列 from 数据表;
这种查询有限制,一定得是数字,这样相加才有意义。例如,在foods_stock上加上20;使用:select foods_stock+20 from foods;
2.4使用别名代替列名
语法格式**:select 列名 as 别名; **
这个经常和计算在一起使用,计算之后的列名:**本来的列名+计算数,**这不太优雅,因此我们可以使用其他别名代替。 例子:newstack代替了2.3中的foods_stock+20. 使用:**select ****foods_stock+20**** as** **newstock**** from foods**
2.5查询不带有重复值的列
语法格式:select distinct 列名 from 表名;
将一行里的重复值删去,只保留一个。
例如:将foods_name去重 使用:select distinct foods_name from fooks;
2.6将查询的结果进行排序
排序有2种,一种是升序(ASC),另一种是降序(DESC)。当没有标注时,默认为升序。
语法格式: select 列名 from 表名 order by 需要排序的列名 ASC/DESC;
注 需要展示的列 按照ASC/DESC排序的列
例子:对foods_price进行排序且展示所有列:select * from foods order by foods_price;
2.7条件查询
2.7.1条件查询的种类
条件查询使用where,且条件查询需要使用到各种各样的运算符
条件查询 运算符比较= , >, < , >= ,=< , != ,<> , !> , !< , not确定范围BETWEEN AND , NOT BETWEEN AND确定集合IN , NOT IN字符匹配LIKE , NOT LIKE空值IS NULL , IS NOT NULL多重条件AND , OR
注:and的优先级高于or
2.7.2使用运算符查询的讲解
🌹比较大小
这种运算符和编程语言的区别只有一个: 在编程语言使用:== 数据库中使用:=
实例代码:
//查询学生表中学号为202101234的学生;
SELECT * FROM Student where Sno='202101234';
//查询年龄在201岁以下的学生的姓名和年龄;
select Sname , Sage from student where Sage<20;
** 🌹确定范围**
确定范围的运算符有2种,between.....and和not between.......and
使用的格式为:列名 [not] between 下限值 and 上限值;
实例代码:
//查找学生表里,年龄在20到23岁之间的学生姓名
select Sname from Student where Sage between 20 and 23;
//查找学生表里,年龄不在20到23之间的学生姓名
select Sname from Student where Sage not between 20 and 23;
** 🌹确定集合**
使用 IN运算符 用于查找某列的具体值。
使用格式:列名 [not] in (常量1,常量2,.......,常量n);
实例代码:
//查询学生表中成绩是 58 或者 59 分的同学姓名
SELECT name FROM Student WHERE grade IN (58, 59);
** 🌹字符匹配**
字符匹配,是指:给一个匹配串,帮忙查找某列中含有此字符的数据;
使用格式:列名 [not] like <匹配串>;
字符匹配需要使用到:
- **_ **这个短短的下划线。作用:可匹配任意字符
- % 这个百分号。 作用是匹配任意数目字符。
实例代码:
查询学生表中 姓名 中 **孙 **字开头的名字。%是指无论多少个字。
SELECT Sname FROM Student WHERE Sname LIKE '孙%';
//可匹配到孙悟空、孙权等名字
查询 学生表中 姓名 中 第2字为 **牛** 的名字,使用 _ 一个 _ 代表一个字符
SELECT Sname FROM Student WHERE Sname LIKE '_牛';
** 🌹涉及到空值的查询**
查询某列中的元素不为空,或者为空。
语法格式:列名 is [not] null;
实例代码:
//查询学生表中成绩不为空的姓名
SELECT Sname FROM Student WHERE grade IS NOT NULL;
//查询学生表中成绩为空的姓名
SELECT Sname FROM Student WHERE grade IS NULL;
** 🌹多重查询**
使用and和or逻辑运算符来组成多条件查询。
- and:必须满足所有条件 便为true
- or: 满足部分条件 便为true
实例代码:
//查询学生表中成绩大于60 和 性别为男的学生姓名;
SELECT Sname FROM Student WHERE grade >60 and Sex= '男';
//查询学生表中性别为女 或者 年龄小于20的学生姓名;
SELECT Sname FROM Student WHERE Sage<20 and Sex= '女';
2.8分页查询
就是将信息分成好几个页面来查看。
语法格式:*select * from tablename limit (n-1)m,m;
n:求第几页的数据 m:每页显示m条数据
例如代码:
例子:
第一页数据,一页显示3行数据
select * from tablename limit 0,3;
第二页数据,一页显示3行数据 (2-1)*3,3
select * from tablename limit 3,3;
三.修改数据
修改数据使用的是update。将表中某个字段的数据进行修改。
语法格式:update 表名 set 字段名 = 新值 [ where 条件 ];
注: [ ]里的内容是选择性的,如果没有,这是修改字段里所有数据。
例如: 将书包的foods_price的值修改为1000;
四.删除数据
删除表中所有数据 或 指定的数据
语法格式:**delete from 表名 [ where 条件 ]; **
例如:将书包这一行的数据全部删除。
总结
在对数据表元素的操作中,最为重要的是 数据的查询中的数据库运算符的使用。
运算符一定一定需要学会使用。否则查询和修改会出现问题。导致数据出错。
版权归原作者 tq02 所有, 如有侵权,请联系我们删除。