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

学习日志——SQL几种表连接和连接效率

表连接 交叉连接查询(cross join) 多个表联合查询,这种方式如果不添加where条件的话会产生笛卡儿积 但是添加了where条件的话又相当于inner join 内连接 SELECT *...也就是交集 SELECT * FROM 表A inner join 表B on A.xx=B.xx 外连接 (outer join) 外连接分为 left join 和right join。...SELECT * FROM 表A left join 表B on A.xx=B.xx SELECT * FROM 表A right join 表B on A.xx=B.xx 全连接...SELECT * FROM 表A full join 表B on A.xx=B.xx 但是在mysql当中是不支持 full join的 需要通过左外连接+union + 右外连接实现。...同时:inner join > outer join > full join 相关资料 图解 SQL 中各种连接 JOIN 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接 --

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

    学数据库还不会Select,SQL Select详解,单表查询完全解析?

    查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下。 一、数据查询的语句格式 SELECT [ALL|DISTINCT] [, ....]...,NOT BETWEEN AND 确定集合 IN,NOT IN 字符匹配 LIKE,NOT LIKE 空 值 IS NULL,IS NOT NULL 多重条件(逻辑运算) AND,OR,NOT 可以连接上面表中的所有运算符...) 函数返回指定列的值的数目(NULL 不计入): SELECT COUNT(column_name) FROM table_name SQL COUNT(*) 语法 COUNT(*) 函数返回表中的记录数...SELECT COUNT(DISTINCT Sno) FROM SC 计算总和 SQL SUM() 语法 SELECT SUM(column_name) FROM table_name 开头举过例子,...SQL AVG() 语法 SELECT AVG(column_name) FROM table_name 例 计算1号课程的学生平均成绩。

    97030

    SQL 简介:如何使用 SQL SELECT 和 SELECT DISTINCT

    SELECT 语句是 SQL 中最常见的操作,因为它指定要从数据库返回哪些数据。SELECT 语句及其意义SELECT 语句在 SQL 中经常称为数据查询语言 (DQL)。...SELECT 命令与 FROM 子句一起操作,从数据库表中检索或提取信息,并以有组织和可读的方式呈现它。查询中的 SELECT 关键字说明要将哪些行和列显示为查询的结果集。...使用 SELECT 语句,您可以指定与您希望查询返回的表中的行相匹配的值。...SELECT 语句的基本语法如下所示:SELECT 第 1 列,第 2 列,... FROM source_table;要在结果集中显示表中的所有列,请在 SELECT 之后使用符号“*”。...组合 SQL SELECT 和 INSERT 语句包含嵌套 SELECT 语句的 INSERT 语句允许您使用 SELECT 命令的结果集中的一行或多行快速填充表。

    1.2K00

    sql server 连接查询_连表查询语句

    SQL的连表查询 2017年08月31日 15:58:49 SQL的连表查询 连接查询包括合并、内连接、外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要。...(内连接),也成为自然连接 作用:根据两个或多个表中的列之间的关系,从这些表中查询数据。...3、外连接 与内连接相比,即使没有匹配行,也会返回一个表的全集。 外连接分为三种:左外连接,右外连接,全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。...2)RIGHT JOIN(right outer join)右外连接(右连接) 右外连接保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行。第一个表相应空行被入NULL值。...4、CROSS JOIN(交叉连接) 交叉连接。交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。 简单查询两张表组合,这是求笛卡儿积,效率最低。

    3.4K10

    SQL命令 SELECT(三)

    这包括对数字的一元操作(-Age),算术操作(Age+5),连接('USA:'||Home_State),数据类型CAST操作,SQL排序函数(%SQLUPPER(Name)或%SQLUPPER Name...如果指定单个table-ref,则从该表或视图检索指定的数据。 如果指定多个表引用,SQL将对这些表执行连接操作,将它们的数据合并到一个结果表中,从这个结果表中检索指定的数据。...如果指定了多个table-ref,可以用逗号或显式连接语法关键字分隔这些表名。...可以使用$SYSTEM.SQL.Security.CheckPrivilege()方法来确定是否对该表或视图具有SELECT权限。...查询不需要知道FROM子句中指定的表是分片的还是非分片的。 同一个查询可以访问分片表和非分片表。 查询可以包括分片表和非分片表之间的连接。 分片表使用CREATE table命令定义。

    2.2K10

    SQL命令 SELECT(二)

    SQL命令 SELECT(二) select-item 这是所有SELECT语句的必选元素。 通常,选择项指的是FROM子句中指定的表中的一个字段。...这个列可以是单个表字段(SELECT Name)的值,也可以是作为单个列返回的多个表字段的值,可以使用连接(SELECT Home_City||Home_State)或指定容器字段(SELECT Home...子查询可以使用隐式连接(箭头语法)。 子查询不能使用星号语法,即使在子查询中引用的表只有一个数据字段。 子查询的一个常见用法是指定不受GROUP BY子句约束的聚合函数。...这被称为隐式连接。 在下面的示例中,示例。 Employee表包含Company字段,其中包含Sample中对应公司名称的RowID。 公司表。...SQL函数: SELECT Name,$LENGTH(Name) FROM Sample.Person SQL case转换函数: SQL case转换函数: 一个XMLELEMENT、XMLFOREST

    1.9K10

    SQL命令 SELECT(四)

    SQL命令 SELECT(四) WHERE子句 WHERE子句限定或取消查询选择中的特定行。 符合条件的行是那些条件表达式为真的行。...WHERE子句可以使用=(内部连接)符号连接操作符指定两个表之间的显式连接。 WHERE子句可以使用箭头语法(- >)操作符在基表和来自另一个表的字段之间指定隐式连接。...和动态SQL示例 嵌入式SQL和动态SQL可用于从ObjectScript程序中发出SELECT查询。...ClassMethod Select2() { n SQLCODE,%ROWCOUNT &sql( SELECT Home_State, Name, Age...下面的动态SQL示例首先测试所需的表是否存在,并检查当前用户对该表的SELECT特权。 然后执行查询并返回结果集。 它使用WHILE循环对结果集的前10条记录重复调用%Next方法。

    1.4K30

    SQL命令 SELECT(一)

    SQL命令 SELECT(一) 从数据库中的一个或多个表中检索行。...多个表可以指定为逗号分隔的列表或与ANSI连接关键字关联。 可以指定任何表或视图的组合。...如果在这里在两个表引用之间指定逗号, IRIS将对表执行CROSS JOIN,并从JOIN操作的结果表中检索数据。 如果在两个表引用之间指定ANSI连接关键字, IRIS将执行指定的连接操作。...在更复杂的查询中,SELECT可以检索列、聚合和非列数据,可以使用连接从多个表检索数据,也可以使用视图检索数据。 SELECT还可以用于从SQL函数、宿主变量或字面量返回值。...在SQL中,对于任何引用表数据的SELECT,都需要一个带有有效表引用的FROM子句。 对于不访问表数据的SELECT, FROM子句是可选的。

    5.3K10

    sql 表连接on后面加where和and的区别

    testB values(2,11); insert into testB values(3,12); insert into testB values(4,13); commit on后面加and select...* from testA a left join testB b on a.id = b.id and b.age=10 on后面加where select * from testA a left...join testB b on a.id = b.id where b.age=10 on 是用于消除笛卡儿积的,表连接时不加on会报错,left join语句会从左表那里返回所有的行,即使在右表中没有匹配的行...,on后面接and也会兼顾左连接,不管and 后面接什么内容,左表数据都会全部展示 下图语句由于a.name =10在testA没有匹配数据,所以与其关联的testB也匹配不到数据。...select * from testA a left join testB b on a.id = b.id and a.name='10' 使用where就是对连接后的结果集进行条件筛选 select

    1.5K10

    select top语句 mysql_SQL SELECT TOP 语句

    SELECT TOP 子句用于规定要返回的记录的数目。 SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。 注释:并非所有的数据库系统都支持 SELECT TOP 子句。...SQL Server / MS Access 语法 SELECT TOP number|percent column_name(s) FROM table_name; MySQL 和 Oracle 中的...SQL SELECT TOP 是等价的 MySQL 语法 SELECT column_name(s) FROM table_name LIMIT number; 实例 SELECT * FROM Persons...TOP 实例 下面的 SQL 语句从 “Customers” 表中选取头两条记录: SELECT TOP 2 * FROM Customers; SQL SELECT TOP PERCENT 实例 下面的...SQL 语句从 “Customers” 表中选取前面 50% 的记录: SELECT TOP 50 PERCENT * FROM Customers; 发布者:全栈程序员栈长,转载请注明出处:https

    2.2K20

    BI-SQL丨SELECT

    那么学习SQL,该从哪下手呢? 如果是没接触过SQL的小伙伴,对于这个问题肯定是一头雾水,但是接触过SQL的小伙伴都知道,学习SQL的第一步,就是学会使用SELECT函数。...SELECT SELECT,在SQL函数中的地位非常高,可以说是使用率百分之百的函数,其地位相当于DAX函数中的CALCULATE函数一样,是一个万金油的存在。...用途 SQL中,SELECT函数通常用来从表中选取数据,并存储到一个结果集中,也可以用来生成新的表或者View。 而在PowerBI中,我们可以通过SELECT函数从数仓中抽取我们需要的数据。...基础语法 语法1: SELECT 列名称 FROM 表名称 语法2: SELECT * FROM 表名称 这里有几个注意事项: SELECT中的列名称或者表名称不需要加'',这点与PowerBI的DAX...例如:SELECT等效于select; 如果输入具体的列名称,那么就是只要这一列,如果使用*,那么则抽取的是整张表。

    47530
    领券