我自己的学习python的第二天之连接数据库

Python连接Mysql数据库

 今天主要是要学习python要怎么连接数据库,这个是学习一个语言的很基础的东西了。

然后从菜鸟教程了解到,python连接数据库,主要要下载一些DB模块包,然后要安装,可以理解为Java中的驱动器啦。

然后它推荐我去哪里哪里下载包,然后安装,然后一大堆,我在想,这不就走了我以前学Java的老路子了嘛,jar要自己去下载,然后放在lib包,那段日子也太C了。

后面maven项目解放了我的双手,那我 不能走老路子。当然直接选择捷径了。

第一:包管理工具

搜索了很久,发现了一个新东东,Anaconda

原本介绍中,这个东西可以起到包的管理和下载的作用,但是问题是 我详细了解了一下之后,发现它就是一个全家桶,相当于把一堆需要的基础设备都包在了里面。

而我已经安装了python,也有了编译器,毕竟我比较喜欢Jet Brain的东东,所以为了热爱

我当然是放弃了这个选项。

很快啊!我就又找到了一个突破口。没错,就是我们的pycharm。

我相信它已经是一个成熟的工具了。

于是抱着这份想法,我沿着这条路去搜索,终于被我搜索到与之相关的东东。

不得不说,新人和有一定经验的人,他们解决问题的能力是不一样的,有时候我觉得对待新人不要只会让他去百度,得培养他们的解决方案的思路。

好废话多说了一会,言归正传。

以前这种东东 我可能会卡半天,但是不一会的功夫,我就找到了我想要的解决方案。

首先pycharm中是有自带的包管理窗口,位置在左上角的file->setting。如图

当你找到这个窗口之后,你就可以点击右边的加号,搜索你需要的工具库啦!

果然方便,这就像pom文档中的依赖一样,想要什么选择什么,或者说很类似vs code中的插件管理,想要什么点什么,舒服~

因为这里我比较喜欢玩mysql,所以就用了pymysql,而且这个工具好像是for py3的,py2的朋友应该要去下载mysql for python什么之类的。

pip 源设置

除此之外,有人可能会遇到下载速度太慢或者是无法下载的原因,我这边是没有这个问题。

我在搜索学习中发现了,这个interpreter和maven中有一个类似的地方,就是maven的config配置中有一个镜像的配置。

一般默认都是国外的镜像,但是我在国内为了速度都会换成阿里云的镜像。

在这里也是一样的道理。

在上面的窗口中有一个Manage Repositories的选项。

点击后可在里面的窗口替换上你所需要的pip源。

默认的pip 的源是

https://pypi.python.org/simple/

所以我们需要将源改为我们国内的源

国内知名的几个源

第二:连接数据库

然后我仿照别人的简单案例,写下了这个demo

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "fund-sys" )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()

print ("Database version : %s " % data)

# 关闭数据库连接
db.close()

运行后结果输出版本,证明我连接成功啦~

Database version : 8.0.21 

数据库的CRUD

 创建table

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "pythondb" )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS user")

# 创建数据表SQL语句
sql = """CREATE TABLE user (
         name  CHAR(20) NOT NULL,
         age  INT,  
         sex CHAR(1),
         phone_num CHAR(20) )"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

插入数据

db = pymysql.connect("localhost", "root", "root", "pythondb")
cursor = db.cursor()
sql = """INSERT INTO user 
        (name,age,sex,phone_num) 
        VALUES("c++--",25,"M","13687364988")"""
try:
    cursor.execute(sql)
    db.commit()
except Exception:
    db.rollback()
finally:
    db.close()

查询数据 

db = pymysql.connect("localhost", "root", "root", "pythondb")
cursor = db.cursor()
sql = """SELECT * FROM user"""
try:
    cursor.execute(sql)
    data = cursor.fetchall()
    for row in data:
        name = row[0]
        age = row[1]
        sex = row[2]
        phoneNum = row[3]
        print("name:%s age:%s sex:%s phoneNum:%s" % (name, age, sex, phoneNum))
except Exception:
    print("Error: unable to fecth data")
finally:
    db.close()

更新数据

db = pymysql.connect("localhost", "root", "root", "pythondb")
cursor = db.cursor()
sql = """UPDATE user SET age='21' WHERE name='c++--'"""
try:
    cursor.execute(sql)
    db.commit()
except Exception:
    db.rollback()
finally:
    db.close()

删除数据

db = pymysql.connect("localhost", "root", "root", "pythondb")
cursor = db.cursor()
sql="""DELETE FROM user WHERE name='c++--'"""
try:
    cursor.execute(sql)
    db.commit()
except Exception:
    db.rollback()
finally:
    db.close()

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值