目录

  • 1 第一单元  SQL基本命令
    • 1.1 学习系统环境搭建
    • 1.2 新建课程目录
    • 1.3 第一课时   SQL 简介
    • 1.4 第二课时  ​SQL 语法
    • 1.5 第三课时 MySQL 列的约束
    • 1.6 第四课时  SQL SELECT 语句
    • 1.7 第五课时  SQL WHERE 子句(1)
    • 1.8 第六课时  ​SQL WHERE 子句(2)
    • 1.9 第七课时  SQL AND & OR 运算符
    • 1.10 第八课时  ​SQL ORDER BY 关键字
    • 1.11 第九课时  SQL INSERT INTO 语句
    • 1.12 第十课时  SQL DELETE 语句
    • 1.13 第十一课时  SQL UPDATE 语句
  • 2 第二单元  SQL进阶
    • 2.1 第一课时  ​SQL SELECT TOP 子句
    • 2.2 第二课时  SQL LIKE 操作符
    • 2.3 第三课时 SQL 通配符
    • 2.4 第四课时 SQL IN 操作符
    • 2.5 第五课时 SQL BETWEEN 操作符
    • 2.6 第六课时 SQL 别名
    • 2.7 第七课时 SQL 连接(JOIN)
    • 2.8 第八课时 SQL INNER JOIN 关键字
    • 2.9 第九课时 SQL LEFT JOIN 关键字
    • 2.10 第十课时 SQL RIGHT JOIN 关键字
    • 2.11 第十一课时 ​SQL FULL OUTER JOIN 关键字
    • 2.12 第十二课时 SQL UNION 操作符
    • 2.13 第十三课时 SQL SELECT INTO 语句
    • 2.14 第十四课时 SQL INSERT INTO SELECT 语句
    • 2.15 第十五课时 SQL CREATE DATABASE 语句
    • 2.16 第十六课时 SQL CREATE TABLE 语句
    • 2.17 第十七课时 SQL 约束(Constraints)​
    • 2.18 第十八课时 SQL NOT NULL 约束
    • 2.19 第十九课时 ​SQL UNIQUE 约束
    • 2.20 第二十课时 SQL PRIMARY KEY 约束
    • 2.21 第二十一课时 SQL FOREIGN KEY 约束
    • 2.22 第二十二课时 SQL CHECK 约束
    • 2.23 第二十三课时 SQL DEFAULT 约束
    • 2.24 第二十四课时 SQL CREATE INDEX 语句
    • 2.25 第二十五课 SQL 撤销索引、撤销表以及撤销数据库
    • 2.26 第二十六课时 SQL ALTER TABLE 语句
    • 2.27 第二十七课时 SQL AUTO INCREMENT 字段
    • 2.28 第二十八课时 SQL 视图(Views)
    • 2.29 第二十九课时 SQL Date 函数
    • 2.30 第三十课时 SQL NULL 值
    • 2.31 第三十一课时 SQL NULL 函数
    • 2.32 第三十二课时 ​SQL 通用数据类型
    • 2.33 第三十三课时 SQL 用于各种数据库的数据类型
  • 3 第三单元  SQL函数
    • 3.1 第一课时 SQL 函数
    • 3.2 第二课时 SQL AVG() 函数
    • 3.3 第三课时 SQL COUNT() 函数
    • 3.4 第四课时 SQL FIRST() 函数
    • 3.5 第五课时 SQL LAST() 函数
    • 3.6 第六课时 SQL MAX() 函数
    • 3.7 第七课时 SQL MIN() Function
    • 3.8 第八课时 SQL SUM() 函数
    • 3.9 第九课时 SQL GROUP BY 语句
    • 3.10 第十课时 SQL HAVING 子句
    • 3.11 第十一课时 SQL EXISTS 运算符
    • 3.12 第十二课时 SQL UCASE() 函数
    • 3.13 第十三课时 SQL LCASE() 函数
    • 3.14 第十四课时 SQL MID() 函数
    • 3.15 第十五课时 SQL LEN() 函数
    • 3.16 第十六课时 SQL ROUND() 函数
    • 3.17 第十七课时 SQL NOW() 函数
    • 3.18 第十八课时 SQL FORMAT() 函数
  • 4 附录
    • 4.1 SQL 命令速查
    • 4.2 SQL 主机
    • 4.3 MySQL 导出数据
    • 4.4 MySQL 导入数据
    • 4.5 MySQL 函数速查
    • 4.6 MySQL 运算符速查
  • 5 学生论坛
    • 5.1 杨汶茜带我们学SQL
    • 5.2 冯凯教我们学技术
    • 5.3 闫心羽的普通话很标准
    • 5.4 我也来试试
  • 6 基于SQL的会计核算流程
    • 6.1 会计核算流程梳理
      • 6.1.1 传统会计核算流程分析
      • 6.1.2 基于SQL的会计核算流程分析
    • 6.2 基于SQL的会计核算案例
      • 6.2.1 案例企业经济业务资料
      • 6.2.2 SQL会计核算流程实现
  • 7 基于SQL的财务分析案例
    • 7.1 收集整理企业财报数据
    • 7.2 创建数据库及财报数据表
      • 7.2.1 创建财报数据库
      • 7.2.2 创建资产负债表
      • 7.2.3 创建利润表
      • 7.2.4 企业财务效率分析
    • 7.3 企业财务效率分析
      • 7.3.1 偿债能力分析
      • 7.3.2 营运能力分析
      • 7.3.3 盈利能力分析
      • 7.3.4 发展能力分析
      • 7.3.5 财务效率综合评价
    • 7.4 企业财务综合分析
      • 7.4.1 销售净利率
      • 7.4.2 总资产周转率
      • 7.4.3 总资产净利率
      • 7.4.4 权益乘数
      • 7.4.5 净资产收益率
      • 7.4.6 杜邦体系综合分析
  • 8 视图
    • 8.1 创建与使用视图
    • 8.2 更新视图
      • 8.2.1 在视图中插入数据
      • 8.2.2 利用视图更新数据
      • 8.2.3 利用视图删除数据
    • 8.3 删除视图
  • 9 数据库规范化
    • 9.1 数据库规范化的基本原理及方法
      • 9.1.1 数据库设计规范化级别
      • 9.1.2 规范化的步骤及其实现
      • 9.1.3 规范化的优点与应用考量
      • 9.1.4 关于反规范化
    • 9.2 数据库规范化应用案例
      • 9.2.1 存货管理库建表规范化
      • 9.2.2 计算发出存货单价
      • 9.2.3 查询存货本期出库完整信息
      • 9.2.4 规范化案例分析
