《Python數據處理》6.7.3筆記:Sqlite3數據庫的創建命令、No module named 'MySQLdb'以及dataset操作MySQL

一、創建不成功的源碼

源碼:

sqlite3 data_wrangling.db

報錯:

'sqlite3' 不是內部或外部命令,也不是可運行的程序或批處理文件。

在這裏插入圖片描述

二、成功創建的代碼

源自《python數據分析基礎》

import sqlite3

con = sqlite3.connect('data_wrangling.db')
con.commit()

在這裏插入圖片描述

三、dataset鏈接mysql

示例代碼,源自dataset示例,鏈接: link.

# connecting to a MySQL database with user and password
db = dataset.connect('mysql://user:password@localhost/mydatabase')
table = db['user']
table.insert(dict(name='John Doe', age=46, country='China'))
 print(db.tables)

第一個報錯:

ModuleNotFoundError: No module named 'MySQLdb'

缺少MySQLdb,參照《MySQLdb安裝與使用》,下載MySQL-Python,
在這裏插入圖片描述

第二個報錯:

error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/

在這裏插入圖片描述
還要下載 Microsoft Visual C++ 14.0,

參照《解決error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"兩個方法》找到辦法,但是在檢索Microsoft Visual C++ 14.0時發現Microsoft Visual C++ 14.0就是Visual Studio Community 2019的舊版啊!

在這裏插入圖片描述
但是已經下載了Visual Studio Community 2019
在這裏插入圖片描述
不應該有問題的啊!

重新找了一篇文章《Python創建本地數據庫》,MySQLdb在mysqlclient中,於是

import os

os.system('pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysqlclient')

下載成功
在這裏插入圖片描述

重新connect mysql沒有報錯
在這裏插入圖片描述

第三個報錯:

sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2002, "Can't connect to MySQL server on 'localhost' (10061)")

一看沒有啓動mysql,那就啓動

在這裏插入圖片描述

第四個報錯:

sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1049, "Unknown database 'mydatabase'")

原因:沒有創建數據庫

創建數據庫mydatabase的指令

import pymysql

db = pymysql.connect(host = 'localhost', user = 'root', password = '你自己的密碼', port = 3306)
cursor = db.cursor()
cursor.execute("CREATE DATABASE mydatabase DEFAULT CHARACTER SET utf8")
db.close()

使用pymysql創建的數據庫mydatabase

現在成功
在這裏插入圖片描述

使用dataset也可以創建

對源碼進行改進

源碼:

	result = db.query('SELECT country, COUNT(*) c FROM user GROUP BY country')
for row in result:
	print(row['country'], row['c'])

利用query()進行mysql傳參

db = dataset.connect('mysql://root:(密碼)@localhost')
result = db.query("CREATE DATABASE mydatabase_ DEFAULT 	CHARACTER SET utf8")
db = dataset.connect('mysql://root:密碼@localhost/mydatabase_')
table = db['users']
table.insert(dict(name='John Doe', age=46, country='China'))
print(db.tables)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章