首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL语句汇总(终篇)—— 联接联接查询

既然是最后一篇那就不能只列出些干枯标准语句,更何况联接也是SQL中较难部分,所以此次搭配题目来详细阐述联接。 上一篇博文说到相关子查询效率低下,那我们怎么能将不同信息一起查询出来呢?...而联接是通过笛卡尔乘积进行横向联接,所谓通过笛卡尔乘积简单说就是两行依次相联再相加。要想更详细理解可以百度下,毕竟本文主要是汇总SQL语句。 现在有如下两张: ? ?...联接分类: 内联接: 内联接是指两个中某一行相关列值匹配时,这一行才会出现在中。就像上例中s._fkc._infor相同时才会出行该行,其他行剔除。...外联接: 分为左外联接右处联接。 外联接是指不管有没有匹配,被定义了外联接数据都要出现在结果中。比如左外联接,那么在JOIN左边就被定义为外联接,那么此中所有数据都会出现在查询结果中。...= '朱军'; 本题中,括号内为联接后,其返回是'朱军'所在班级_infor,然后主查询在学生匹配_infor相等_fk行,最后从匹配成功后行中剔除'朱军'自己。 ?

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

SQL笔记(2)——MySQL操作索引

,以及每个字段对应名称、数据类型、默认值、空值约束、键约束等信息; 这里 Key为MUL主要是因为这两个字段有外键约束,约束其另一个对应字段要对应; 查看某个某一列结构 mysql>...注意:column_type是必须。在SQL中,修改中某一列数据类型是一个重要操作,因为数据类型决定了该列可以存储数据种类和范围。...它可以提高数据库查询速度,基本原理是使用空间换取时间,索引存储在磁盘上文件中以加快读写速度。使用索引可以对表中一列或多列值进行排序,从而快速访问特定信息。...其他(按照索引列数量分类) 单列索引 组合索引:组合索引使用,需要遵循最左前缀匹配原则(最左匹配原则)。一般情况下在条件允许情况下使用组合索引替代多个单列索引使用。...如果要查看特定约束详细信息(例如包含列),可以使用INFORMATION_SCHEMA.KEY_COLUMN_USAGE进行查询

1.6K20

MySQL学习2:数据创建查询

