python基础学习Day_11

引言

        也是好几天没更新了,主要是因为前几天因为电脑注册表丢失,导致我下载文件出现异常,很多方法都试过了,都没有用,所以我准备买个U盘重装系统,结果最尴尬的是我不会。最后听取我网上一个朋友的建议,进行回复系统出厂设置,结果还是不行,最后在网上找到一个神器----DirectX强力修复,我用它直接扫描以后,一键恢复,美中不足的是他是收费的,58永久,我想着用不了几次,就开了半年的28(最少开半年),接下来进行今天的python基础学习吧,今天学习的是python连接数据库。

1.python执行数据库流程

        之前在做开发的时候,对于数据库操作,首先要对数据库进行连接,获取到连接的对象,连接对象在语句执行平台执行sql语句,然后得到数据库的响应,包括增上改查。对于python执行数据库流程也是一样的

2.安装mysql

3.1 安装MySql

这个在网上有很多教程,我在这里安装的是mysql5.7,具体帖子可以看mysql5.7安装

安装包可以直接在官网上面薅。怎么找在上面一个帖子已经介绍过了



3.2 设置环境变量

        安装完成之后,默认路径肯定是“C:\Program Files\MySQL Server 8.0\bin”。新建一个环境变量,写入路径。在这里先创建一个MYSQL_HOME放入mysql的默认路径。在path里面配置环境变量

%MYSQL_HOME%

%MYSQL_HOME%/bin

3.3 启动MySql

使用以下两个命令:

net start mysql  # 启动mysql服务器

mysql -u root -p # 进入MySQL服务器,需要输入密码

注意输入以上两个命令,需要管理员权限。

3.4 使用navicat for mysql 管理软件

我听说先数据库可视化工具navicat已经免费了,大家可以直接去官网下载。当然这里也有破解版的,我从别的博主那里偷来的。

链接:https://pan.baidu.com/s/1SeCf0BCIO1LHB5-tjPD0OQ?pwd=8x2u 
提取码:8x2u 
--来自百度网盘超级会员V2的分享

然后新建连接:

输入连接名,主机名或者IP地址填写:localhost或者127.0.0.1,输入MYsql数据库的登陆密码,这里是root

下面使用Navicat创建一个Mrsoft的数据库,右键单击mr->选择新建数据库-> 输入数据库信息。3.5

3.5安装pymysql模块

在pycharm下面的控制台里面输入这一串命令

pip install PyMySQL

当然有可能下载失败,因为我当时就下载失败了,主要原因是这个服务器在国外,下载较慢,甚至下载失败的情况,所以我们可以用国内的一些镜像源。如果配置默认镜像源可以在csdn上找其他帖子,我是直接临时使用清华镜像源。使用的是这一串命令

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 模块名

3.使用PyMysql模块

对着第一步给的执行流程。

# time: 2024/7/27 下午11:25
# file: demo.py
# author: 狗岁
#导入pymysql模块
import pymysql

#创建连接对象
con = pymysql.connect(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    database="pythontest"
)

#需要执行的sql语句 这里是一个建表语句
str = """
    create table student(
    `id` int(10) primary key,
    `name` varchar(20)
    )
"""
sql = """
CREATE TABLE if not exists books(
    id int(8) NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL,
    category varchar(50) NOT NULL,
    price decimal(10,2) DEFAULT NULL,
    publish_time date DEFAULT NULL,
    PRIMARY KEY(id)
)ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
"""

#获取游标对象
cursor = con.cursor()

#执行sql语句,在这里会返回一个0/1,意思是数据库创建成功或者失败
cursor.execute(sql)
cursor.close()
con.close()

对于增删改只需要进行执行sql语句就行了,而对于查询操作,需要对查询出来的数据进行展示,

而cursor执行后返回的数据是查出来数据的数量,对于显示数据又三个函数:

1.fetchone()     显示第一个

2.fetchall()       显示所有的查询结果

3.fetchmany()  显示查询结果的前几个数据,可以写入参数

# time: 2024/7/28 上午12:02
# file: demo2.py
# author: 狗岁
import pymysql

con = pymysql.connect(host="localhost",port=3306,user="root",password="123456",database="pythontest")
a = con.cursor()
cursor = con.cursor()

data = [("零基础学习python",'python','1',"2018-09-10"),("零基础学习java",'java','11',"2018-09-11")]

# cursor.executemany("insert into books(name,category,price,publish_time) values (%s,%s,%s,%s)",data)
a = cursor.execute("select * from books")
print(a)
# s = cursor.fetchone()
# s = cursor.fetchmany(3)
# s = cursor.fetchall()
cursor.close()
con.close()

在学习java的时候,在dao层如果sql语句写错了,他不会返回没查到,而是报错,因此对于每个数据库操作还需要进行异常处理。

# time: 2024/7/28 下午10:56
# file: demo3.py
# author: 狗岁
import pymysql
con = pymysql.connect(host="localhost", port=3306, user="root", password="123456", database="pythontest")

sql = "update books set price = 41 where category = python"

cursor = con.cursor()

try:
    cursor.execute(sql)
except Exception as e:
    print("修改失败", e)
cursor.execute("select * from books where category = 'python'")
result = cursor.fetchone()
print(result)

cursor.close()
con.close()

当然还有一些关于事务的提交和回滚什么的,但是不是开发,对于python来说,学习这么多已经够用了

结语

        现在是北京时间2024年7月31日,早上7点54分,我在写帖子的同时吃了一个面包,但是还是有点饿,再吃一个吧,9点上班,所以不是我不愿意写下去啊,其实还有一个多线程没有写,爬虫的也没有写,无伤大雅,夜晚回来看有没有时间,今天一个朋友过来,估计也没时间,不唠嗑了,上班!今天是python小白,梦想是月入过万,mai起!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值