首页 > 数据库 >SQL语句_链表(上)

SQL语句_链表(上)

时间:2023-06-18 21:35:02浏览次数:52  
标签:语句 01 JOIN name 链表 2000 SQL OUTER store

说到连表查询,我们先了解下别名。别名可以用在表上,也可以用在表中参数名。即 SELECT "表格别名". "表中参数名" "表中参数别名" FROM “表格名”  "表格别名"  或 SELECT "表格别名". "表中参数名" AS "表中参数别名" FROM “表格名” AS "表格别名"  举个例子  SELECT SI.store_name STORE, SUM(SI.sales) Total Sales FROM Story_Info SI GROUP BY SI.store_name HAVING SUM(SI.sales) > 1000; 

STORE Total Sales
A 2000

 

Store_Info表:

store_name sales Date
A 500 01-01-2000
B 200 02-01-2000
C 1500 02-10-2000
D 1000 03-08-2000

Factory表:

factory_name store_name
FA A
FB B
FC C
FE E

链表查询,SQL语句中最基本的就是JOIN,可分为

INNER JOIN  两个表中,只匹配相同的列值所在行的数据。

SELECT * From Store_Info A INNER JOIN Factory B ON A.store_name = B.store_name 得出的结果:

store_name sales Date factory_name store_name
A 500 01-01-2000 FA A
B 200 02-01-2000 FB B
C 1500 02-10-2000 FC C


LEFT OUTER JOIN  返回左表的所有数据,右表中不能匹配的列值,其所在行使用空值

SELECT * FROM Store_Info A LEFT OUTER JOIN Factory B ON A.store_name = B.store_name 得出的结果:

store_name sales Date factory_name store_name
A 500 01-01-2000 FA A
B 200 02-01-2000 FB B
C 1500 02-10-2000 FC C
D 1000 03-08-2000    

 

LEFT OUTER JOIN - WHERE NULL  返回和右表不匹配的所有数据行

SELECT * FROM Store_Info A LEFT OUTER JOIN Factory B ON A.store_name = B.store_name WHERE B.store_name IS NULL  得出的结果:

store_name sales Date factory_name store_name
D 1000 03-08-2000    

 

RIGHT OUTER JOIN  返回右表的所有数据,左表中不能匹配的列值,其所在行使用空值

SELECT * FROM Store_Info A RIGHT OUTER JOIN Factory B ON A.store_name = B.store_name 得出的结果:

store_name sales Date factory_name store_name
A 500 01-01-2000 FA A
B 200 02-01-2000 FB B
C 1500 02-10-2000 FC C
      FE E

 

RIGHT OUTER JOIN - WHERE NULL  返回和左表不匹配的所有数据行

SELECT * FROM Store_Info A RIGHT OUTER JOIN Factory B ON A.store_name = B.store_name WHERE A.store_name IS NULL  得出的结果:

store_name sales Date factory_name store_name
      FE E

 

FULL OUTER JOIN  返回两个表的所有数据,如果匹配的列的值两个表都有,返回数据行,否则返回空值。

SELECT * From Store_Info A FULL OUTER JOIN Factory B ON A.store_name = B.store_name  得出的结果: 

store_name sales Date factory_name store_name
A 500 01-01-2000 FA A
B 200 02-01-2000 FB B
C 1500 02-10-2000 FC C
D 1000 03-08-2000    
      FE E

 

FULL OUTER JOIN -WHERE NULL  返回 INNER JOIN以外的数据行

SELECT * FROM Store_Info A FULL OUTER JOIN Factory B ON A.store_name = B.store_name WHERE A.store_name IS NULL OR B.store_name IS NULL  得出的结果:

store_name sales Date factory_name store_name
D 1000 03-08-2000    
      FE E

 

标签:语句,01,JOIN,name,链表,2000,SQL,OUTER,store
From: https://www.cnblogs.com/xiaocai84/p/17488227.html

相关文章

  • DataX在Windows上实现Mysql到Mysql同步数据以及配置多个job/多个表同步定时执行bat
    场景DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步:DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步_sqlserver数据同步工具_霸道流DataX-在Windows上实现postgresql同步数据到mysql:DataX-在Windows上实现postgres......
  • sql server 转移日志文件
    sqlserver转移日志文件要将SQLServer的日志文件转移到不同的位置,你可以按照以下步骤进行操作:1.首先,通过执行以下查询,获取当前数据库的日志文件的逻辑名称(LogicalName):  ```sql  USEYourDatabaseName;  SELECTname,physical_nameFROMsys.master_filesWHEREt......
  • 【mysql】1378. 使用唯一标识码替换员工ID
    题目:Employees表:±--------------±--------+|ColumnName|Type|±--------------±--------+|id|int||name|varchar|±--------------±--------+id是这张表的主键。这张表的每一行分别代表了某公司其中一位员工的名字和ID。EmployeeUNI表:±--------......
  • 必知必会:MySQL
    复制表结构和其数据:createtabletable_name_newasselect*fromtable_name_old表结构相同,复制表数据:insertintotable_name_newselect*fromtable_name_old表结构不同,复制表数据:insertintotable_name_new(column1,column2...)selectcolumn1,column2........
  • MySQL 优化
    SQL优化是提高MySQL数据库性能和查询效率的过程。下面是一些常见的SQL优化技巧:优化表结构:合理的表结构设计有助于提高性能。特别是,列是否具有正确的数据类型,每个表是否具有符合业务需求的列?例如,执行频繁更新的业务通常表比较多,列很少,而分析大量数据的业务通常表比较少,列很......
  • PostgreSQL
    PostgreSQLPostgreSQL的介绍开源的关系型数据库官方社区网址:https://www.postgresql.org/中文社区网址:http://www.postgres.cn/docs/12/1.支持大部分SQL标准并且提供了许多现代特性:复杂查询外键触发器可更新视图事务完整性多版本并发控2.P......
  • MySQL数据库主从搭建(详细图文)
    文章目录前言一、主从搭建准备二、Master1.修改mysql配置文件2.创建授权用户3.查看日志和宿主机master的状态三、slave操作1.修改宿主机的server-id2.进入mysql执行相关命令3.UUID的相关配置四、测试前言主从原理:MySQL之间数据复制的基础是二进制日志文......
  • 在执行建表语句时提示:Row size too large (> 8126)
    在执行建表语句时提示:在mysqld节点下添加以下配置,然后重启mysql[mysqld]innodb_log_file_size=500Minnodb_log_buffer_size=800Minnodb_strict_mode=0 ......
  • mysql记录多行结果的小实验
    通过#保存多个记录,比如,下线开始时间#下线多少天,下线结束时间如果想要做数据计算可以通过SUBSTRING_INDEX(offline_record,'#',3)拿到对应的结果。比如我要对比获取第三个的所有数据,现在时间是2023-06-1814:20:21超过这个时间的就要离线了。我要查询到所有的数据。SELECT*......
  • Linux安装mysql登录问题-适用root强制登录
    安装mysql后,常规方法登录出现错误提示。直接:/etc/my.cnf添加以下加粗的三句:#cacheinMySQL.Startat70%oftotalRAMfordedicatedserver,else10%.#innodb_buffer_pool_size=128M##Removeleading#toturnonaveryimportantdataintegrityoption:loggi......