(十一)数据查询语言SQL

发布于 2021-09-16 00:20

掌握:数据库及SQL基本概念 
(1) 数据库的分类 
(2) SQL的基本语法 
应用:SQL的实际应用 
(1)了解SQL在数据分析中的应用 
(2)学会使用SQL实现数据分析

01

数据库基础





1)EXCEL
优点:简单易学、直观、方便更新、筛选及做简单的统计;
缺点:无法支持复杂筛选、不方便做关联、不方便做统计、数据量大时响应缓慢 。
2)数据库

环境搭建

  • MYSQL官方下载地址:

    https://www.mysql.com/downloads/ 

  • NAVICAT官方下载地址:

    https://www.navicat.com.cn/ 

  • PHPSTUDY官方下载地址:

    https://www.xp.cn/download.html

02

SQL查询基础






查询数据

select  字段列表  from 表名;
1)、处理重复数据
select distinct 字段列表  from 表名;

2)、排序返回结果

select  字段列表  from 表名 order by 列名 ASC,列名DESC
ASC为正序;
DESC为倒序
3)、指定要返回的记录数量
limit一般在两种情况下会使用: 
  • 想随便查看一下表中的数据;

  • 一般与ORDER BY关键字配合使用,返回按某些字段排序后的前几行;

SQL select top、limit、rownum
select  字段列表  from 表名 limit 数字;
select  字段列表  from 表名 order by 列名 desc limit 数字

4)、指定要返回中间行

select 字段列表 from 表名 limit n,m(从第n行开始,返回m行记录);

select 字段列表 from 表名 limit m offset n。

03

过滤数据





where

select  字段列表  from 表名 where 过滤条件(字段列名、操作符、限定值)。
1)、常用的操作符

  • select  字段列表  from 表名 where 过滤条件 between 10 and 20(前面的值小于后面的值);


  • select  字段列表  from 表名 where 过滤条件 in (条件1、2、3、4);

  • select  字段列表  from 表名 where 过滤条件 in (select语句);

  • like通配符

  • select  字段列表

    from 表名

    where 过滤条件 like 通配符

  • 通配符:"%","_"。


子查询

概念:子查询是一种嵌套在其他SQL 查询的where语句中的查询,
1)子查询用于为:
  • 主查询返回其所需数据;
  • 对检索数据进行进一步的限制。
2)规则
  • 子查询必须带括号
  • 子查询的select子句中只能有一个列
  • 子查询不能使用order by;
  • 子查询,作为增强,放在from前面;作为筛选条件的加强,放在where后面。
3)exists 返回的值是bool值 true或false;

组合查询

union all:合并不去重;
union:去重。
同样数据类型和同样数列表达式,杂糅在一起。

统计函数

select后面直接跟函数
select count(*) from 表名;

分组汇总统计

1)、group by
  • group by 语句通常与集合函数(count、max、min、sum、AVG)一起使用,以按一个或多个列对结果进行分组;

  • group by 跟在where 后面;


select  字段列表

from 表名
where 过滤条件

group by  字段

过滤分组结果

  • having子句使你能够指定条件,从而控制查询结果中哪些组可以出现在最终结果里面;
  • where 子句对被选择的施加条件,而having子句则对group by 子句所产生的施加条件。
示例
select class_id,avg(score)
from student
where score>80
group by class_id
having avg(score)>90
order by avg(score) desc;

1)常见函数分类
2)常见数值函数
3)常见文本函数
4)常见日期和时间函数
13、SELECT子句顺序

连接表

内连接(inner join) 
左连接(left join) 
右连接(right join) 
全连接(full join

Oracle数据库支持full join;
mySQL不支持full join ,但仍然可以通过左外链接+union+右外链接实现。
这四种连接的 SQL 语句如下: 
SELECT * from student INNER JOIN teacher ON student.teacher_id = teacher.teacher_id; 
SELECT * from student LEFT JOIN teacher ON student.teacher_id = teacher.teacher_id; 
SELECT * from student RIGHT JOIN teacher ON student.teacher_id = teacher.teacher_id; 
SELECT * from student FULL JOIN teacher ON student.teacher_id = teacher.teacher_id;

视图


常见的使用场景:
1:仅提供需要的数据;
2:对特定的用户仅开放特定的数据,达到保护敏感数据的目的,提升了数据安全性;
3:仅筛选需要的数据 
4:简化复杂的操作 
5:重新格式化出新的字段 
6:使用计算表达式生成新的字段 
7:屏蔽底层实现逻辑及频繁的变更 
8:合并多个分离的子表
本章内容是我的个人学习笔记,如有不足处,希望大家可以一起交流学习,一起变强大。
650时光
每天坚持系统学习:互联网行业知识(数据产品经理)

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材