python数据储存到mysql

  python数据储存到mysql

  其实同Java中的JDBC类似,都是先建立起来与数据库的链接conn,然后获取数据库操作对象(这里是会话指针cursor),然后执行SQL语句,提交,关闭。

 

一:安装pymysql包以及pandas包:

  pip install pymysql

  pip install pandas这个是读取mysql以及其他形式的数据所需要的包

二:pymysql使用步骤:

  1. 引入开发包;import pymysql

  2. 获取数据库连接;

    conn=pymysql.connect(host="localhost",user=root,password="",db="hanxiao",charset="utf-8",port=3306)
    #host:连接在本地,user:用户名,password:密码,db:数据库名称,charset:编码方式,port:运行端口3306

     

  3. 获取会话指针:conn.cursor()

  4. 执行SQL语句:cursor.excute(sql,(参数1,参数n))

  5. 提交:conn.commit()

  6. 关闭:conn.close

 

三:创建数据库,添加表单信息:

#创建数据库
def create_db():
    db = pymysql.connect(host=localhost,user=root, password=123456, db="test1",port=3306)
    cursor = db.cursor()
    cursor.execute("CREATE DATABASE test_db DEFAULT CHARACTER SET utf8")
    db.close()
?
#创建表单
def create_table(db):
    db = pymysql.connect(host=localhost, user=root, password=123456, port=3306, db=test)
    cursor = db.cursor()
    cursor.execute(DROP TABLE IF EXISTS test_table)  
    sql = CREATE TABLE IF NOT EXISTS test_table(id VARCHAR(255), name VARCHAR(255), age INT, PRIMARY KEY (id))
    cursor.execute(sql)
    db.close()
    
#insert数据到表单:
#方法1:
    def insert(value):
    db = pymysql.connect(host=localhost, user=root, password=123456, port=3306, db=tv)
    cursor = db.cursor()
    sql = "INSERT INTO test_table(id, name, age) values(%s, %s, %s)"
    try:
        cursor.execute(sql, value)
        db.commit()
        print(插入数据成功)
    except:
        db.rollback()
        print("插入数据失败")
    db.close()
?
#方法2:
    # 创建SQL语句
    sql = "insert into `urls`(`urlname`,`urlhref`) values(%s,%s)"#为了防止sql注入,所以使用%s,%s来替换
    # 执行SQL语句,第一个是sql语句,第二个是补充%s的内容
    cursor.execute(sql, (url.get_text(), "https://en.wikipedia.org" + url["href"]))
?

 

四:读取mysql数据:

?
# 获取数据库连接
connection = pymysql.connect(host=localhost,
                             user=root,
                             password=123456,
                             db=wikiurl,
                             charset=utf8mb4)
try:
    #获取会话指针
    with connection.cursor() as cursor:
        #查询语句
        sql = "select `urlname`,`urlhref` from `urls` where `id` is not null"
        #查询所有行数,这里使用execute返回的是一个查询结果表
        count = cursor.execute(sql)
        print(count)
        #查询前三条数据:fetchmany:后面的内容是匹配的个数,从0开始
        result = cursor.fetchmany(size=3)
        print(result)
 
finally:
    connection.close()

 

五:读取mysql数据的时候需要使用pandas来读取(excel也是),否则返回的是一给int类型的值

import pandas
?
#利用pandas 模块导入mysql数据,读取mysql数据,第一个参数是sql操作语句,第二个参数是用cursor.execute捕获到的对象
a=pd.read_sql(sqlcmd,dbconn)
#取前5行数据
b=a.head()
print(b)
?
?
# 读取csv数据
# pd.read_csv()
# 读取excel数据
#pd.read_excel()
# 读取txt数据
#pd.read_table()

 

六:pandas包下载到一半就失败了,待续:

python数据储存到mysql

上一篇:linux 之 mysql 整合


下一篇:mariadb安装