天天看点

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