1.使用数据库 use 数据库名字; 2.查看当前使用数据库 select database(); 3.查看当前数据库中所有 show tables; 4.查看当前数据表字段 desc 数据名字...5.创建数据 create table 数据名字(字段 类型 约束) 6.向指定数据插入记录 insert into 数据名字 values(每个字段数值); 7.查询指定数据所有记录 select...* from students; 8.数据类型区分 常用数据类型: 整数:int,bit 小数:decimal (decimal(5,2)表示共存5位数,小数占2位) 字符串:varchar,char...text(varchar表示可变长度,char固定长度,不足长度会自动填补空格,text大文本字符>4000使用) 枚举类型:enum 日期时间:date time datetime 关于整数和日期时间类型拓展..., name varchar(30), age tinyint unsigned default 0, high decimal(5,2), gender enum(”男","女","保密")

1.6K30

SQL学习笔记四(补充-1)之MySQL单查询

阅读目录 一 单查询语法 二 关键字执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询记录数...:LIMIT 九 使用正则表达式查询 一 单查询语法 SELECT 字段1,字段2......select distinct order by limit 1.找到:from 2.拿着where指定约束条件,去文件/中取出一条条记录 3.取出一条条记录进行分组group by,如果没有...#1、首先明确一点:分组发生在where之后,即分组是基于where之后得到记录而进行 #2、分组指的是:所有记录按照某个相同字段进行归类,比如针对员工信息职位分组,或者按照性别进行分组等...查询男员工男员工平均薪资,女员工女员工平均薪资 #题1:分组 mysql> select post,group_concat(name) from employee group by post;

2.1K60

2018-11-26 oracle查询信息(索引,外键,列等)1查询出所有的用户2查询出用户所有索引3、查询用户索引(非聚集索引):4、查询用户主键(聚集索引):5、查询索引6

oracle中查询信息,包括名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1查询出所有的用户 select * from user_tables...table_name字段都会自动变为大写字母, 所以必须通过内置函数upper字符串转化为大写字母进行查询,否则,即使建表语句执行通过之后,通过上面的查询语句仍然查询不到对应记录。...2查询出用户所有索引 select * from user_indexes 3、查询用户索引(非聚集索引): select * from user_indexes where uniqueness...='NONUNIQUE' 4、查询用户主键(聚集索引): select * from user_indexes where uniqueness='UNIQUE' 5、查询索引 select...cl where cl.constraint_name = 外键引用键名 9、查询所有列及其属性 方法一: select * from user_tab_columns where table_name

2.9K20

SQL学习笔记四(补充-1-1)之MySQL单查询补充部分:SQL逻辑查询语句执行顺序

阅读目录 一 SELECT语句关键字定义顺序 二 SELECT语句关键字执行顺序 三 准备和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字定义顺序 SELECT...逻辑查询测试语句 #查询来自杭州,并且订单数少于2客户。...ORDER BY total_orders DESC; 五 执行顺序分析 在这些SQL语句执行过程中,都会产生一个虚拟,用来保存SQL语句执行结果(这是重点),我现在就来跟踪这个虚拟变化,得到最终查询结果过程...,来分析整个SQL逻辑查询执行顺序和过程。...由于我测试SQL语句中并没有使用DISTINCT,所以,在该查询中,这一步不会生成一个虚拟

73820

SQL Server分区(二):添加、查询、修改分区数据

从以上代码中可以看出,我们一共在数据中插入了13条数据,其中第1至3条数据是插入到第1个物理分区;第4、5条数据是插入到第2个物理分区;第6至8条数据是插入到第3个物理分区;第9至11...当然,在查询数据时,也可以不用理会数据到底是存放在哪个物理上数据中。如使用以下SQL语句进行查询: select * from Sale 查询结果如下图所示: ?...在该图中可以看出,分区函数返回结果为2,也就是说,2010年10月1数据会放在第2个物理分区中。...SQL Server会自动记录从一个分区移到另一个分区中,如以下代码所示: --统计所有分区记录总数 select $PARTITION.partfunSale(SaleTime) as...分区编号,count(id) as 记录数 from Sale group by $PARTITION.partfunSale(SaleTime) --修改编号为1记录,时间改为2019年1

7K20

谈谈SQL查询中回对性能影响

10; 业务需要,LIKE 时候必须使用模糊查询,我当然知道这会导致全扫描,不过速度确实太慢了,直观感受,全扫描不至于这么慢!...我使用数据库是 PostgreSQL,不过它和 MySQL 差不多,也可以 EXPLAIN: SQL With LIMIT 如上所示:先按照 created_at 索引排序,再 filter 符合条件数据...EXPLAIN: SQL Without LIMIT 如上所示:去掉 limit 后,根本就没用上索引,直接全扫描,不过反而更快。...要想搞清楚缘由,你需要理解本例中 SQL 查询处理流程:当使用 limit 时,因为只是返回几条数据,所以优化器觉得采用一个满足 order by 索引比较划算;当不使用 limit 时,因为要返回所有满足条件数据...,就是返回原始中对应行数据,以便引擎进行再次过滤(比如本例中 like 运算),一旦回操作过于频繁,那么性能无疑急剧下降,全扫描没有这个问题,因为它就没用索引,所以不存在所谓「回」操作。

2.3K20

1-3 SQL建立关系型数据

1-3 SQL建立关系型数据 u 了解关系型数据库完整性基本理论 u 掌握通过SQL语句创建基本 u 掌握通过SQL语句修改基本模式结构 u 掌握通过SQL删除基本 1-3-1 关系型数据库完整性理论...SQL(Structured Query Language结构化查询化语言)不仅仅具有查询功能。...第五步:在弹出“添加”中将全部都选中,单击添加按钮后,全部添加到新建关系图之中,见图1-16所示。 ?...(2) 建立时候,还可以定义有关关系性约束性条件,这些关系性约束性条件被存入系统数据字典中。当用户操作数据库中表内数据时候,由DBMS自动检查该项操作是否违背这些关系性约束条件。...实验:修改基本SQL实验 --例1:向student中增加“入学时间”列,其数据类型为日期型  ALTER TABLE Student ADD Scome datetime; --例2年龄数据类型改成为短整型

1.3K10

spark sql简单查询千亿级库导致问题

一、问题现象 今天有客户咨询到我们,他们利用spark sql查询简单sql: select * from datetable limit 5; //假设名是datetable 结果报错内存溢出:...2.png 根据常理判断,简单 select * limit 不会造成内存溢出。...因此,我们用hive原生sql查询,发现不存在这个问题。 二、排查问题 经过分析,发现被查询数据量特别大,整个有1000多亿行数据。...一般这种海量数据大型数据,往往是做了多重分区。 经过查看,发现被查询数据是双重分区(也就是有两个分区字段)。dt是第一个分区字段,表示天; hour是第二个分区字段,表示小时。...三、验证结论 1、首先我们直接用spark sql查询: select * from datetable limit 5; 从日志可以查看出excutor在疯狂地扫描HDFS文件: 而且这些被扫描

5K40

SQL可以不懂,但间数据匹配(合并查询)这6种联接类型必须要理解!

只是因为没有具体数据,所以还是不太好理解而已,另外,如果了解过SQL(数据库操作语言)的话,就很容易理解这几种关系。 小勤:当然是不懂SQL啦,如果懂就不用问啦。...看概念和文字真的很难理解,而且,即使可能理解了,感觉上还是心里没底。 大海:现在有了Power Query,对于很多普通用户来说,不懂SQL也问题不大。...我们先看一下这两个情况,其中: 订单表里有一些数据是明细表里没有的 明细表里也有些数据是订单表里没有的 另外,我们后面操作时候基于订单去创建合并查询,然后选明细,所以这里订单叫左明细叫右...如下图所示: 接下来,我们两个数据都放到PQ里,因为我们只需要在PQ里观察各种联接类型结果,所以只需要以“仅创建连接”方式获取数据即可。...: 左外部:只要订单(左)里有的数据,结果表里都会有,但有些因为明细(右)里没有,所以匹配过来后会成为null(空值) 右外部:和左外部相反,即明细(右)里有的数据,结果表里都会有,但因为订单

1.3K20
领券