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.05 sec) 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.24 sec) 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.01 sec) mysql> CREATE USER ‘clinton‘@‘localhost‘ IDENTIFIED BY ‘secret_password‘; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON my_suppliers.* TO ‘clinton‘@‘localhost‘; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
3、使用python向MySQL表中插入新记录
该脚本会将CSV文件的数据插入到MySQL中的Suppliers表中:
#!/usr/bin/env python3 import sqlite3 import csv import MySQLdb from datetime import datetime,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 in file_reader: data = [] for column_index in range(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 in rows: row_list_output = [] for column_index in range(len(row)): row_list_output.append(str(row[column_index])) print(row_list_output)