【MySQL】2.MySQL实际操作

news2024/12/27 12:30:05

目录

一、数据分析基本流程

注: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语句        #暂不适用
ctrl+shift +/ 解除注释
ctrl+r 运行查询窗口的sql语句
ctrl+shift+r 只运行选中的sql语句

二、获取数据后的代码操作

(1)探索数据,查看定义

DESC jobs;
SELECT * FROM jobs LIMIT 10;

(2)筛选有用的字段

--例如筛选出学历,工作经验,工资,城市,公司名称
SELECT 
  positionId,
     positionName,
     companyFullName,
     companySize,
     industryField,
     financeStage,
     createTime,
     city,
     salary,
     workYear,
     jobNature,
     education
FROM
  jobs;

(3)建新表(查询+建表+插值 三合一)

注意:原始数据一定要保留,创建一个新的表

①从一个表中复制部分数据到一个新表进行操作
#从一个表中复制部分数据到一个新表进行操作
CREATE TABLE jobs1 AS 
SELECT
	 positionId AS id,
	 positionName AS `naem`,   --也可以同时重命名列名
	 companyFullName,
	 companySize,
	 industryField,
	 financeStage,
	 createTime,
	 city,
	 salary,
	 workYear,
	 jobNature,
	 education
FROM
   jobs;
 ②从多个表中复制部分数据 汇总到一个新表进行操作

假设你有三个表 table1table2table3,每个表都有相同的结构(即相同的列)。你想将这些表中的某些列的数据汇总到一个新表 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个聚合函数
(1)count 数个数
(2)max 最大
(3)min 最小
(4)avg 平均值
(5)sum 求和

-- 聚合函数的2个特点,竖着计算,自动跳空;
-- 判断是否为空的方法(1) 【用count函数将每一个字段都数一遍】
-- 数据库默认 NULL '' None 是空数据。

(6)判断是否为空

处理数据时,每个字段都要进行非空判断

另外,根据数据业务进行判断,例如positionId 只能是数字,positionId 不是数字的都是垃圾数据

-- 判断是否为空的方法(1)
SELECT 
   COUNT(*),
	 COUNT(positionid),
	 COUNT(positionName),
	 COUNT(companyFullName),
	 COUNT(salary)
FROM
   jobs1;
	 
-- 判断是否为空的方法(2)
-- 数据库默认 NULL '' None 是这三种是空数据。
SELECT
   count(*)
FROM
   jobs1
WHERE 
   city IS NULL  /*第1种IS NULL*/
-- 数据情况不是用肉眼来看的,是要通过程序来看的;

SELECT
  count(*)
FROM
   jobs1
WHERE 
   city = 'None'  /*第2种None*/

SELECT
  count(*)
FROM
   jobs1
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 1+1 AS result;


SELECT VERSION();
SELECT CURRENT_DATE;

(2)数据脱敏

例如:如果名字少于两个字,不用管;如果两个字,后一个字变*;如果三个字,中间一个字变*;如果超过字,除开头结尾,中间变*

SELECT
 `positionName` AS 脱敏前,
 CHAR_LENGTH(`positionName`) AS 长度,
  (
   CASE
	  WHEN 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 脱敏后
FROM
 jobs111

此处使用了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)去除重复值

SELECT
 DISTINCT *
FROM
jobs111

--只通过id判断并去除重复值
SELECT 
 *
FROM
jobs1
WHERE
 positionId IN (SELECT
 DISTINCT positionId
FROM
  jobs1);

四、设置权限

五、其他操作

字符串类——截取,大小写转换,拼接,替换

数字计算——加减乘除,ABS,...

日期时间——转化时间戳,获取当前时间,日期时间格式化,截取

逻辑判断——and not or

流程控制——if case when

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘Java 8新宠儿:初识Optional,让你的代码告别空指针烦恼

文章目录 前言一、Optional基础二、使用步骤1.创建Optional实例1.常用方法 前言 Java 8 引入了一个非常有用的类 Optional,它旨在减少空指针异常(NullPointerException)的发生。Optional 类是一个可以包含也可以不包含非null值的容器对象。如…

20240813在荣品RK3588S-AHD开发板的预置Android13中挂载ext4格式的256GB的TF卡

df -h mount fdisk无效 20240813在荣品RK3588S-AHD开发板的预置Android13中挂载ext4格式的256GB的TF卡 2024/8/13 11:24 缘起:当时比较便宜96.9¥/想看看256GB的TF卡的高速卡的效果,就在京东入手了3张三星的高速TF卡。最近在弄RK3588S&#xf…

4款AI自动生成PPT神器,制作PPT太容易了

在当今数字化时代,无论是职场人士还是在校学生,PPT已经成为工作和学习中不可或缺的展示工具。从项目回顾到学术答辩,甚至是婚礼致辞,一份精心制作的PPT总能给人留下深刻印象。 为了帮助您更高效地完成PPT制作,我们将介…

数据科学、数据分析、人工智能必备知识汇总-----常用数据分析方法-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/140174015 文章目录 一、对比分析法1. 按时间和地区2. 同比和环比 二、分组分析法三、结构分析法四、交叉分析法五、矩阵分…

【话题】AI时代的程序员:挑战、机遇与核心竞争力的重塑

目录 人工智能时代,程序员如何保持核心竞争力? ​编辑引言 方向一:AI辅助编程对程序员工作的影响 案例 潜在的风险与对策 方向二:程序员应重点发展的核心能力 核心竞争力 如何培养这些能力 方向三:人机协作模式下的职业…

图论------贝尔曼-福德(Bellman-Ford)算法

