PyCharm(IDE)中的問題
社群版的PyCharm預設沒有安裝database插件,要自己手動從File->settings->plugins中下載下傳。
IDE裡的插件應該隻是和資料庫建立連接配接,不能直接建立資料庫。是以即使連接配接成功,也不能打開資料庫。
應該先從資料庫管理軟體那裡,建立一個DataBase,然後再在IDE中設定連接配接的問題。
(補:根據上一堂課,老師給我們講關系型資料庫時的說法,應該是所有的IDE都不能直接通路MySQL的。資料庫管理軟體和應用軟體是分開的。)
MySQL的問題
連接配接問題
首先就是IDE都連不上MySQL,報錯
MySQL 報錯: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
解決方法是,登入本地資料庫之後,執行以下兩條指令,更改時區(這個報錯是時鐘問題,資料庫的時鐘是美國的,我們得手動改成中國的時區)
show variables like '%time_zone%';
set global time_zone='+08:00';
建立資料庫
應該手動在bin目錄下(我的目錄是C:\MySQL\mysql-8.0.21-winx64\bin),登入mysql之後,建立一個資料庫建立資料庫的指令:
database 資料庫名稱 character set utf8;
資料庫建立成功,并且IDE和資料庫連接配接成功,我們就可以通過IDE操作資料庫了
操作資料庫
import pymysql as mysql
import json
def connectDB():
db = mysql.connect("127.0.0.1", "root", "root", "test")
return db
db = connectDB()
def createTable(db):
cursor = db.cursor()
sql = '''CREATE TABLE persons
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL);
'''
try:
cursor.execute(sql)
db.commit()
return True
except:
db.rollback()
return False
def insertRecords(db):
cursor = db.cursor()
try:
cursor.execute('DELETE FROM persons')
cursor.execute("INSERT INTO persons (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00)")
db.commit()
return True
except Exception as e:
print(e)
db.rollback()
return False
def selectRecords(db):
cursor = db.cursor()
sql = 'SELECT name,age,salary FROM persons ORDER BY age DESC'
cursor.execute(sql)
results = cursor.fetchall()
print(results)
fields = ['name', 'age', 'salary']
records = []
for row in results:
records.append(dict(zip(fields, row)))
return json.dumps(records)
if createTable(db):
print('成功建立persons表')
else:
print('persons表已經存在')
if insertRecords(db):
print('成功插入記錄')
else:
print('插入記錄失敗')
print(selectRecords(db))
# print(db.fetchall)
db.close()
我隻插入了一行資料,做個測試,MySQL的文法都很簡單,很容易查到。
在Python中,可以通過執行個體的execute語句直接按字元串執行資料庫的指令,和直接在資料庫終端操作是一樣的。
檢視資料庫的具體内容
我沒有安裝可視化工具(不太會用,我擔心配置環境的時候把資料庫弄亂了,就沒裝)
但是插入資料之後總想看一下它在表裡到底是什麼樣子。
在IDE裡好像不能直接檢視,是以我從終端一步一步檢視,順便理清楚了資料庫的結構。
Step1:登入
登入本地的資料庫,直接輸入下面的指令。
mysql -u root -p;
然後輸入密碼就行
Step2: 顯示所有資料庫
show databases;
記得所有的指令要以 ; 結尾。

Step3:選擇要查詢的資料庫
test 是我建的資料庫的名字,前面幾個都是預設的資料庫,用于管理的。
use test;
Step4: 顯示這個資料庫裡的表
show tables;
Step5:顯示這個表的具體内容
persons 是我的test資料庫裡的一個表
select * from persons;
好像MySQL的GUI挺多的,覺得指令行非常麻煩的朋友,可以直接下載下傳各種各樣的MySQL的GUI。很好找。
所有的代碼和指令在win10環境下運作過,可以直接複制粘貼。