pymysql的使用超详细

目录

  • 一、安装pymysql
  • 二、使用步骤
    • (1)导包
    • (2)连接数据库
    • (3)创建游标
    • (4)操作数据库
      • ①添加数据【增】
      • ②删除/修改数据【删/改】
      • ③查询数据
    • (5)关闭连接
    • pymysql总结
  • 三、常见问题
    • 1)不知道ip地址
      • (1)window
      • (2)Linux
      • (3)max
    • 2)忘记用户名
    • 3)忘记密码了怎么办
    • 4)不知道/忘记数据库名
    • 5)数据库一般操作

一、安装pymysql

在控制台输入如下代码安装pymysql

pip install pymysql

二、使用步骤

(1)导包

当然需要导包啦,输入如下代码开始导包

import pymysql

(2)连接数据库

pymyql使用的是connect来连接数据库,我们常用的参数及介绍如下

类型参数名数据类型说明(数据库)一般默认值
必要hoststr数据库域名或IP地址127.0.0.1/localhost
必要portint端口号3306
必要userstr用户名root
必要passwd/passwordstr密码
必要database(db)str需要连接的数据库名(你的数据库名字叫什么就是什么)db1
非必要charsetstr编码类型utf8

一般代码形式如下:

可按需求修改,有问题可看结尾的常见问题

db=pymysql.connect(
    #本机使用localhost,服务器使用ip地址
    host='localhost',
    #用户名,如变动请按变动后修改
    user='root',
    #密码,如变动请按变动后修改
    password='123456',
    #数据库名,如变动请按变动后修改
    database='db1')

(3)创建游标

游标可以想象成数据库中的指针,对表的操作可以让它一行一行的向下运动,让数据不断向下填充,创建游标的代码如下:

注:db为连接数据库对象

cursor = db.cursor()

(4)操作数据库

通用操作数据库语句,可执行增,删,改,查等数据库操作

cursor为游标对象

cursor.execute('sql语句')

下面介绍具体使用方法

①添加数据【增】

添加数据库有两种操作语句

  1. execute():它为一条一条记录的添加,当面对较大数据量的时候速度很慢

    cursor.execute('sql语句')
    
  2. executemany():批量添加多条记录

    cursor.executemany('sql',要插入的数据[列表])
    

添加数据时我们需使用提交语句提交给数据库:

注:db为连接数据库对象

db.commit()

为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:

db.rollback()

execute()具体代码如下,可直接使用

sql='sql语句【添加】'
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交执行
   db.commit()
except:
   # 有错误则回滚
   db.rollback()

executemany()具体代码如下,可直接使用

sql='...前面省略后面为values(%s,%s,%s,%s)'
try:
    cursor.executemany(sql,data)
    # 提交事务
    db.commit()
except:
    # 发生错误回滚
    db.rollback()

db.close()

②删除/修改数据【删/改】

添加数据时我们需使用提交语句提交给数据库:

注:db为连接数据库对象

db.commit()

为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:

db.rollback()

具体代码如下,可直接使用

sql='sql语句【添加】'
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交执行
   db.commit()
except:
   # 有错误则回滚
   db.rollback()

③查询数据

因为查询数据需要返回值,所以我们单拿出来讲

查询数据时我们需使用获取返回值语句得到返回值,返回值语句有三种:

  • fetchone():该方法获取下一个查询结果,结果为一个对象

    cursor.fetchone()
    
  • fetchall():接收全部的返回结果

    cursor.fetchall()
    
  • rowcount:只读,返回结果为执行sql语句影响的行数

    cursor.rowcount
    

为了处理异常我们对其添加异常处理方法,有错误使用下列语句,对事务进行回滚:

db.rollback()

具体代码如下,可直接使用

sql='sql语句【查询语句】'
try:
   # 执行sql语句
   cursor.execute(sql)
   #接收返回值可按需求使用fetchone()\fetchall()\rowcount语句接收
	results = cursor.fetchall()
    #输出结果
    print(results)
except:
   # 没有结果输出
   print('没有结果')

(5)关闭连接

关闭连接记住一句话,创建了几个对象,关闭几个对象,先创建的后关闭,后创建的先关闭

关闭连接语句为:

对象.close()

如上,我首先创建了连接对象db,然后创建了游标对象cursor,我们需要先关闭游标对象,再关闭连接对象

# 关闭游标对象
cursor.close()
# 关闭数据库连接
db.close()

pymysql总结

到这里我们的pymysql就已经讲完了,总结一下。我们连接数据库需要如下几个步骤,缺一不可。

  1. 导包
  2. 创建数据库连接对象
  3. 创建游标对象
  4. 操作数据库
  5. 关闭连接

三、常见问题

1)不知道ip地址

(1)window

①win+r打开控制台

②在控制台中输入如下命令,然后回车,查看Ipv4地址即可

ipconfig

(2)Linux

①登录root用户

②打开控制台

③在控制台输入如下命令,并找到inet可查看ip地址

ifconfig -a

(3)max

①进入系统偏好设置

②进入网络

③进入以太网可查看ip地址

2)忘记用户名

①打开mysql的控制台,如果已经配置环境变量的可以直接使用cmd控制台输入如下命令然后回车进入mysql

mysql -u root -p

②在mysql中输入如下命令可查看用户名

select user,host from mysql.user;

3)忘记密码了怎么办

①在cmd控制台输入如下命令关闭mysql服务

net stop mysql

②使用如下命令启动mysql服务(服务器会不加载权限判断,任何用户都能访问数据库)注:命令运行之后,用户无法再输入指令

mysqld --skip-grant-tables

③打开新的命令行窗口,输入不加密码的登录命令

mysql -u root

④登录成功后可以使用update语句修改密码

⑤修改完成后使用flush privileges语句刷新权限表

⑥输入如下命令的命令行窗口关闭

mysqld --skip-grant-tables

4)不知道/忘记数据库名

①打开mysql的控制台,如果已经配置环境变量的可以直接使用cmd控制台输入如下命令然后回车进入mysql,并输入密码进入mysql服务器

mysql -u root -p

②输入下列指令查询所有数据库

show databases;

5)数据库一般操作

  • 查看数据库中的表:

    use 数据库名;
    show tables;
    
  • 查看表结构:

    describe 表名;
    
  • 建立表:

    use 库名; 
    create table 表名 (字段设定列表);
    
  • 建立数据库:

    create database 库名;
    
  • 删除数据库与表:

    drop database 库名; 
    drop table 表名;
    
  • 清空表中记录:

    delete from 表名;
    
  • 显示表中的记录:

    select * from 表名
    

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年8月8日
下一篇 2023年8月8日

相关推荐