算法概述&#xff1a; Bellman-Ford算法核心代码如下 for(int i 1;i<n-1;i) for(int j 1;j<m;j) if(dic[v[j]]> dic[u[j]] w[j]] dic[v[j]] dic[u[j]] w[j]; 首先我们要了解一个点就是我们这次不再使用邻接矩阵来存储图的信息&#xff0c;而是定义三个一维数组来…

Kubernetes之pod的污点和容忍度

污点和容忍度 污点&#xff08;Taint&#xff09;&#xff0c;它使节点能够排斥一类特定的 Pod。 容忍度&#xff08;Toleration&#xff09; 是应用于 Pod 上的&#xff0c;容忍度允许调度器调度带有对应污点的 Pod。 容忍度允许调度但并不保证调度&#xff1a;作为其功能的…

构建即时通讯应用:Spring boot高效集成WebSocket、Stomp协议完成前后端持续通信

1. 引入依赖 在你的Spring Boot项目的pom.xml中添加以下依赖&#xff1a; <dependencies><!-- Spring Boot Starter Thymeleaf --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf&…

黑龙江日报报道第5届中国计算机应用技术大赛,赛氪提供赛事支持

2024年7月17日&#xff0c;黑龙江日报、极光新闻对在哈尔滨市举办的第5届中国计算机应用技术大赛全国总决赛进行了深入报道。此次大赛由中国计算机学会主办&#xff0c;中国计算机学会计算机应用专业委员会与赛氪网共同承办&#xff0c;吸引了来自全国各地的顶尖技术团队和选手…

振德医疗选择泛微千里聆RPA,助力电商、人事业务流程自动化

振德医疗用品股份有限公司成立于1994年&#xff0c;中国A股上市公司&#xff0c;是医用敷料和感控防护产品主要的供应商之一。 &#xff08;图片素材来自振德医疗官网&#xff09; 振德医疗的业务在线上线下齐发力。目前拥有5个国内生产基地&#xff0c;3个海外工厂&#xff0…

算法分析报告:商江小智文本生成算法

1. 算法全周期分析 算法安全与监测 信息内容安全&#xff1a;算法通过预处理和特征提取确保输入数据的安全&#xff0c;避免敏感信息泄露。信息源安全&#xff1a;算法依赖于训练数据集&#xff0c;需确保数据来源的合法性和隐私保护。信息安全监测&#xff1a;算法应实时监控…

(回溯) LeetCode 17. 电话号码的组合

原题链接 一. 题目描述 17. 电话号码的字母组合 已解答 中等 相关标签 相关企业 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对…

Linux 下 ETCD 安装、配置与命令使用总结

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Linux 下 ETCD 安装、配置与命令使用总结 ETCD 是一个分布式键值存储系统&#xff0c;广泛用于服务发现、分布式锁、配置管理等场景&#xff0c;特别是在 Kubernetes 集群中发挥着至关重要的作用。ETCD 的高…

LoRA实现大模型LLM微调研究

LoRA&#xff0c;即低秩适应&#xff08;Low-Rank Adaptation&#xff09;&#xff0c;作为一种创新的微调方法&#xff0c;为大模型的优化与定制提供了一条高效、节省资源的新途径。 在快速发展的AI时代背景下&#xff0c;大型语言模型因其卓越的性能和广泛的应用前景&#xf…

(限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!

目录 haproxy七层代理详解一、负载均衡1.1 什么是负载均衡1.2 为什么使用负载均衡1.3 负载均衡类型1.3.1 硬件负载1.3.2 四层负载1.3.3 七层负载1.3.4 四层与七层的区别 二、haproxy介绍2.1 haproxy简介2.2 haproxy特性 三、haproxy详细部署3.1 实验所用的环境3.2 软件安装3.3 …

【每日一题】【数学推导】【分类讨论】小红的数组重排 牛客周赛 Round 55 C题 C++

牛客周赛 Round 55 C题 小红的数组重排 题目背景 牛客周赛 Round 55 题目描述 样例 #1 样例输入 #1 4 7 2 5 1样例输出 #1 YES 1 5 2 7样例 #1 样例输入 #1 6 1 1 4 5 1 4样例输出 #1 NO做题思路 a 1 ∗ a 2 < a 2 ∗ a 3 < . . . < a n − 1 ∗ a n a_1*a_…

【Kettle】kettle连接MySQL数据库连接不上解决方案汇总

前言 近期项目上经常用到ETL&#xff08;数据抽取转换加载&#xff09;&#xff0c;就想到了之前用过的kettle工具&#xff0c;下班回家想着再玩玩这个工具吧&#xff0c;结果在连接MySQL时&#xff0c;遇到了各种问题&#xff0c;就顺手整理记录一下。所以今天晚上的主题是&a…

SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)

有关仪表板的设计器&#xff1a; 查询设置 由于仪表板的设计器是所见即所得的&#xff0c;可以将当前制作的内容和数据的查询结果实时展示在界面中&#xff0c;当引入到仪表板的模型数据量较大时&#xff0c;为了提高设计器界面的查询性能&#xff0c;提供了以下两种方法&…

PythonStudio 控件使用常用方式(二十一)TTrayIcon

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

SSL发送邮件:如何确保邮件传输过程安全?

SSL发送邮件的安全性评估&#xff1f;SSL发送邮件的条件有哪些&#xff1f; 使用SSL发送邮件是一种有效的措施&#xff0c;能够确保邮件在传输过程中的安全性。AokSend将探讨SSL发送邮件的关键技术及其重要性&#xff0c;帮助您更好地理解如何确保邮件传输过程的安全。 SSL发…