目录
1.安装第三方库
pip install pymysql
2.创建到Mysql的数据库连接
第一次:(检查是否正确连接)
from pymysql import Connection
#构建Mysql数据库的连接
conn = Connection(
host="localhost", #主机名(IP)
port=3306, #端口
user="root", #用户
password = "123456" #密码
)
print(conn.get_server_info())
#执行非查询性质SQL
#执行查询性质SQL
#关闭连接
conn.close()
打印输出了Mysql的版本号,说明正确连接
3.Python操作查询
第二次:(是否能成功执行非查询性质SQL)
from pymysql import Connection
#构建Mysql数据库的连接
conn = Connection(
host="localhost", #主机名(IP)
port=3306, #端口
user="root", #用户
password = "123456" #密码
)
# print(conn.get_server_info())
#执行非查询性质SQL
cursor = conn.cursor() #获取到游标对象
#选择数据库
conn.select_db("xjx231106") #相当于SQL语句的use xjx231106;
cursor.execute("create table test_pymysql(id int);") #传入SQL语句,分号可以省略
#执行查询性质SQL
#关闭连接
conn.close()
第三次:(实现查询)
通过连接对象调用cursor方法,得到游标对象;
游标对象.execute()执行sql语句
注意:results为元组
from pymysql import Connection
#构建Mysql数据库的连接
conn = Connection(
host="localhost", #主机名(IP)
port=3306, #端口
user="root", #用户
password = "123456" #密码
)
# print(conn.get_server_info())
#执行非查询性质SQL
cursor = conn.cursor() #获取到游标对象
#选择数据库
conn.select_db("xjx231106") #相当于SQL语句的use xjx231106;
# cursor.execute("create table test_pymysql(id int);") #传入SQL语句,分号可以省略
#执行查询性质SQL
cursor.execute("select * from student")
results = cursor.fetchall()
for r in results:
print(r)
4.Python操作插入
1.手动确认commit
from pymysql import Connection
#构建Mysql数据库的连接
conn = Connection(
host="localhost", #主机名(IP)
port=3306, #端口
user="root", #用户
password = "123456" #密码
)
# print(conn.get_server_info())
#执行非查询性质SQL
cursor = conn.cursor() #获取到游标对象
#选择数据库
conn.select_db("xjx231106") #相当于SQL语句的use xjx231106;
#执行SQL
cursor.execute("insert into student values(22,'周俊杰',34,'男')")
# #通过commit确认
conn.commit()
#关闭连接
conn.close()
2.自动确认commit
#构建Mysql数据库的连接
conn = Connection(
host="localhost", #主机名(IP)
port=3306, #端口
user="root", #用户
password = "123456", #密码
autocommit=True #自动确认提交
)
# print(conn.get_server_info())
#执行非查询性质SQL
cursor = conn.cursor() #获取到游标对象
#选择数据库
conn.select_db("xjx231106") #相当于SQL语句的use xjx231106;
#执行SQL
cursor.execute("insert into student values(22,'周俊杰',34,'男')")
# #通过commit确认
# conn.commit()
#关闭连接
conn.close()
5.综合案例
1.案例需求
使用上次面向对象的案例数据集https://blog.youkuaiyun.com/Hooray11/article/details/134227454?spm=1001.2014.3001.5501,完成使用python语言,读取数据,并将数据写入Mysql的功能。
数据样例:
2011年1月销售数据.txt
2011年2月销售数据JSON.txt
2.DDL定义
在DBeaver中创建数据库和表:
create database py_sql charset utf8;
use py_sql;
create table orders(
order_date date,
order_id varchar(255),
money int,
province varchar(255)
);
3.实现步骤
1.读取数据
2.封装数据对象
3.构建数据库来连接,写入数据库
#构建Mysql数据连接
conn = Connection(
host="localhost",
port=3306,
user="root",
password="123456",
autocommit=True
)
#获得游标对象
cursor = conn.cursor()
#选择数据库
conn.select_db("py_sql")
#组织SQL语句
for record in all_data:
sql = (f"insert into orders(order_date,order_id,money,province) "
f"values('{record.date}','{record.order_id}',{record.money},'{record.province}')")
#执行SQL语句
cursor.execute(sql)
#关闭Mysql连接对象
conn.close()
成功