使用 SQL 实战处理2020国赛C题数据
前天本人发表了一篇介绍 SQL 入门以及进阶的文章,希望对大家入门有用。但只看不练帮助不会特别大,今天我就特地找了今年国赛C题的数据,来进行简单的处理,让大家更早的接触实战。(之前那篇文章虽然写的比较多和杂,但真正应用到数据处理的时候,很多都用不到,所以不要怂哦~)
-
工具
本人使用的是 DataGrip,优点是界面比较符合我的风格,和 Pycharm,IDEA,WebStorm 等都是 JetBrain 系列的,还有代码提示补充等功能。缺点就是占内存。用其他的软件也是可以的,只要能连数据库,能写SQL语句。
CMD也可! -
数据
这次使用的是2020年国赛C题数据,可以从官网上进行下载,也可以使用这里的数据
https://pan.baidu.com/s/1mjW4a_sg7Y4b9kx98pk4Uw 提取码: u47j
-
数据导入
虽然之前的文章提到了如何从 Excel 中导入数据,但文件中的 Excel 有多个 sheet 以及 表头,操作有点麻烦,这里我就用了一个比较笨的方法。如果有比较简单的方法还请大家告知。
- 将 文件中的 xlsx 数据文件另存为 csv 文件,这时候他会提示选定的文件不包含多份工作表,也就是说它不能把多个 sheet 全都保存在 csv文件,只会保存当前sheet,点击确定即可。这也就表明每一个 sheet 都要进行一次这样的操作。
-
这里只对 DataGrip 的导入进行讲解,其他软件的可以自行百度。
右击建立的table,table的键以及属性要与导入数据的列相对应,即键的个数与列的个数对应,键的类型要符合实际。
选中要导入的csv文件,接下来会出现以下界面,如果第一行是列的名字,就选择第一行是头的选项,列也是一样的道理,接着把 编码方式 从 UTF-8 改成 GBK,最后导入即可。
如果导入过程出错的话,很大可能是因为键的数据类型与导入数据类型不匹配,比如 A00297 为 float 类型的话 极有可能是要出错的,一般情况下,table建立的时候书写的键的顺序 与 csv文件列从左到右的顺序 相对应。
-
数据查询提取
这里以企业信息表以及进项发票信息表为例,来进行简单的处理
- 建数据库和表
show databases;
create database baseC;
use baseC;
# 企业信息表
create table BusinessInfo
(
code varchar(5), # 企业代号
name varchar(30), # 企业名称
credit varchar(2), # 信誉评级
break varchar(5) # 是否违约
);
# 进项发票信息表
create table inProfit
(
code varchar(5), #企业代号
number varchar(10), # 发票号码
date date, # 开票时间
targetCode varchar(10), #销方单位代号
money float