怎么写网站,建设宣传家乡的网站,电话销售企业网站怎么做,做网站的公司怎么拓展业务目录 一、数据分析基本流程
注#xff1a;Navicat快捷键
二、获取数据后的代码操作
#xff08;1#xff09;探索数据#xff0c;查看定义
#xff08;2#xff09;筛选有用的字段
#xff08;3#xff09;建新表#xff08;查询建表插值 三合一#xff09; 注意…目录 一、数据分析基本流程
注Navicat快捷键
二、获取数据后的代码操作
1探索数据查看定义
2筛选有用的字段
3建新表查询建表插值 三合一 注意原始数据一定要保留创建一个新的表
①从一个表中复制部分数据到一个新表进行操作 ②从多个表中复制部分数据 汇总到一个新表进行操作
4排序order by
5聚合函数
6判断是否为空
三、字符串处理
1在SQL中select print
2数据脱敏
3模糊查找
4去除重复值
四、设置权限
五、其他操作 一、数据分析基本流程
1明确目的 2获取数据 -- python 爬取 3数据预处理3值1转换 真正工作时有问题就是删 - 缺失值 - 异常值 - 重复值 - 转换 4数据分析 - 定维度分析方向 - 定指标比、率 5可视化 6撰写报告
注Navicat快捷键 ctrl/ 注释sql语句 #暂不适用 ctrlshift / 解除注释ctrlr 运行查询窗口的sql语句 ctrlshiftr 只运行选中的sql语句 二、获取数据后的代码操作
1探索数据查看定义
DESC jobs;
SELECT * FROM jobs LIMIT 10;
2筛选有用的字段
--例如筛选出学历工作经验工资城市公司名称
SELECT positionId,positionName,companyFullName,companySize,industryField,financeStage,createTime,city,salary,workYear,jobNature,education
FROMjobs;
3建新表查询建表插值 三合一
注意原始数据一定要保留创建一个新的表
①从一个表中复制部分数据到一个新表进行操作
#从一个表中复制部分数据到一个新表进行操作
CREATE TABLE jobs1 AS
SELECTpositionId AS id,positionName AS naem, --也可以同时重命名列名companyFullName,companySize,industryField,financeStage,createTime,city,salary,workYear,jobNature,education
FROMjobs; ②从多个表中复制部分数据 汇总到一个新表进行操作
假设你有三个表 table1、table2 和 table3每个表都有相同的结构即相同的列。你想将这些表中的某些列的数据汇总到一个新表 new_table 中。
第一步创建新表
首先创建一个新的表来存储汇总的数据
CREATE TABLE new_table (id INT,name VARCHAR(255),value DECIMAL(10,2)-- 其他列根据需要添加
);第二步从多个表中选择数据并插入到新表中
使用 INSERT INTO ... SELECT ... 语句从每个表中选择你需要的列并插入到新表中。
INSERT INTO new_table (id, name, value)
SELECT id, name, value FROM table1
UNION ALL
SELECT id, name, value FROM table2
UNION ALL
SELECT id, name, value FROM table3;4排序order by
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
/*ASC增序DESC降序还可以按多个列排序*/SELECT name, height, (height * 2) AS double_height
FROM stu
ORDER BY double_height DESC;
/*还可以按表达式排序*/
5聚合函数 5个聚合函数 1count 数个数 2max 最大 3min 最小 4avg 平均值 5sum 求和 -- 聚合函数的2个特点竖着计算自动跳空 -- 判断是否为空的方法(1) 【用count函数将每一个字段都数一遍】 -- 数据库默认 NULL None 是空数据。 6判断是否为空 处理数据时每个字段都要进行非空判断 另外根据数据业务进行判断例如positionId 只能是数字positionId 不是数字的都是垃圾数据 -- 判断是否为空的方法(1)
SELECT COUNT(*),COUNT(positionid),COUNT(positionName),COUNT(companyFullName),COUNT(salary)
FROMjobs1;-- 判断是否为空的方法(2)
-- 数据库默认 NULL None 是这三种是空数据。
SELECTcount(*)
FROMjobs1
WHERE city IS NULL /*第1种IS NULL*/
-- 数据情况不是用肉眼来看的是要通过程序来看的SELECTcount(*)
FROMjobs1
WHERE city None /*第2种None*/SELECTcount(*)
FROMjobs1
WHERE city /*第3种空串*/--总结起来就是
SELECT count(*) FROM jobs1 WHERE city IS NULL OR city None OR city ; 三、字符串处理 主要字符串操作 字符串长度select Length(abc);#存储长度 char_length()字符长度 左取left 右取right 截取子串substr(str FROM pos FOR len) SUBSTR(abcdefg FROM 2 FOR 3) #从第2个截取3个 替换replace 拼接CONCAT(str1,str2,...) 按分隔符索引截取substring_index(字符串,分隔符,count) 去除左右空格Trim 大小写转换Upper、lower 1在SQL中select print
SELECT Hello,world AS HI;
SELECT 11 AS result;SELECT VERSION();
SELECT CURRENT_DATE; 2数据脱敏
例如如果名字少于两个字不用管如果两个字后一个字变*如果三个字中间一个字变*如果超过字除开头结尾中间变*
SELECTpositionName AS 脱敏前,CHAR_LENGTH(positionName) AS 长度,(CASEWHEN CHAR_LENGTH(positionName) 2 THEN CONCAT(LEFT(positionName,1),*)WHEN CHAR_LENGTH(positionName) 3 THEN CONCAT(LEFT(positionName,1),*,RIGHT(positionName,1))WHEN CHAR_LENGTH(positionName) 3 THEN CONCAT(LEFT(positionName,1),REPEAT(*,CHAR_LENGTH(positionName)-2),RIGHT(positionName,1))ELSEpositionNameEND
) AS 脱敏后
FROMjobs111
此处使用了case...when...结构
①简单搜索基于字段值
语法格式
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ELSE default_value]
END②搜索函数基于表达式
语法格式
SELECT id, name,CASE WHEN age 18 THEN 成年人WHEN age BETWEEN 6 AND 18 THEN 未成年人ELSE 婴幼儿END AS age_group
FROM people;3模糊查找
SELECT*
FROM
jobs111
WHERE positionName LIKE %分析_;--通配符%匹配任意个
--通配符_匹配一个
4去除重复值
SELECTDISTINCT *
FROM
jobs111--只通过id判断并去除重复值
SELECT *
FROM
jobs1
WHEREpositionId IN (SELECTDISTINCT positionId
FROMjobs1);
四、设置权限 五、其他操作
字符串类——截取大小写转换拼接替换
数字计算——加减乘除,ABS...
日期时间——转化时间戳获取当前时间日期时间格式化截取
逻辑判断——and not or
流程控制——if case when