文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL | 数据库的管理和操作【表的增删改查】

2023-10-27 12:59

关注

MySQL | 数据库的管理和操作【表的增删改查】

系列文章目录

第一章:MySQL | 数据库的管理和操作(基本介绍)

第二章:MySQL | 数据库的基本操作和表的基本操作

第三章:MySQL | 数据库的表的增删改查

文章目录

本节目标

一、新增(Create)

语法:

INSERT [INTO] table_name [(column [, column] ...)]  VALUES (value_list) [, (value_list)] ...value_list: value, [, value] ...

案例:

insert into student valuse (1,'张三');

在这里插入图片描述

在这里插入图片描述

create database test charset utf8;

在这里插入图片描述

在这里插入图片描述

指定列插入 + 全列插入

insert into student (name,gender) values('张三','男');

在这里插入图片描述

此时:values后面的内容就是和前面的()的内容匹配

select * from student;

在这里插入图片描述

多次插入

insert into student values(2,'李四','男'),(3,'王五','男');

在这里插入图片描述

时间日期类型,数据的插入

create table homework (id int ,creatTime datetime);

在这里插入图片描述

insert into homework values(1,'2023-02-17 21:25:00');

在这里插入图片描述

insert into homework values(1,now());

在这里插入图片描述

二、查询(Retrieve)

全列查找

全列查找(查找整个表的所有行,所有列)

select * from 表名

在这里插入图片描述

那么怎么办呢?有办法吗?有的!

当你需要操作的时候,一定要拉上一个人和你一起操作O(∩_∩)O哈哈~

指定列查询

-- 指定列的顺序不需要按定义表的顺序来 select 列名,列名...from 表名;
select name,gender from student;

在这里插入图片描述

表达式查询

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

在这里插入图片描述

insert into exam_result (id,name,chinese,math,english) values (1,'唐三藏', 67, 98, 56), (2,'孙悟空', 87.5, 78, 77), (3,'猪悟能', 88, 98.5, 90), (4,'曹 孟德', 82, 84, 67), (5,'刘玄德', 55.5, 85, 45), (6,'孙权', 70, 73, 78.5), (7,'宋公明', 75, 65, 30);

在这里插入图片描述
在这里插入图片描述

select name,math + 10 from exam_result;

在这里插入图片描述

我们再次操作一下~~

在这里插入图片描述
小结一下:

我们还可以查看总成绩,那么怎么查看呢?接着往下看~~

select name,math + chinese + english from exam_result;

在这里插入图片描述
后面还会学一个聚合查询,是行和行之间的运算~~


在这里插入图片描述

这就引出了一个查询的时候指定别名~~

指定别名查询

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

在这里插入图片描述

去重

select distinct math from exam_result;

在这里插入图片描述

查询结果排序

select name,math from exam_result order by math;

在这里插入图片描述

刚刚是升序排序的,那么怎么降序排序呢?只需要在后面加上desc就可以了

select * from exam_result order by math desc;

在这里插入图片描述

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

在这里插入图片描述

条件查询

在查询的时候指定筛选条件

比较运算符:

在这里插入图片描述

逻辑运算符:

在这里插入图片描述

select * from exam_result where english < 60;

在这里插入图片描述


在这里插入图片描述

select * from exam_result where chinese > english;

在这里插入图片描述


在这里插入图片描述

select * from exam_result where chinese + english + math < 200;

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  1. 遍历每一行
  2. 把这一行代入where的条件中
  3. 符合条件的结果,再根据select这里指定的列,再进行查询/计算

注意:

此处的total别名不能作为where条件,和当前sql的执行顺序有关,当然,这也是mysql对于语法规定的一部分~~

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

在这里插入图片描述


在这里插入图片描述

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

在这里插入图片描述


在这里插入图片描述

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

在这里插入图片描述


范围查询

BETWEEN … AND …


在这里插入图片描述

select * from exam_result where chinese >= 80 and chinese <= 90;

在这里插入图片描述

select * from exam_result where chinese between 80 and 90;

在这里插入图片描述


在这里插入图片描述

select * from exam_result where math = 58 or math = 59 or math = 98 or math = 99;

在这里插入图片描述

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

在这里插入图片描述


模糊查询

like

只支持两个用法:

  1. 使用%代表任意0个字符或者N个字符
  2. 使用_代表任意1个字符
select * from exam_result where name like '孙%';

在这里插入图片描述

在这里插入图片描述


NULL 的查询

我们要想查询为空(null)的值,那么怎么查询吗?是下面这样吗?

select * from exam_result where chinese = null;

在这里插入图片描述

为什么会出现这样的情况?

针对这样的问题怎么解决呢?

select * from exam_result where chinese <=> null

在这里插入图片描述

select * from exam_result where chinese is null;

在这里插入图片描述


分页查询

这里所用到的关键字是limit

select * from exam_result limit 3;

在这里插入图片描述

select * from exam_result limit 3 offset 3;

在这里插入图片描述

列如:查询总分前三名的同学的信息:

  1. 计算每个同学的总成绩(表达式)
  2. 按照成绩排序(降序)
  3. 取前三条记录

代码操作:

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

在这里插入图片描述

查询基础部分暂时告一段落~~


三、修改(Update)

update 表名 set 列名 =... where 条件;

update exam_result set math = 80 where name = '孙悟空';

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

update exam_result set math = 60 ,chinese = 70 where name = '曹孟德';

在这里插入图片描述


在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述


在这里插入图片描述

update exam_result set chinese = chinese / 2;

在这里插入图片描述

show warnings;

在这里插入图片描述


在这里插入图片描述

四、删除(Delete)

delete删除记录(行)

delete from 表名 where 条件;

下面进行代码演示:

delete from exam_result where name like '孙%';

在这里插入图片描述

delete from exam_result;

在这里插入图片描述

所以delete操作也是非常危险的!!!


学习完上面的操作,那么增删改查都是什么呢?

内容重点总结

-- 单行插入insert into(字段1, ..., 字段N) values (value1, ..., value N);-- 多行插入insert into(字段1, ..., 字段N) values(value1, ...),(value2, ...),(value3, ...);
-- 全列查询select * from-- 指定列查询select 字段1,字段2... from-- 查询表达式字段select 字段1+100,字段2+字段3 from-- 别名select 字段1 别名1, 字段2 别名2 from-- 去重DISTINCTselect distinct 字段 from-- 排序ORDER BYselect * fromorder by 排序字段-- 条件查询WHERE:-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR (8)NOTselect * fromwhere 条件
updateset 字段1=value1, 字段2=value2... where 条件
delete fromwhere 条件

好了,数据库的管理和操作【表的增删改查】初阶就到这里结束了,后面我们还有进阶,感谢大家的收看,觉得有用的话三连一下吧~~🌹🌹🌹

来源地址:https://blog.csdn.net/2201_76004325/article/details/133919170

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