第八课时 SQL INNER JOIN 关键字

SQL INNER JOIN 关键字

INNER JOIN 关键字在表中存在至少一个匹配时返回行。


SQL INNER JOIN 语法

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)

FROM table1

JOIN table2

ON table1.column_name=table2.column_name;

注释:INNER JOIN 与 JOIN 是相同的。

SQL INNER JOIN

演示数据

下面是选自 "Websites" 表的数据:

id name          url                                      alexa   country

1  Google       https://www.google.cn/       1        USA

2  淘宝            https://www.taobao.com/   13      CN 

3  菜鸟教程     http://www.runoob.com/    4689  CN 

4  微博            http://weibo.com/                20      CN 

5  Facebook   https://www.facebook.com/ 3    USA

7stackoverflow http://stackoverflow.com/ 0      IND

下面是 "access_log" 网站访问记录表的数据:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)


SQL INNER JOIN 实例

下面的 SQL 语句将返回所有网站的访问记录:

命令:

SELECT Websites.name, 

access_log.count, access_log.date

FROM Websites

INNER JOIN access_log

ON Websites.id=access_log.site_id

ORDER BY access_log.count;

返回:

 name                 country     date

   淘宝                    10                2016-05-14

   微博                    13               2016-05-15

   Google              45               2016-05-10

   菜鸟教程            100              2016-05-13

   菜鸟教程            201             2016-05-17

   Facebook          205             2016-05-14

   菜鸟教程            220             2016-05-15

   Google              230             2016-05-14

  Facebook          545             2016-05-16

注释:INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Websites" 表中的行在 "access_log" 中没有匹配,则不会列出这些行。



在使用 join 时,on 和 where 条件的区别如下:

  •  1、 on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。

  •  2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

详细内容可以查看:SQL JOIN 中 on 与 where 的区别