哪個網(wǎng)站的圖片可以做素材永久觀看不收費的直播
目錄
一、數(shù)據(jù)分析基本流程
二、獲取數(shù)據(jù)后的代碼操作
(1)探索數(shù)據(jù),查看定義
(2)篩選有用的字段
(3)建新表(查詢+建表+插值 三合一)
? ?注意:原始數(shù)據(jù)一定要保留,創(chuàng)建一個新的表
①從一個表中復(fù)制部分?jǐn)?shù)據(jù)到一個新表進(jìn)行操作
?②從多個表中復(fù)制部分?jǐn)?shù)據(jù) 匯總到一個新表進(jìn)行操作
(4)排序(order by)
(5)聚合函數(shù)
(6)判斷是否為空
三、字符串處理
(1)在SQL中,select = print
(2)數(shù)據(jù)脫敏
(3)模糊查找
(4)去除重復(fù)值
四、設(shè)置權(quán)限
五、其他操作
一、數(shù)據(jù)分析基本流程
1,明確目的;?
2,獲取數(shù)據(jù);
?? ? -- python 爬取? ? ?
3,數(shù)據(jù)預(yù)處理;3值1轉(zhuǎn)換 ?(真正工作時有問題就是刪)
?? ? - 缺失值
?? ? - 異常值
?? ? - 重復(fù)值
?? ? - 轉(zhuǎn)換? ? ?
4,數(shù)據(jù)分析
?? ? - 定維度(分析方向)
?? ? - 定指標(biāo)(比、率)
5,可視化?
6,撰寫報告
注:Navicat快捷鍵
ctrl+/ 注釋sql語句? ? ? ? #暫不適用
ctrl+shift +/ 解除注釋
ctrl+r 運行查詢窗口的sql語句
ctrl+shift+r 只運行選中的sql語句
二、獲取數(shù)據(jù)后的代碼操作
(1)探索數(shù)據(jù),查看定義
DESC jobs;
SELECT * FROM jobs LIMIT 10;
(2)篩選有用的字段
--例如篩選出學(xué)歷,工作經(jīng)驗,工資,城市,公司名稱
SELECT?positionId,positionName,companyFullName,companySize,industryField,financeStage,createTime,city,salary,workYear,jobNature,education
FROMjobs;
(3)建新表(查詢+建表+插值 三合一)
注意:原始數(shù)據(jù)一定要保留,創(chuàng)建一個新的表
①從一個表中復(fù)制部分?jǐn)?shù)據(jù)到一個新表進(jìn)行操作
#從一個表中復(fù)制部分?jǐn)?shù)據(jù)到一個新表進(jìn)行操作
CREATE TABLE jobs1 AS
SELECTpositionId AS id,positionName AS `naem`, --也可以同時重命名列名companyFullName,companySize,industryField,financeStage,createTime,city,salary,workYear,jobNature,education
FROMjobs;
?②從多個表中復(fù)制部分?jǐn)?shù)據(jù) 匯總到一個新表進(jìn)行操作
假設(shè)你有三個表 table1
、table2
和 table3
,每個表都有相同的結(jié)構(gòu)(即相同的列)。你想將這些表中的某些列的數(shù)據(jù)匯總到一個新表 new_table
中。
第一步:創(chuàng)建新表
首先,創(chuàng)建一個新的表來存儲匯總的數(shù)據(jù):
CREATE TABLE new_table (id INT,name VARCHAR(255),value DECIMAL(10,2)-- 其他列根據(jù)需要添加
);
第二步:從多個表中選擇數(shù)據(jù)并插入到新表中
使用 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;
/*還可以按表達(dá)式排序*/
(5)聚合函數(shù)
5個聚合函數(shù)
(1)count 數(shù)個數(shù)
(2)max 最大
(3)min 最小
(4)avg 平均值
(5)sum 求和-- 聚合函數(shù)的2個特點,豎著計算,自動跳空;
-- 判斷是否為空的方法(1) 【用count函數(shù)將每一個字段都數(shù)一遍】
-- 數(shù)據(jù)庫默認(rèn) NULL '' None 是空數(shù)據(jù)。
(6)判斷是否為空
處理數(shù)據(jù)時,每個字段都要進(jìn)行非空判斷
另外,根據(jù)數(shù)據(jù)業(yè)務(wù)進(jìn)行判斷,例如positionId 只能是數(shù)字,positionId 不是數(shù)字的都是垃圾數(shù)據(jù)
-- 判斷是否為空的方法(1)
SELECT COUNT(*),COUNT(positionid),COUNT(positionName),COUNT(companyFullName),COUNT(salary)
FROMjobs1;-- 判斷是否為空的方法(2)
-- 數(shù)據(jù)庫默認(rèn) NULL '' None 是這三種是空數(shù)據(jù)。
SELECTcount(*)
FROMjobs1
WHERE city IS NULL /*第1種IS NULL*/
-- 數(shù)據(jù)情況不是用肉眼來看的,是要通過程序來看的;SELECTcount(*)
FROMjobs1
WHERE city = 'None' /*第2種None*/SELECTcount(*)
FROMjobs1
WHERE city = '' /*第3種空串*/--總結(jié)起來就是:
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
大小寫轉(zhuǎn)換:Upper、lower
(1)在SQL中,select = print
SELECT 'Hello,world' AS HI;
SELECT 1+1 AS result;SELECT VERSION();
SELECT CURRENT_DATE;
(2)數(shù)據(jù)脫敏
例如:如果名字少于兩個字,不用管;如果兩個字,后一個字變*;如果三個字,中間一個字變*;如果超過字,除開頭結(jié)尾,中間變*
SELECT`positionName` 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))ELSE`positionName`END
) AS 脫敏后
FROMjobs111
此處使用了case...when...結(jié)構(gòu)
①簡單搜索(基于字段值)
語法格式:
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ELSE default_value]
END
?②搜索函數(shù)(基于表達(dá)式)
語法格式:
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)去除重復(fù)值
SELECTDISTINCT *
FROM
jobs111--只通過id判斷并去除重復(fù)值
SELECT *
FROM
jobs1
WHEREpositionId IN (SELECTDISTINCT positionId
FROMjobs1);
四、設(shè)置權(quán)限
五、其他操作
字符串類——截取,大小寫轉(zhuǎn)換,拼接,替換
數(shù)字計算——加減乘除,ABS,...
日期時間——轉(zhuǎn)化時間戳,獲取當(dāng)前時間,日期時間格式化,截取
邏輯判斷——and not or
流程控制——if case when