完结 【新星计划回顾】第八篇学习-多表联表查询

时间过的真快,这是导师回顾新星计划学习的第八篇文章!
在学习过程中,学员们也咨询了很多问题,我把一些问题整理以文章形式总结分享下 。
最近这段时间非常忙,虽然导师首次参与新星计划活动已经在4月16日圆满结束,早想腾出时间来好好整理活动期间分享的知识点 。
非常感谢大家的支持和活动期间的文章输出,导师也是忙里抽空给大家准备分享的内容,也是尽力了,所以分享的知识点主要是偏向于基础和基本的实战,虽然不是讲解的很系统,但是能够了解到一定的实战信息
期待我们的下次学习,导师将会在6月或者7月再次发起新星计划,本次活动也得到学员和平台的肯定,平台也是非常欢迎导师再次发起新星计划,非常感谢!
目录3、内联查询4、知识点
1、需求
在数据库中,查找出角色后对应的皮肤信息,要求字段:角色ID,角色名称,皮肤名
称,皮肤价格,角色上架时间
2、创建表 2.1、角色表
主要字段:角色编号、角色名称、角色上架时间
这里的角色导师理解为王者荣耀之类的游戏人物,比如:关羽、德邦等
再比如:烈魂-黄忠、芝加哥教父-黄忠、冰雪之华-王昭君
-- 角色表(可以理解为人物)create table db_role(id int identity(1,1) primary key,-- 角色自增编号roleName nvarchar(50),-- 角色名称rolePublicTime datetime,-- 角色上架时间createTime datetime-- 记录添加时间)
1)模拟数据

完结  【新星计划回顾】第八篇学习-多表联表查询

文章插图
模拟添加两条记录,黄忠和王昭君两个角色人物数据
insert into db_role(roleName,rolePublicTime,createTime)values('黄忠',getdate(),getdate()),('王昭君',getdate(),getdate())
2.2、皮肤表
主要字段:皮肤名称、皮肤价格
比如:黄忠的烈魂皮肤、黄忠的芝加哥教父皮肤、王昭君的冰雪之华皮肤
-- 皮肤信息:create table db_skin(id int identity(1,1) primary key,-- 皮肤自增编号roleId int,-- 角色编号skinName nvarchar(50),-- 皮肤名称skinPrice decimal(18,2),-- 皮肤价格createTime datetime-- 记录添加时间)
1)模拟数据
模拟添加三条记录,黄忠和王昭君对应皮肤数据
insert into db_skin(roleId,skinName,skinPrice,createTime)values(1,'烈魂',23.6,getdate()),(1,'芝加哥教父',33.6,getdate()),(2,'冰雪之华',15.6,getdate())
原则:Write Less Do More!
简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!
3、内联查询
1)完整代码
select r.id,-- 角色编号r.roleName,-- 角色名称s.skinName,-- 皮肤名称s.skinPrice,-- 皮肤价格r.rolePublicTime-- 角色上架时间from db_role rleft join db_skin s on r.id=s.roleId
完结  【新星计划回顾】第八篇学习-多表联表查询

文章插图
2)效果
4、知识点
SQL 中的左右链接和内连接是用于在两个表之间建立关联关系的查询方法 。
需要注意的是,内连接只返回匹配的行,而左连接和右连接则会返回左(或右)表中所有的记录 。
4.1、内连接
内连接(Inner Join)是指只返回两个表中匹配的行 。它会通过比较两个表中相同列的值来确定匹配的行 。如果一行在一个表中没有匹配到另一个表中的行,则该行将不被返回 。以下是一个内连接的示例: