首页技术为王RPA 影刀高级-数据库入门

影刀高级-数据库入门

分类RPA时间2026-08-08 07:51:20发布信义之树浏览107
导读:一、数据库简介 MySQL、Redis、Oracle属于DBMS,SQL是编程语言。 非关系型数据库储存文档。二、安装MySQL 1. 下载地址 &nb...

一、数据库简介

    MySQL、Redis、Oracle属于DBMS,SQL是编程语言。

    非关系型数据库储存文档。


二、安装MySQL

    1. 下载地址

        https://dev.mysql.com/downloads/windows/installer/

    2. 安装

        设置默认密码,环境变量,自带客户端能运行。

        自带数据库存储自身配置信息,权限信息,


    3.输命令

        以;作为语句结尾,中间可以隔空行。

        不分大小写。

cmd.exe_20260808_081847.png


    4. 安装DBeaver

        地址:https://dbeaver.io/download/
dbeaver.exe_20260808_112704.png

    5.远程服务器和局域网连接

        先不管了,都用宝塔。


三、SQL基本语法

    1. 用到表格

        https://www.xinyizhishu.top/yingdaoC/movie.csv

    2. 数据表设置

        局部截取_20260808_114140.png



    3.查询

局部截取_20260808_114339.png


distinct对所有列生效,只有两列都一致才算重复数据。


局部截取_20260808_114544.png


        多列排序:

局部截取_20260808_115153.png



        从第4行开始,取5条数据:

局部截取_20260808_115428.png



与或非:


局部截取_20260808_120053.png


        between包含边界值:

局部截取_20260808_120256.png



        %通配符:


局部截取_20260808_120937.png


        一个下划线代表一个长度:

局部截取_20260808_121133.png

        函数:

局部截取_20260808_131436.png


        查找有顺序,先where,再order by,最后limit。

    4.增加数据

        批量插入:

局部截取_20260808_132304.png


        设置非空、默认值:

局部截取_20260808_132506.png



    5.更新数据

        批量更新:

局部截取_20260808_144825.png


        设为空值:

局部截取_20260808_145036.png


    6.删除数据

        批量删除:

局部截取_20260808_145301.png


        批量删除列:

局部截取_20260808_145533.png

        清空表:

局部截取_20260808_145656.png


        删除表:

局部截取_20260808_145857.png



    7.创建表

        创建表:必须用ctrl+enter,运行没反应。

局部截取_20260808_151115.png



四、影刀操作MySQL

    1. 驱动下载地址:

            dev.mysql.com/downloads/connector/odbc/

    2. 用到表格

        https://www.xinyizhishu.top/yingdaoC/excel数据.xlsx

     

    3.表格内容

局部截取_20260808_165656.png


    4. ODBC    

        好像有很多细节。

长截图_20260808_165746.png


    5.数据库扩展操作

        为何前面5行会有空数据

局部截取_20260808_165910.png


ShadowBot.Shell.exe_20260808_165951.png



局部截取_20260808_170205.png



五、实战

    1. 网址

        http://www.boxofficecn.com/boxofficecn


    2. 爬取数据


局部截取_20260809_100447.png



    3. 写入数据库

局部截取_20260809_100613.png



        python代码段:

            搞了好久,费时费力。查了很久才发现有一个票房数据有一个,号,导致转换不成数字,用各种清除空值也去不掉,数据库导入不成功,用正则替换掉才行。分段都导入了。

import pandas as pd
df =pd.DataFrame(datatable,columns=datatable.pop(0))

print(f"原始行数: {len(df)}")
#df_cleaned = df.drop_duplicates(keep='first')
df = df[~(df['序列'] == '序列')]
print(f"清洗后行数: {len(df)}")

# 2. 筛选出“序列”不等于空字符串 且 不等于 'nan' 的行
df = df[(df['序列'] != '') & (df['序列'] != 'nan')]
print(f"清洗后行数: {len(df)}")

df['票房(万元)'] = df['票房(万元)'].str.replace(r'(\d),(\d)', r'\1.\2', regex=True)
df["票房"]= df["票房(万元)"].str.extract(r"^(\d+(.\d+)?)")[0]

df=df[df["票房"].notna()]

print(f"清洗后行数: {len(df)}")
df['票房'] = pd.to_numeric(df['票房'], errors='coerce')

df['年份'] = pd.to_numeric(df['年份'], errors='coerce')

df = df.replace({'nan': None, 'NaN': None})
df = df.where(pd.notnull(df), None)
df=df[df["年份"].notna()]
df=df[df["电影"].notna()]

# 2. 文本列:把 NaN 变成空字符串,防止出现 None
text_cols = df.select_dtypes(include=['object']).columns
df[text_cols] = df[text_cols].fillna('')

df=df.drop(columns=["序列","票房(万元)"])

df = df[(df['年份'] != '') & (df['年份'] != 'nan')]
print(f"年份清洗后行数: {len(df)}")
df = df[(df['电影'] != '') & (df['电影'] != 'nan')]
print(f"电影清洗后行数: {len(df)}")

datatable=df.values.tolist()[3000:]


ShadowBot.Shell.exe_20260809_101122.png

ShadowBot.Shell.exe_20260809_101054.png






    4.查询数据

        局部截取_20260809_101152.png



ShadowBot.Shell.exe_20260809_101224.png




        执行结果:

            [[2025, '哪吒之魔童闹海', 1544600.0], [2021, '长津湖', 577136.0], [2017, '战狼2', 567869.0], [2021, '你好,李焕英', 541330.0], [2019, '哪吒之魔童降世', 500113.0], [2019, '流浪地球', 467463.0], [2023, '满江红', 454438.0], [2021, '唐人街探案3', 452234.0], [2026, '飞驰人生3', 440492.0], [2025, '疯狂动物城2', 432110.0]]








影刀高级-编码版专题 影刀高级-JSON

游客 回复需填写必要信息