【博学谷学习记录】超强总结,用心分享|测试工程师必备技能总结:Linux 和数据库 day05 随堂笔记

Linux 和数据库 day05 随堂笔记

连接查询

 内连接:

-- 在查询中, 需要将两张表存在对应关系的数据全部显示出来时, 需

要使用连接查询-内连接

-- 内连接 : 显示两张表中存在对应关系的数据, 无对应关系的数据

不显示

-- 语法 : 表1 inner join 表2 on 表1.字段 = 表2.字段

连接查询共通知识点:

-- 连接查询共用知识点

-- 对连接后的表进行字段显示限制

-- 注意: 需要由对应的 表名.字段 的方式实现(防止表与表之间存在相同的字段名)

-- 表名.* : 代表显示该表的所有字段

-- 连接查询中, 往往会给表名起别名, 目的: 1) 缩短表名 2) 给表单独创建空间(了解)

左连接:

-- 左连接 : 以 left join 关键为界, 关键字左侧的表的信息要全

部显示出来, 而关键字右侧表的信息, 有对应的部分显示, 无对应的部分以 null 占位填充即可

-- 语法 : 表1 left join 表2 on 表1.字段 = 表2.字段

右连接:

-- 注意 : 右连接主要解决 3 张及以上表进行连接查询时常见

-- 右连接 : 以 right join 关键为界, 关键字右侧的表的信息要

全部显示出来, 而关键字左侧表的信息, 有对应的部分显示, 无对应的部分以 null 占位填充即可

-- 语法 : 表1 right join 表2 on 表1.字段 = 表2.字段

内连接和左右连接的小结


连接查询的实质

-- 注意 :

-- 1. 连接操作实质: 只是将分布于多张表的数据, 通过连接的方式

进行整理, 形成数据源

-- 2. 连接操作完成后, 之前的所有的查询语法, 都可以继续使用

-- 3. 具体连接方法的选择, 要以具体需求为准

-- 内连接 : 如果有商品没有分类对应信息, 不会被显示出来

-- 注意 : 如果使用内连接, 会造成数据缺失, 查询结果错误

select * from goods go

inner join category ca on go.typeId = ca.typeId

where go.price < 120;

-- 左连接

select * from goods go

left join category ca on go.typeId = ca.typeId

where go.price < 120;

自关联的介绍

特征 : 只有 1 张表, 表中最少存在两列字段具备对应关系;

原理 : 通过起别名的方式, 将 1 张表变为 2 张表, 通过对应字段的对应关系, 进行条件比对, 实现连接查询



需求4: 自关联

-- 需求4: 查询河南省所有的市

-- 查询所有数据

select * from areas;

-- 自关联 :

-- 1) 通过起别名的方式, 将一表变俩表

-- 2) 通过 表1.字段 = 表2.字段 实现表间关联

select * from areas a1

inner join areas a2 on a1.aid = a2.pid

where a1.atitle = '河南省';

需求5 : 自关联

-- 需求5: 查询河南省的所有的市和区

-- 自关联

select * from areas;

--

select * from areas a1

inner join areas a2 on a1.aid = a2.pid

left join areas a3 on a2.aid = a3.pid

-- inner join areas a3 on a2.aid = a3.pid

where a1.atitle = '河南省';

子查询的介绍

定义 : 在一条查询语句当中, 利用另一条语句作为条件或数据源, 充

当条件或数据源的语句称之为子查询语句.

注意 : 子查询语句在使用时, 务必使用括号括起来

需求6 : 子查询-充当条件

-- 需求6: 查询价格高于平均价的商品信息

-- 查询所有数据

select * from goods;

-- 查询平均价格

select avg(price) from goods; -- 68.33

-- 需求实现

select * from goods where price > 68.33;

-- 优化实现 - 子查询 : 在 where 关键字后边的子查询语句是充当条件的

select * from goods where price > (select avg(price)

from goods);

需求7 : 子查询-充当数据源

-- 需求7: 查询所有来自并夕夕的商品信息, 包含商品分类

-- 查询所有数据

select * from goods;

select * from category;

-- 并夕夕商品信息

select * from goods where company = '并夕夕';

-- 需求实现 - 子查询 : 在 from 和连接查询关键字后边的子查询

语句时充当数据源的

select * from category ca

inner join (select * from goods where company = '并夕夕') a on ca.typeId = a.typeId;

扩展1 : 子查询的分类

根据子查询语句返回的结果形式体现, 子查询共分为 4 类:

子查询返回的结果是一个值(一行一列), 称之为: 标量子查询

子查询返回的结果是一列数据(一列多行), 称之为: 列子查询

子查询返回的结果是一行数据(一行多列), 称之为: 行子查询

子查询返回的结果是多行多列(相当于一张表), 称之为: 表级子查询

扩展2 : 子查询关键字

-- 需求 : 查询在25-100之间的商品的价格

select price from goods where price between 25 and

100;

-- in : 范围

-- select * from goods where price in (25, 30, 77,

30, 72,25);

select * from goods where price in (select price

from goods where price between 25 and 100);

-- some/any : 任意一个

select * from goods where price = some(select price

from goods where price between 25 and 100);

select * from goods where price = any(select price

from goods where price between 25 and 100);

-- all : 全部(= all : 等于所有; != 或 <> all : 不等于所有)

select * from goods where price = all(select price

from goods where price between 25 and 100);

select * from goods where price != all(select price

from goods where price between 25 and 100);

select * from goods where price <> all(select price

from goods where price between 25 and 100);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容