DataGrip的Sqlite处理,导入和查询

DataGrip这个零件实际在Pycharm和Idea中都有,就是从里面分离出来的专门处理数据库的零件,用这两个软件也可以实现以下操作。Sqlite属轻量级数据库,几万数据量用它应该足够了,而且内嵌在python中,即使以后用来做flask的数据库也是绰绰有余。我想要实现的是,一个表是武将的名单和身份证号,另一个表是武将的身份证号和效力国家,最终要导出的是武将的信息以及效力国家,且以武将名单为准。相应csv数据如图,如果修改的话,建议先新建excel文件,再打开csv,这样身份证号的科学计数法就可以被忽略,再另存为csv,utf-8编码。

在dataGrip中,在DataBase中新建DataSource->Sqlite,直接拖csv文件即可导入。

查询的话,必须对应身份证的前18位,因为有些身份证后面会多一些数字,那么用如下语句测试身份证的前18位:Substr(列名,起始位置,终了位置),起到切片的作用

select substr(身份证号,0,19) from 三国武将效力

查询结果:(第一个值,后来为了测试大小写,更改了)

最后可以用如下语句进行查询:

select * from 三国武将名单
  left join 三国武将效力on
    substr(三国武将名单.身份证号,0,19)=substr(三国武将效力.身份证号,0,19)

*代表所有列,left join是左连接,on后面是条件,后面条件的意思是两列身份证号的前18位要对应。

结果如下,可以看到刘备的没有。

因为一个表刘备的身份证号的x是大写,另一个表是小写,所以需要在匹配的时候进行转换,用upper:

select * from 三国武将名单
  left join 三国武将效力on
    substr(upper(三国武将名单.身份证号),0,19)=substr(upper(三国武将效力.身份证号),0,19)

结果如下:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值