1、引入第三方库

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install 第三方库名 -i https://pypi.tuna.tsinghua.edu.cn/simple

win+R ,cmd回车  )这边因为我已经下载过了 

2、pymysql使用流程

2.1 命令行模式下的使用流程:

登录mysql:mysql -u root -p

操作sql语句: show databases;

退出登录:\q

2.2 pymysql的使用流程

# 1、导入模块
import pymysql

# 2、连接数据库
connect = pymysql.Connect(     # 连接数据库
    host='localhost',    
    port=3306,
    user='root',    
    passwd='1234',   
    db='taobao',   
    charset='utf8'
)

# 3、执行SQL语句
cursor = connect.cursor()  # 获取游标
sql = "show databases;"  # 获取所有数据库
cursor.execute(sql)
print(cursor.fetchall())

# 4、关闭数据库
cursor.close()
connect.close()

3.pymysql常见类和方法【了解】

3.1 pymysql.connect()属性(参数)

# 2、连接数据库
connect = pymysql.Connect(     # 连接数据库
    host='localhost',
    port=3306,
    user='root',
    passwd='1234',
    db='taobao',
    charset='utf8'
)
# host        MySQL服务器地址,IP地址或域名
# port        MySQL服务器端口号
# user        用户名
# passwd      密码
# db          数据库名称
# charset     数据库连接编码

3.2 connect对象支持的方法

# 创建游标并返回游标对象
cursor = connect.cursor()  
# 关闭连接
connect.close()
# 提交当前事务
connect.commit()
# 回滚当前事务
connect.rollback()

3.3 cursor对象支持的方法(执行sql语句并获得结果)

# 获取所有数据库
sql = "show databases;"  
dbs = cursor.execute(sql)    # 执行sql语句
print(cursor.fetchall())

# execute(op)        执行一个SQL命令
# fetchall()         获取结果集中的所有数据
# close()            关闭游标对象
# 补充
# fetchone()         取得结果集的一行数据
# fetchmany(size)    获取结果集的size行数据
# rowcount           返回数据条数或影响行数

4.实例演示

获取数据

# 1、导入模块
import pymysql

# 2、连接数据库
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='1234',
    db='db1',
    charset='utf8'
)

# 3、执行SQL语句
cursor = connect.cursor()

sql = "select * from teachers;"  # 获取所有数据库
dbs = cursor.execute(sql)
# print(dbs)
# print(cursor.fetchone())
print(cursor.fetchall())

# 4、关闭数据库
cursor.close()
connect.close()

插入数据

# 1、导入模块
import pymysql

# 2、连接数据库
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='1234',
    db='db1',
    charset='utf8'
)

# 3、执行SQL语句
cursor = connect.cursor()
sql = "insert into teachers values(4,'周老师');"  # 获取所有数据库
dbs = cursor.execute(sql)
# 当对表或表内数据进行插入,修改,删除时,要使用commit提交当前事务
connect.commit()

# 4、关闭数据库
cursor.close()
connect.close()

5.模拟登录注册页面实现【仅做了解】

5.1准备工作

打开数据库
use taobao;
创建用户表
create table IF NOT EXISTS users(
id int unsigned primary key auto_increment not null,
name varchar(20) not null unique,
password varchar(10) not null
);

5.2完整代码

import pymysql

class MysqlHelper():
    def __init__(self, host, database, user, password, port=3306, charset='utf8'):
        self.host = host
        self.database = database
        self.user = user
        self.password = password
        self.port = port
        self.charset = charset

    def connect(self):  # 连接对象
        self.connect = pymysql.connect(host=self.host, database=self.database, user=self.user, password=self.password,
                                    port=self.port, charset=self.charset)
        self.cursor = self.connect.cursor()

    def close(self):  # 关闭
        self.cursor.close()
        self.connect.close()

    def select_one(self, sql, params=[]):        # 查询一条数据
        result = None
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchone()
            self.close()
        except Exception as ex:
            print(ex)
        return result

    def insert(self, sql, params=[]):       # 插入一条数据
        count = None
        try:
            self.connect()
            count = self.cursor.execute(sql, params)
            self.connect.commit()
            self.close()
        except Exception as ex:
            print(ex)
        return count



class Person():
    # 注册
    def register(self):
        name = input('请输入用户名:')
        password = input('请输入密码:')
        # 连接对象
        helper = MysqlHelper(host='localhost', database='db1', user='root', password='1234')
        # 执行sql语句
        ret = helper.insert('insert into users(name,password) values(%s,%s)', [name, password])
        print(ret,2)
        if ret > 0:
            print('注册成功!')
        else:
            print('注册失败,请重新注册!')

    # 登录
    def login(self):
        name = input('请输入用户名:')
        password = input('请输入密码:')
        # 连接对象
        helper = MysqlHelper(host='localhost', database='db1', user='root', password='1234')
        # 执行sql语句
        ret = helper.select_one('select count(*) from users where name=%s and password=%s', [name, password])
        if ret[0] > 0:
            print('登录成功!')
        else:
            print('登录失败,请重新登录!')



def main():
    while True:
        choice = input('1、注册    2、登录    3、退出\n请输入要进行的操作:')
        user = Person()
        if choice == '1':
            user.register()
        elif choice == '2':
            user.login()
        elif choice == '3':
            print('成功退出')
            break
        else:
            print('请等待版本更新!')

if __name__ == '__main__':
    main()

5.3在命令行进行查看:

(其他详细操作见零基础3分钟快速入门MYSQL关系数据库1-CSDN博客

查看所有库:show databases; 

使用库、进入库 :use taobao;     

查看某一个库里所有的表show tables;   

查询全部字段的全部数据:  select *from users;

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