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环境下运行过,可以直接复制粘贴。