【MySQL】2.MySQL实际操作
目录
一、数据分析基本流程
二、获取数据后的代码操作
(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
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个聚合函数
(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)
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 1+1 AS result;SELECT VERSION();
SELECT CURRENT_DATE;
(2)数据脱敏
例如:如果名字少于两个字,不用管;如果两个字,后一个字变*;如果三个字,中间一个字变*;如果超过字,除开头结尾,中间变*
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...结构
①简单搜索(基于字段值)
语法格式:
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
相关文章:

【MySQL】2.MySQL实际操作
目录 一、数据分析基本流程 注:Navicat快捷键 二、获取数据后的代码操作 (1)探索数据,查看定义 (2)筛选有用的字段 (3)建新表(查询建表插值 三合一) 注意…...

Winform画圆以及无边框窗体的移动
普通圆 在WinForms中绘制一个圆形,可以通过几种方式实现: 1. 使用ControlPaint类 在窗体的Paint事件中使用ControlPaint.DrawCircle方法来绘制圆形。 private void Form1_Paint(object sender, PaintEventArgs e) {int x 100; // 圆心的X坐标int y …...

如何高效记录并整理编程学习笔记?
高效记录并整理编程学习笔记是提升编程学习效率和效果的重要方法。以下是一些具体的步骤、工具及其使用方法的介绍: 一、高效记录笔记的方法 专注理解:在记录笔记时,首先要保持高度的专注,努力理解老师或教程中讲解的知识点。避免…...

docker的安装和常用命令
docker的安装和常用命令 安装老版本新版本 镜像源配置常用命令基本命令清理文件复制构建镜像上传镜像 补充权限不足无目录权限无用户权限 容器访问jenkins推送镜像失败修改主机名编写Dockerfile 注:这里的安装是针对于cetnos7。 安装 老版本 安装老版本可能遇到报…...

haproxy 7000字配图超详细教程 从小白到入门
简介:HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速,HAProxy具备媲美商用负载均衡器的性能和稳…...

使用 LangChain 掌握检索增强生成 (RAG) 的终极指南:5、将自然语言问题转换为结构化查询
5. 查询构建 — Ragatouille 用户用自然语言提出问题并被路由到特定数据源(例如,向量存储、图形数据库等)后,该问题需要被转换为结构化查询,以便从选定的数据源检索信息(例如,文本到SQL、文本到…...

浅析JavaScript 堆内存及其通过 Chrome DevTools 捕获堆快照的方法
JavaScript 的堆内存(Heap Memory)是内存中专门用于存放程序执行过程中动态生成的对象、函数实例以及其他动态数据结构的区域。与调用栈(Call Stack)专注于管理函数调用的顺序和执行环境不同,堆内存则专注于动态地分配…...

C++学习笔记----2、使用C++进行优雅编程(五)----命名
C编译器对于命名有如下规则: 命名中可以有大小写字母、数字、下划线。字母不限于英文字符,可以是任意国家语言的字母,例如日文,阿拉伯文等。不能以数字开头,例如9to5。包含双下划线的被标准库保留不可使用,…...

Element UI顶部导航栏与左侧导航栏联动实现~
需求:点击顶部导航栏的不同栏位实现左侧导航栏菜单的不同展示实现联动效果。 点击顶部导航栏按钮将对应的左侧导航栏数据传递给vuex,并在左侧导航栏父组件中接收并传递给左侧导航栏子组件,使用递归组件实现渲染等,具体的优化可以看下面的注释…...

ECMAScript6模板字面量:反引号、${}占位符的使用
ECMAScript 6 中引入了模板字面量,主要通过多行字符串和字符串占位符对字符串进行增强操作。如下: //使用ECMAScript6模板字面量拼接字符串,例如:2024年8月12日 15:38:28 星期一 let dateRet ${Year}年${Month}月${Dates}日 ${H…...

网关与AWS云心跳周期,网关断电或者网络不稳定的离线机制
当mqtt连线建立时, 需要指定keep alive参数,当 iot core在1.5倍 keep alive timeout时长内都没收到任何来自设备端的操作, 例如 ping, subscribe, publish ,则会主动将连线中断。如果iot core检测到tcp 连接中断, 会立即中断;如果未检测到则会等到1.5倍 …...

【代码随想录训练营第42期 Day26打卡 贪心Part1 - LeetCode 455.分发饼干 376. 摆动序列 53. 最大子序和
目录 一、贪心 二、题目与题解 题目一:455.分发饼干 题目链接 题解:排序双指针贪心 题目二:376. 摆动序列 题目链接 题解:贪心 题目三:53. 最大子序和 题目链接 题解1:暴力(失败&…...

利用有限元法(FEM)模拟电磁场与样品的相互作用
一、引言 电磁场与物质的相互作用是理解光学现象的基础。在实际应用中,激光光束与样品的相互作用通常涉及复杂的电磁场分布,尤其在微纳尺度结构中。因此,使用数值模拟方法如有限元法(FEM)来模拟电磁场的分布和传播&…...

如何保持git主分支树的整洁
经典应用展示Git版本控制用法 本章将列举Git的一些闪亮特性,期待能够让您爱上Git 文章目录 经典应用展示Git版本控制用法前言一、分支是什么?二、主-分支合并merge三、cherry-pick(精挑细选)四、Rebase(变基)4.1 合并本地分支到主分支4.2 合并本地分支从指定commit开始的…...

Datawhale X 魔搭 AI夏令营 Task1 从零入门AI生图原理实践笔记
赛题内容 参赛者需在可图Kolors模型的基础上训练LoRA模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格… 基于LoRA模型生成8张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度…...

Python中将代码打包成exe文件
在Python中将代码打包成exe文件,可以使用PyInstaller工具。以下是使用PyInstaller将Python脚本打包成exe的步骤: 安装PyInstaller: pip install pyinstaller使用PyInstaller打包Python脚本: pyinstaller --onefile your_script…...
【C++ 面试 - 基础题】每日 3 题(十三)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...

Android中的Binder
binder是Android平台的一种跨进程通信(IPC)机制,从应用层角度来说,binder是客户端和服务端进行通信的媒介。 ipc原理 ipc通信指的是两个进程之间交换数据,如图中的client进程和server进程。 Android为每个进程提供了…...

记录一次.gitignore 失效问题
前言 今天使用git同步同事的代码时,出现一个问题,.gitignore限制失效,导致我本地生成的临时缓存文件被跟踪到了commit中,执行 git rm --cache .后再add commit也不行,很奇怪就研究了一下,下面将我的解决方…...

Eclipse 工作空间
Eclipse 工作空间 Eclipse 工作空间(Workspace)是 Eclipse IDE 中一个核心概念,它指的是一个用于组织和存储开发项目及相关文件的目录。在 Eclipse 中,所有开发活动都是围绕工作空间展开的。本文将详细介绍 Eclipse 工作空间的概…...

[240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能
目录 📃Changelog✨ gtb✨ cd✨ chat✨ hashdir 📃Changelog ✨ gtb 调整了 fzf 预览窗口中书籍文本的显示效果,通过识别文本中的特殊字符、日期、章节标题等信息,为其赋予不同的颜色。 ✨ cd cd 模块新增功能:在找…...

Flutter中的异步编程
目录 前言 1. Future 和 async/await 1.Future 1.什么是Future? 2.Flutter的三种状态 1.未完成(Uncompleted) 1.定义 2.处理未完成的Future 2.已完成(Completed with a value) 1.概念 2.处理已完成的Future 3.使用async/await 4.Fu…...

vue3 路由带传参跳转;刷新后消失。一次性参数使用。
解决vue3 怎么做到路由跳转传参刷新后消失 解决路由跳转传参去除问题 想要跳转后根据参数显示对应的tab,但url传参刷新会持续保留无法重置。 router.replace替换又会导致显示内容为router.replace后的,传参目的丢失。 业务逻辑: 完成对应操作…...

Unity新输入系统结构概览
本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 在学习新输入系统之前,我们需要对其构成有个印象 1.输入动作(Inputaction) 是定义输…...

18104 练习使用多case解题
### 伪代码 1. 读取第1批测试数据的CASE数量。 2. 处理第1批测试数据,计算每个CASE的最小公倍数并输出。 3. 输出“group 1 done”。 4. 处理第2批测试数据,直到遇到两个0,计算每个CASE的最小公倍数并输出。 5. 输出“group 2 done”。 6. 处…...

【AI人工智能】文心智能体 - 你的专属车牌设计师
引言 自AI盛行以来,不断有各种各样的人工智能产品崭露头角。我们逐步跟着不断产生的人工智能来使自己的工作和生活变得更加智能化!那么我们是否能够创造一款专属于自己的人工智能产品呢? 文心智能体平台就给我们提供了这样的机会,…...

Linux-服务器硬件及RAID配置实验
系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 7.Linux磁盘管理/文件系统 8.Linu…...

白屏检测系统的设计与实现
目录 一、 什么是白屏问题?二、 问题分析与拆解2.1 人工判定一个白屏问题的逻辑2.2 自动化判定一个白屏问题的算法思想 三、 白屏检测算法3.1 图像灰度化3.2 图像二值化3.3 计算(判定为白屏)置信度 四、 白屏检测系统的设计与实现4.1 UI自动化…...

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测
Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行YOLO-World目标检测进行训练进行预测进行验证 扩展目标跟踪设置提示 参考文献 前言 由…...

区块链用什么编程语言实现?
. 主流区块链的开发语言主要有:C、Go、Java、Rust、C#。 C使用率最高,其次是Go,很少有人用python开发区块链。...