python和数据库交互_python与MySQL数据库的交互

1、首先安装本地MySQL

此步骤不再赘述

2、启动本地MySQL

在contana的搜索框张收入cmd,然后右键单击,并选择以管理员身份运行!

切换到C盘根目录:

C:\WINDOWS\system32>cd ..

C:\Windows>cd ..

C:\>C:\>D:

D:\>cd D:\navicat\mysql-5.6.44-winx64\binD:\navicat\mysql-5.6.44-winx64\bin>net start mysql

MySQL 服务正在启动 .

MySQL 服务已经启动成功。

D:\navicat\mysql-5.6.44-winx64\bin>mysql -uroot -p#这里直接enter键,进入MySQL

mysql>

进入MySQL后,进行以下操作:

创建数据库my_suppliers,选择创建的数据库,在新创建的数据库下新建一个数据表Suppliers,描述数据表,创建一个新用户clinton,向新用户授予所有权限。

CREATE DATABASE my_suppliers;

Query OK,1 row affected (0.05sec)

mysql>use my_suppliers;

Database changed

mysql>CREATE TABLE IF NOT EXISTS Suppliers-> (Suppliers VARCHAR(20),-> Invoice_Number VARCHAR(20),-> Part_Number VARCHAR(20),->Cost FLOAT,->Purchase_date date);

Query OK, 0 rows affected (0.24sec)

mysql>describe Suppliers;+----------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------------+-------------+------+-----+---------+-------+

| Suppliers | varchar(20) | YES | | NULL | |

| Invoice_Number | varchar(20) | YES | | NULL | |

| Part_Number | varchar(20) | YES | | NULL | |

| Cost | float | YES | | NULL | |

| Purchase_date | date | YES | | NULL | |

+----------------+-------------+------+-----+---------+-------+

5 rows in set (0.01sec)

mysql> CREATE USER ‘clinton‘@‘localhost‘ IDENTIFIED BY ‘secret_password‘;

Query OK, 0 rows affected (0.00sec)

mysql> GRANT ALL PRIVILEGES ON my_suppliers.* TO ‘clinton‘@‘localhost‘;

Query OK, 0 rows affected (0.00sec)

mysql>FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

3、使用python向MySQL表中插入新记录

该脚本会将CSV文件的数据插入到MySQL中的Suppliers表中:

#!/usr/bin/env python3

importsqlite3importcsvimportMySQLdbfrom datetime importdatetime,date

input_file= "F://python入门//数据1//CSV测试数据.csv"

#连接到数据库

con = MySQLdb.connect(host=‘localhost‘,port=3306,db=‘my_suppliers‘,user=‘clinton‘, passwd=‘secret_password‘)#创建了一个光标

c =con.cursor()#从CSV格式的输入文件中读取要加载到数据库中的数据,创建file_reader对象,用于存储CSV中的数据集

file_reader = csv.reader(open(input_file,‘r‘,newline=‘‘))#从输入文件中读入第一行

header =next(file_reader)#将输入的所有数据进行循环,先是每行循环,再是每列循环

for row infile_reader:

data=[]for column_index inrange(len(header)):if column_index < 4:

data.append(str(row[column_index]).lstrip(‘$‘).replace(‘,‘,‘‘).strip())else:

a_date= datetime.date(datetime.strptime(str(row[column_index]),‘%m/%d/%Y‘))

a_date= a_date.strftime(‘%Y-%m-%d‘)

data.append(a_date)print(data)

c.execute("""INSERT INTO Suppliers VALUES(%s,%s,%s,%s,%s)""",data)#将修改保存到数据库

con.commit()print(‘………………‘)#执行选择所有数据的SQL

c.execute("SELECT * FROM Suppliers")#返回结果集中的所有行,返回的是一个大的列表

rows =c.fetchall()print(rows)print(‘………………‘)for row inrows:

row_list_output=[]for column_index inrange(len(row)):

row_list_output.append(str(row[column_index]))print(row_list_output)

原文:https://www.cnblogs.com/xiao02fang/p/12644119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值