SQL语句多表联合查询
本周之前,对于数据库的使用仅限于简单的增删改查(insert、delete、updata、select),而这一周由于工作需要,对一些sql函数、sql语句多表联合查询、T-SQL语句基本语法、存储过程编写等有了简单的学习,现将一周所学进行总结、归纳。
本文主要总结sql语句中的 常用sql函数和多表联合查询知识。直接通过实例进行讲解。
本文学习过程中主要参考了:http://www.w3school.com.cn/sql/sql_where.asp
设计到的表有:
表1: Orders
O_Id OrderDate OrderPrice CustomerName
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 1000 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
表2:Customer
CustomerID CustomerName
1 Bush
2 Carter
3 Adams
1、利用distinct去除重复
基本语法
SELECT DISTINCT 列名称 FROM 表名称
SELECT distinct CustomerName FROM Orders --distinct 去除重复
结果:
CustomerName
Adams
Bush
Carter
2、GROUP BY 提取组合 并去重
SELECT CustomerName, OrderPrice
FROM Orders
GROUP BY CustomerName, OrderPrice
结果:
CustomerName OrderPrice
Adams 2000
Bush 700
Bush 1000
Carter 100
Carter 1600
3、GROUP BY + COUNT 提取组合 计算重复
SELECT CustomerName, OrderPrice, count(*) as 重复数
FROM Orders
GROUP BY CustomerName, OrderPrice
结果:
CustomerName OrderPrice 重复数
Adams 2000 1
Bush 700 1
Bush 1000 2
Carter 100 1
Carter 1600 1
4、COUNT(1) 和 GROUP BY
SELECT CustomerName, COUNT(1) AS 重复数
FROM Orders
GROUP BY CustomerName --记录Customer 每种值的记录数
结果:
CustomerName 重复数
Adams 1
Bush 3
Carter 2
5、sum 和 GROUP BY
SELECT CustomerName, sum(OrderPrice) AS sumOrderPrice
FROM Orders
GROUP BY CustomerName --记录Customer 每种值的对应的OrderPrice的累加和
结果:
CustomerName sumOrderPrice
Adams 2000
Bush 2700
Carter 1700
6、AVG 和 GROUP BY 的多表联合查询 不加where
SELECT B.CustomerID, A.CustomerName, AVG(OrderPrice) AS 平均值
FROM Orders AS A,Customer AS B
GROUP BY B.CustomerID, A.CustomerName
结果: 可以看出 Groupby 将 B.CustomerID (1,2,3) 和 A.CustomerName(Adams、Bush、Carter ) 进行的全部任意组合, 但平均值依然按Orders表来求的
CustomerID CustomerName 平均值
1 Adams 2000
1 Bush 900
1 Carter 850
2 Adams 2000
2 Bush 900
2 Carter 850
3 Adams 2000
3 Bush 900
3 Carter 850
7、AVG 和 GROUP BY 的多表联合查询 加上where
SELECT B.CustomerID, A.CustomerName, AVG(OrderPrice) AS 平均值
FROM Orders AS A,Customer AS B
WHERE A.CustomerName = B.CustomerName
GROUP BY B.CustomerID, A.CustomerNme
结果:
CustomerID CustomerName 平均值
1 Bush 900
2 Carter 850
3 Adams 2000
SQL语句多表联合查询相关推荐
- 【SQL】SQL语句多表联合查询
SQL语句多表联合查询 CREATE TABLE orders( id int not null primary key identity(1,1), customerName varchar(100 ...
- SQL语句多表关联查询语法
**sql语句多表关联查询语法** 一.外连接 1.左连接 left join 或 left outer join SQL语句:select * from student left join scor ...
- SQL server多表联合查询
1. 外连接可分为:左连接.右连接.完全外连接. a. 左连接 left join或 left outer join SQL语句:select * from student left join c ...
- sql 三个表联合查询(三表左联查询)
关于在一个表中显示三个数据库表字段的查询. 首先要找的三个表中字段的对应关系,以哪一张表为主表(其他表字段增添这个主表上)作为显示页面上. 上代码 查询主表:csb_accessories_bjgh的 ...
- mysql简单的sql语句单表分组查询
-- 按品牌分组,获取每组商品总金额 SELECT brand,SUM(price) FROM product GROUP BY brand; -- 对于金额大于4000 的商品 按品牌分组,获取每组 ...
- 第四篇:Mysql查询-多表联合查询-及子查询
mysql查询语句 多表联合查询 几子查询 1,单表查询:select * from 表名; eg: select * from t1; 2,按条件查询: select 字段1,字段2,字段n... ...
- mysql 多表联查语句优化_?多表联合查询SQL语句优化
11.27 多表联合查询的优化方式,优化后的SQL及分析 优化方式: 1.尽量不用'*' 2.小表作驱动 3.大表建索引 原本SQL语句: select * from order left join ...
- 多表联合查询的SQL语句
多表联合查询SQL语句一: select dpt.`dept_namee`,dpt.`principal_name`,dpt.`unit_type`,info.`sys_name`,info.`dep ...
- 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。
多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...
最新文章
- socket通信——通过Udp传输方式,将一段文字数据发送出去
- 互联网产品设计的“马化腾法则”
- java 枚举使用简书_java枚举类型使用和详解
- fastjson 使用总结
- 算法那么重要,你还不会?ACM金牌选手教你学习数据结构与算法
- Apk文件结构, Dex反编译
- 2021博客之星,请帮忙投上宝贵一票
- C语言指针定义变量方式
- 【应用】Properties类与Properties配置文件的读写
- NameNode之数据块管理
- 直播:CSDN 联合腾讯安全上线公开课,分享云原生安全技术理解和应用实践
- tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤
- Padavan设置无线中继
- 工业互联网平台TOP15发布!附15个平台详细介绍!
- 数据流图DFD的画法
- php实现积分加头像排行榜,PHPCMS首页GET调用标签会员积分与头像前十名
- Android APP的签名
- Webview--如何让加载进来的页面自适应手机屏幕分辨率
- 免费苹果CMS影视站采集器影视站SEO优化教程
- 6000字总结MySQL最基础的增删查改命令
热门文章
- C#-WebClient
- ip68级防水可以泡多久_拥有IP68的手机到底能泡水多久,看AGM X3成功挑战1小时防水!...
- 【图书推荐】云计算热潮来袭,你还能如此淡定吗?
- cv::cuda与CUDA的NPP库、距离变换和分水岭并行版本尝试
- vue项目webpack打包配置
- js中[object,object]对象转json
- linux命令查看时间属于哪个地区,详解Linux下用date命令查看和计算包含时区的时间戳...
- 企业数字化转型到底该怎么做?
- mark小程序思维图
- 第 3 章 	注释、关键字、标识符