
简洁快速python连接MySQL数据库(零基础 内附代码)
python连接mysql数据库,简易模拟淘宝注册页面
·
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;
更多推荐
所有评论(0)