首先了解一下MySQL
数据库:
简单理解,就是好多表,类似Excel的工作簿
操作系统看来:文件是文件的整体,文件内容不关心
数据库系统看来:每一条记录才是问题的关键,比文件更细
数据表:
二维的数据结构,有行有列,有一个略显奇怪的名字:关系
一行叫一条记录,代表一个交易、一个数据条目:机器学习中叫“样本”
一列叫一个字段,代表记录的性情:机器学习中叫“特征”
关于MySQL的安装
安装过程略,安装完成需要配置环境变量,把bin目录的路径添加上去,在cmd中输入where mysql或者输入path查看是否安装成功
启动服务
以管理员身份启动cmd:
初始化数据库 mysqld --initialize
安装服务 mysqld --install mysql56
启动服务 net start mysql56
连接root用户:mysql -uroot mysql
查看用户情况:select host,user,password from mysql.user;
·Database:一个数据库相当于一个excel的工作簿,一个table相当于一个工作表
查看当前数据库:select database();
查看所有数据库:show databases;
创建数据库
create database spider2 DEFAULT CHARACTER SET utf8; // 中文支持
删除数据库
drop database <数据库名>;
关于tables
查看tables:show() tables;
删除数据表:DROP TABLE table_name;
使用python连接数据库
import pymysql
# 简单的查找 # 连接数据库
conn = pymysql.connect(host='localhost', port=3306, charset="UTF8", user='root', password='dpb238031', database='mysql')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = 'select * from runoob_tbl'
row = cursor.execute(sql)
result = cursor.fetchall()
python实现增删改
增
sql = """INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date)
VALUES ("JAVA 教程", "RUNOOB.COM", '2016-09-06')"""
cursor.execute(sql)
conn.commit() #提交事务,如果不提交,更新不生效
删
sql = """delete from runoob_tbl where runoob_id = 7 """
cursor.execute(sql)
conn.commit()
改
sql = """UPDATE runoob_tbl SET runoob_title = '我爱学习',
runoob_author = '杜',submission_date = '2021-05-08' WHERE runoob_id = 7"""
cursor.execute(sql)
conn.commit()
最后不要忘了关闭
cursor.close()
conn.close()
使用pandas向已有mysql表格中写入数据
import pandas as pd
from sqlalchemy import create_engine
conn3 = create_engine('mysql+pymysql://root:dpb238031@localhost:3306/mysql?charset=utf8')
sql = 'select * from runoob_tbl'
rub = pd.read_sql(sql, conn3)
df = pd.DataFrame({'runoob_id': [1, 2, 3], 'runoob_title': ['zhangsan', 'lisi', 'wangwu'],
'runoob_author': [6, 8, 9], 'submission_date': ['2016-09-06', '2016-09-06', '2016-09-06']})
df.to_sql(name='aaaa', con=conn3, if_exists='append', index=True)