11-python-SQL basics

1. Connect to the database

from pymysql import Connection
conn=Connection(  # 获取连接对象
    host="localhost",  # 主机名
    port=3306,  # 端口
    user="root",  # 用户名
    password="123456"  # 密码
)
print(conn.get_server_info())  # 打印数据库版本号
conn.close()  # 关闭数据库连接

2. Existing data

insert image description hereinsert image description here

3. Execute the query operation

x=conn.cursor() # 获取游标对象
conn.select_db("test410") # 选择数据库
x.execute("select * from ts;") # 执行sql语句,可不加分号
fanhui=x.fetchall()  # 通过fetchall()获取查询结果,存入fanhui,存入类型为元祖
for r in fanhui: # 遍历输出
    print(r)
conn.close()
"""例如输出为:
(1, 'jack', 18)
(2, 'peter', 19)
"""

insert image description here

4. Insert operation

(1) Manual commit

x=conn.cursor() # 获取游标对象
conn.select_db("test410") # 选择数据库
x.execute("insert into ts values(3,'xiaoming',20)") # 执行sql语句
conn.commit() # 确认提交
conn.close()

insert image description here
(2) Automatic commit

from pymysql import Connection
conn=Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True # 自动确认打开
)

x=conn.cursor()
conn.select_db("test410")
x.execute("insert into ts values(4,'ming',21)")

conn.close()

insert image description here

[Exercise 1]

Insert data from the "10-python object-oriented" comprehensive exercise into the database

insert image description here
Database name: py_sql
Table name: orders

insert image description here
[Solution]
change main.py to

from pymysql import Connection
from file_define import File1,File2

file1=File1("D:/面向对象资料1/2011年1月销售数据.txt")
file2=File2("D:/面向对象资料1/2011年2月销售数据JSON.txt")

ffile1=file1.read_data() # 调用方法,进行处理
ffile2=file2.read_data() # 调用方法,进行处理
all_data=ffile1+ffile2  # 所有数据组成的列表

conn=Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True
)

c=conn.cursor()
conn.select_db("py_sql")
for x in all_data:
    sql=f"insert into orders values('{
      
      x.date}','{
      
      x.ID}',{
      
      x.price},'{
      
      x.province}')"
    c.execute(sql)
conn.close()

Finish

insert image description here

[Exercise 2]

Get the above data from the database, convert it to json, and save it in a txt file

[untie]

from pymysql import Connection
import json
conn=Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True
)
c=conn.cursor()
conn.select_db("py_sql")
c.execute("select * from orders")
fanhui=c.fetchall()
conn.close()

lis=[]
for r in fanhui:
    dic={
    
    }
    dic["order_date"]=str(r[0])
    dic["order_id"]=r[1]
    dic["price"]=r[2]
    dic["povince"]=r[3]
    lis.append(dic) # 由字典组成的列表,便于下面转json
"""
当前lis样式如:
[{'order_date': '2011-01-01', 'order_id': '4b34218c-9f37-4e66-b33e-327ecd5fb897', 'price': 1689, 'povince': '湖南省'}, {'order_date': '2011-01-01', 'order_id': '5b6a6417-9a16-4243-9704-255719074bff', 'price': 2353, 'povince': '河北省'},...]
"""

f=open("D:/new_file_mysql.txt","w",encoding="UTF-8")
for j in range(len(lis)):
        s=json.dumps(lis[j],ensure_ascii=False)
        f.write(s)
        f.write("\n")
f.close()

result

insert image description here

Guess you like

Origin blog.csdn.net/weixin_45825865/article/details/130056681