天天看點

第一次使用mysql_第一次使用MySQL遇到的問題

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;

記得所有的指令要以   ;   結尾。

第一次使用mysql_第一次使用MySQL遇到的問題

Step3:選擇要查詢的資料庫

test 是我建的資料庫的名字,前面幾個都是預設的資料庫,用于管理的。

use test;

第一次使用mysql_第一次使用MySQL遇到的問題

Step4: 顯示這個資料庫裡的表

show tables;

Step5:顯示這個表的具體内容

persons 是我的test資料庫裡的一個表

select * from persons;

好像MySQL的GUI挺多的,覺得指令行非常麻煩的朋友,可以直接下載下傳各種各樣的MySQL的GUI。很好找。

所有的代碼和指令在win10環境下運作過,可以直接複制粘貼。