前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mysql查询语句之连表查询和增删改查语句补充

Mysql查询语句之连表查询和增删改查语句补充

作者头像
前端皮皮
发布于 2021-07-23 03:05:03
发布于 2021-07-23 03:05:03
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

前言

Hey,大家好,我是码农星期八!

上次怎么大概说了一下or,!=,in/not in between,like,limit,order by,group by

但是还没完,咱们接着往下说!

查询

我们的数据是这样的。

发现class_id是一个数字,这是因为我们在设计时,将学生表班级表分开设计的。

但是如果我们偏偏想要查询这个人是几班的,怎么办?

连表查询

方式一,where连表

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * from 表1,2 WHERE1.外键列=2.被外键列;
SELECT1.1,1.2,2.1,... from 表1,2 WHERE1.外键列=2.被外键列;

连表显示所有列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * from student,class WHERE student.class_id=class.id;

执行结果

喏,这样就知道哪个学生是哪个班的了!

连表显示指定列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT student.id,student.`name`,class.title from student,class WHERE student.class_id=class.id;

执行结果

方式二,left连表

通过where连表固然简单,但是缺点明显。

因为我们的where后面是要跟判断条件的,使用where进行连表会造成逻辑有些混乱

在一般连表操作中,使用的也是left进行连表。

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * from 表1 LEFT JOIN2 on 表1.外键字段=2.被外键字段;
SELECT1.1,1.2,2.1,... from 表1 LEFT JOIN2 on 表1.外键字段=2.被外键字段;

连表显示所有列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * from student LEFT JOIN class on student.class_id=class.id;

执行结果

选择指定列查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT student.id,student.`name`,class.title from student LEFT JOIN class on student.class_id=class.id;

执行结果

其实这和where连表是一样的。

方式三,inner连表

innerleft是差不多的,只不过left是正向连表,inner是反向连表。

就像学生表和课程表。

如果是通过学生表连课程表,属于正向,用left

如果是通过课程表连学生表,就属于反向,用inner

如果反向连表硬生生用left,会出现一些空值现象。

inner语法同left,只不过是表的前后顺序不一样。

其他操作

上述所有的操作,都属于查询操作,基本上入门是可以的,下面咱们来看一下剩下的增,删,改操作。

增(insert)

单条插入

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO (列名1,列名2,...) values(1,2,...);

添加一条学生信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT into student(name,age,gender,class_id) VALUES("吴彦祖",22,"男",1);

执行结果

表内容

多条插入

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO (列名1,列名2,...) values(1,2,...),(1,2,...);

批量添加学生信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO student (NAME, age, gender, class_id)
VALUES
    ("范冰冰", 18, "女", 2),
    ("成龙", 24, "男", 3);

执行结果

表内容

改(update)

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE <> set= 值 where <条件>;

将李四的年龄修改成88岁

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE student set age = 88 where name = "张三"

执行结果

删除(delete)

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delete from <表名>
delete from <表名> where <条件>

删除张三

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE from student where name="张三"

执行结果

总结

这章有点像收尾部分,补充了连表查询,后续又补充了Mysql的增删改查。

连表查询要区分一下leftinner的区别,一个是正向连,一个是反向连。

插入数据可以插入单条数据和多条数据,多跟参数即可。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

越努力,越幸运。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。

感谢你的观看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查询
    • 连表查询
      • 方式一,where连表
      • 方式二,left连表
      • 方式三,inner连表
  • 其他操作
    • 增(insert)
      • 单条插入
      • 多条插入
    • 改(update)
    • 删除(delete)
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档