淘宝用户行为分析及可视化(阿里天池简单实践学习项目)
一、数据导入
- 数据来源:阿里天池
- 数据导入
- 将下载的
csv
文件导入MySQL
- 将下载的
基于spss的杭州市计算机主流语言就业招聘岗位情况分析 (课程设计)
S 使用python爬虫工具爬取了招聘网站上程序员就业几个方向(java、python、C++、前端、php、大数据)共2000余条招聘信息,使用SPSS对于岗位关键字进行关联分析、聚类分析,bingshi
T
A
R
3 4 5 6
a 4 红
b 5 蓝
c 6 红
d 3蓝
(x + 15)/30 - (x+105)/30
=15/30-105/30
假设 $f(n)$ 表示有 $n$ 粒糖时的不同吃法数量,那么可以考虑最后一天吃多少粒糖来分类讨论。如果最后一天吃了 $k$ 粒糖,那么前 $n-k$ 天就相当于吃完了 $n-k$ 粒糖,有 $f(n-k)$ 种不同的吃法。因为最后一天至少要吃一粒糖,所以 $k$ 可以从 1 到 $n$ 枚举,这样就可以得到递推式:
�(�)=∑�=1��(�−�)f(n)=k=1∑n**f(n−k)
边界条件是 $f(0)=1$,因为不吃糖也算一种吃法。用递推式可以依次求出 $f(1)$,$f(2)$,$\cdots$,$f(10)$,其中 $f(10)$ 就是最终的答案。
具体计算过程如下:
�(0)=1�(1)=1+�(0)=2�(2)=1+�(1)=3�(3)=1+�(2)+�(1)=6�(4)=1+�(3)+�(2)+�(1)=11�(5)=1+�(4)+�(3)+�(2)+�(1)=21�(6)=1+�(5)+�(4)+�(3)+�(2)+�(1)=43�(7)=1+�(6)+�(5)+�(4)+�(3)+�(2)+�(1)=85�(8)=1+�(7)+�(6)+�(5)+�(4)+�(3)+�(2)+�(1)=171�(9)=1+�(8)+�(7)+�(6)+�(5)+�(4)+�(3)+�(2)+�(1)=341�(10)=1+�(9)+�(8)+�(7)+�(6)+�(5)+�(4)+�(3)+�(2)+�(1)=682f(0)f(1)f(2)f(3)f(4)f(5)f(6)f(7)f(8)f(9)f(10)=1=1+f(0)=2=1+f(1)=3=1+f(2)+f(1)=6=1+f(3)+f(2)+f(1)=11=1+f(4)+f(3)+f(2)+f(1)=21=1+f(5)+f(4)+f(3)+f(2)+f(1)=43=1+f(6)+f(5)+f(4)+f(3)+f(2)+f(1)=85=1+f(7)+f(6)+f(5)+f(4)+f(3)+f(2)+f(1)=171=1+f(8)+f(7)+f(6)+f(5)+f(4)+f(3)+f(2)+f(1)=341=1+f(9)+f(8)+f(7)+f(6)+f(5)+f(4)+f(3)+f(2)+f(1)=682
所以,有 682 种不同的吃法。
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>
执行顺序:
1.from 2.where 3.group by 4.having 5.select 6.order by 7.limit..
2 .数据操纵语言DML
数据操纵语言==DML== 主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE
3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象—–表、视图、索引、同义词、聚簇等如:CREATE TABLE / VIEW / INDEX / SYN / CLUSTER| 表 视图 索引 同义词 簇。DDL操作是隐性提交的!不能rollback
4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。回滚—ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;
3) COMMIT [WORK]:提交。在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
delete 可以精确删除,只删除表的数据,不会删除结构。
truncate 能删除表的数据,也能删除表的结构
drop 完全删除表
Mysql(版本8.0.25)不支持full join
on中相同的key匹配上时会产生笛卡尔积
inner join会忽略null值,right/left join则不会忽略null值
左右联结
下面就左联结和右联结进行详细区分:
在下面的例子中,我们使用LEFT JOIN将两个表中的数据连接起来:
1 | SELECT * |
在这个例子中,所有table1中的记录都将包括在内。如果table2中不存在相应的ID,则将返回NULL值。
在下面的例子中,我们使用RIGHT JOIN将两个表中的数据连接起来:
1 | SELECT * |
与左联结不同,右联结总是包含右边的表中的所有行,即使没有任何匹配。
简而言之,使用左联结和右联结在将两个表中的数据组合起来时有不同的重点。关于union all合并同类项能解释解释吗。选择左联结还是右联结,应该根据实际情况来确定。
UNION 联结与 UNION ALL联结
SUBSTRING_INDEX
是 MySQL 中一个常用的字符串函数,用于获取一个字符串中指定分隔符出现的次数之前或之后的子串。该函数的语法如下:
1 | SUBSTRING_INDEX(str, delim, count) |
其中:
str
:要操作的字符串。delim
:分隔符。count
:需要返回的子串在被分隔符分隔后的位置。如果 count
为正数,则返回分隔符之前的子串,如果 count
为负数,则返回分隔符之后的子串。以下是一些示例:
SELECT SUBSTRING_INDEX('www.mysql.com', '.', 1);
,结果为 'www'
,因为它是第一个 .
之前的子串。SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
,结果为 'www.mysql'
,因为它是第二个 .
之前的子串。SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
,结果为 'mysql.com'
,因为它是倒数第二个 .
之后的子串。需要注意的是,如果要获取到分隔符本身,还需要自行处理一下。例如,如果要获取第一个 .
之后的子串,可以使用以下查询:
1 | SELECT SUBSTRING_INDEX('www.mysql.com', '.', -1); |
但如果要同时获取分隔符,可以使用以下查询:
1 | SELECT CONCAT('.', SUBSTRING_INDEX('www.mysql.com', '.', -1)); |
MySQL 中使用 REGEXP 来操作正则表达式的匹配。其中
^ 该符号表示匹配输入字符串的开始位置;
$表示匹配输入字符串的末尾位置;
[…] 表示匹配所包含的任意一个字符;
[^…]表示不能匹配括号内的任意单个字符;
x|y 这条竖线表示匹配x 或匹配y。
通过CHARINDEX
如果能够找到对应的字符串,则返回该字符串位置i(有效位置范围为1<= i <= length(input)),否则返回0。
注意位置是从1开始\。
基本语法如下:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
游标是一种从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针。
事务是最小的执行单位,不允许分割;原子性
执行事务前后,数据保持一致,对同一数据读取的结果相同;一致性
一个事务被提交后对数据库中数据的改变是持久的。持久性
并发访问数据库时,各并发事务之间数据库是独立的。隔离性
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true