MySQL的增删改查
1.查询时带表达式查询
2.使用where条件筛选
3.排序---order by
4.分页查询---limit
5.update
6.基本数学运算
7.内置函数
8.字符串函数
9.数学函数
这篇文章我会将MySQL中常用而且在实际开发中经常使用的增删改查都一一列出来
在实际开发中,增删改查也是最频繁使用的,所以也极其重要
所以我将我所学的知识归纳总结为一篇博客供大家学习和参考(个人观点)
我们先创建一张成绩表,里面包含姓名,语文成绩,数学成绩,英语成绩
create table grade(name varchar(10), chinese int, math int, english int);insert into grade values('唐三藏', 67, 98, 56), ('孙悟空', 87, 78, 77),('猪悟能', 88, 98, 90), ('曹孟德', 82, 84, 67),
('刘玄德', 55, 85,45), ('孙权', 79, 73, 78), ('宋明公', 75, 65, 30);
select * from grade;
1.查询时带表达式查询
这里要注意,这里查询到得结果是一张临时表,并不是对原表进行修改
1.)给语文成绩 + 10分
select name, chinese + 10 from grade;
2.)查看三科的总成绩
select name, chinese + math + english from garde;
3.)计算总成绩的平均分
select name, (chinese + math + english) / 3 from grade;
4.)给查询结果起别名 --- as
select name as '姓名', chinese + math + english as '总成绩' from grade;
2.使用where条件进行筛选
1.)语文成绩 > 80 分的同学才显示
select name, chinese from grade where chinese > 80;
2.)查询语文成绩高于英语成绩的同学
select name, chinese, english from grade where chinese > english;
3.)查询总分低于200分的同学
select name, chinese + math + english as '总成绩' from grade
where chinese + math + english < 200;
4.)查询语文成绩 > 80 分并且英语成绩 > 80分的同学
select name, chinese, english from grade
where chinese > 80 and english > 80;
5.)查询语文成绩 > 80或英语成绩 > 80的同学
select name, chinese, english from grade
where chinese > 80 or english > 80;
6.)查询语文成绩大于80小于100的同学
select name, chiniese from grade
where chinese between 80 and 100;
7.) 查询数学成绩在78, 79, 80, 81,82的同学
select name, math from grade where math in (78, 79, 80 ,81, 82);
8.)查询以孙开头的同学姓名
select name from grade where name like '孙%';
9.)查询名字包含孙的同学姓名
select name from grade where name like '%孙%';
3.排序---order by
1.)根据语文成绩升序排序
select * from grade order by chinese;
2.)根据语文成绩降序排序
select * from grade order by chinese desc;
3.)根据总成绩进行升序排序
select name, chinese + math + english as '总成绩' from grade
order by chinese + math + english;
4.)对结果条件进行排序
select name, chinese from grade
where chinese > 70
order by chinese;
4.分页查询---limit
limit规定了一页最多显示多少条数据
offset就是翻页
select name, chinese + math + english as total from grade
where chinese + math + english > 200
order by chinese + math + english
limit 2;
select name, chinese + math + english as total from grade
where chinese + math + english > 100
order by chinese + math + english
limit 2 offset 4;
5.update
update对数据的修改,就是对原表进行的修改了
1.)将孙悟空的数学成绩修改为99
update grade set math = 99 where name = '孙悟空';
2.)将曹孟德的语文成绩改为10086分,英语成绩改为1分
update grade set chinese = 10086, english = 1
where name = '曹孟德';
3.)将所有同学的语文成绩x2
update grade set chinese = chinese * 2;
6.基本数学运算
1.)查询grade有多少条记录
select count(*) from grade;2.)查询语文成绩有多少条记录,如果某位同学的语文成绩为null则不会记录
select count(chinese) from grade;3.)查看所有同学语文成绩的总分
select sum(chinese) from grade;
4.)查看所有同学成绩的平均分
select avg(chinese + math + english) as '平均成绩' from grade;5.)查看语文成绩最高分, 英语成绩最低分
select max(chinese), min(english) from grade;7.内置函数
1.)显示当前日期
select curdate();2.)显示当前时间
select curtime();3.)显示当前的日期和时间
select now();4.)对日期的增加
-- 增加三周
select adddate('2025_10_10', interval 3 week);
-- 增加三天
select adddate('2025_10_10', interval 3 date);
-- 新增三个月
select adddate('2025_10_10', interval 3 month);
-- 新增三年
select adddate('2025_10_10', interval 3 year);5.)日期差
select datediff('2025_10_23', '2023_8_14');8.字符串函数
1.)字符串拼接
select concat(name, '同学') from student;2.)自带分隔符拼接,按照第一个字符进行拼接
select concat_ws('=', 'f', 'wda', 'i', 'ppp');3.)大写转小写
select lcase('ABCD');4.)小写转大写
select ucase('abcd');9.数学函数
1.)绝对值
select abs('-10086');2.)向上取整
select ceil('3.14');3.)向下取整
select floor('3.14');4.)将15从10进制转换为16进制
select conv(15, 10, 16);5.)随机数
select rand();