本周之前,对于数据库的使用仅限于简单的增删改查(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语句多表联合查询相关推荐

  1. 【SQL】SQL语句多表联合查询

    SQL语句多表联合查询 CREATE TABLE orders( id int not null primary key identity(1,1), customerName varchar(100 ...

  2. SQL语句多表关联查询语法

    **sql语句多表关联查询语法** 一.外连接 1.左连接 left join 或 left outer join SQL语句:select * from student left join scor ...

  3. SQL server多表联合查询

    1. 外连接可分为:左连接.右连接.完全外连接. a.  左连接  left join或 left outer join SQL语句:select * from student left join c ...

  4. sql 三个表联合查询(三表左联查询)

    关于在一个表中显示三个数据库表字段的查询. 首先要找的三个表中字段的对应关系,以哪一张表为主表(其他表字段增添这个主表上)作为显示页面上. 上代码 查询主表:csb_accessories_bjgh的 ...

  5. mysql简单的sql语句单表分组查询

    -- 按品牌分组,获取每组商品总金额 SELECT brand,SUM(price) FROM product GROUP BY brand; -- 对于金额大于4000 的商品 按品牌分组,获取每组 ...

  6. 第四篇:Mysql查询-多表联合查询-及子查询

    mysql查询语句 多表联合查询 几子查询 1,单表查询:select * from 表名; eg:  select * from t1; 2,按条件查询: select 字段1,字段2,字段n... ...

  7. mysql 多表联查语句优化_?多表联合查询SQL语句优化

    11.27 多表联合查询的优化方式,优化后的SQL及分析 优化方式: 1.尽量不用'*' 2.小表作驱动 3.大表建索引 原本SQL语句: select * from order left join ...

  8. 多表联合查询的SQL语句

    多表联合查询SQL语句一: select dpt.`dept_namee`,dpt.`principal_name`,dpt.`unit_type`,info.`sys_name`,info.`dep ...

  9. 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。

    多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...

最新文章

  1. socket通信——通过Udp传输方式,将一段文字数据发送出去
  2. 互联网产品设计的“马化腾法则”
  3. java 枚举使用简书_java枚举类型使用和详解
  4. fastjson 使用总结
  5. 算法那么重要,你还不会?ACM金牌选手教你学习数据结构与算法
  6. Apk文件结构, Dex反编译
  7. 2021博客之星,请帮忙投上宝贵一票
  8. C语言指针定义变量方式
  9. 【应用】Properties类与Properties配置文件的读写
  10. NameNode之数据块管理
  11. 直播:CSDN 联合腾讯安全上线公开课,分享云原生安全技术理解和应用实践
  12. tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤
  13. Padavan设置无线中继
  14. 工业互联网平台TOP15发布!附15个平台详细介绍!
  15. 数据流图DFD的画法
  16. php实现积分加头像排行榜,PHPCMS首页GET调用标签会员积分与头像前十名
  17. Android APP的签名
  18. Webview--如何让加载进来的页面自适应手机屏幕分辨率
  19. 免费苹果CMS影视站采集器影视站SEO优化教程
  20. 6000字总结MySQL最基础的增删查改命令

热门文章

  1. C#-WebClient
  2. ip68级防水可以泡多久_拥有IP68的手机到底能泡水多久,看AGM X3成功挑战1小时防水!...
  3. 【图书推荐】云计算热潮来袭,你还能如此淡定吗?
  4. cv::cuda与CUDA的NPP库、距离变换和分水岭并行版本尝试
  5. vue项目webpack打包配置
  6. js中[object,object]对象转json
  7. linux命令查看时间属于哪个地区,详解Linux下用date命令查看和计算包含时区的时间戳...
  8. 企业数字化转型到底该怎么做?
  9. mark小程序思维图
  10. 第 3 章 注释、关键字、标识符