一.使用 MySQL

MySQL 是 Web 世界中使用最广泛的数据库服务器。
MySQL 内部有多种数据库引擎,最常用的引擎是支持数据库事务的 InnoDB。


二.安装MySQL
1.一定要进行设置密码,确保数据库安全;
2.配置文件为/etc/my.cnf;
3.修改数据库默认的编码全部改为 UTF8;
4. 查看编码格式:show variables like '%char%';
5.安装MySQLpython,封装了 MySQL C 驱动的 Python 驱动。


安装数据库

wKioL1m0oieig09TAAAbWtAlKuA138.png

安装python数据库模块

wKioL1m0oieRnxmtAABP8t4NnT8124.png

设置密码

wKiom1m0okzyMYdwAAAt1bWscpo489.png


三.建立MySQL连接
conn = MySQLdb.connect(host='localhost', \
user='root',passwd='123456', \
db='testpython', \
port=3306,charset='utf8')

host : MySQL 数据库地址
user: 数据库登陆用户名
passwd: 数据库登陆密码
db: 登陆数据库后,需要操作的库名
port: 数据库监听端口,默认为 3306
charset: 数据库编码

wKioL1m0o5eibEcaAAAmVQjW9L0096.png

四.MySQL连接操作
1.commit() 如果数据库表进行了修改,提交保存当前的数据。
2. rollback() 如果有权限,就取消当前的操作,否则报错
3.cursor() 游标指针。


五.游标操作
1.创建一个数据库游标
wKiom1m0pObTn3mKAAAMe_oWIj8904.png

cursor() 提供的方法来进行操作,方法主要是 :
(1)执行命令
(2)接收结果游标操作

wKioL1m0pVHjKB42AAAQeIVcElw033.png


2.cursor 执行命令的方法:

(1)execute(query, args): 执行单条 sql 语句。 query 为 sql 语句本身, args 为参数值的列表。执行后返回值为受影响的行数。

wKioL1m0pyKwcoUhAABGpNXf6sc735.png


(2)executemany(query, args): 执行单条 sql 语句 , 但是重复执行参数列表里的参数 , 返回值为受影响的行数。

wKioL1m0s5zzKDziAAAjw0jVajs839.png

(3)conn.commit()    提交事务

wKioL1m0s8igbyF0AAAMRFJuvd8919.png

wKiom1m0tMDSBZg6AABAnr_XHaA490.png


六.插入数据
日常工作中,大多数会先拼接一个 SQL 语句 然后再执行,实现插入数据的操作:
sql = "INSERT INTO member (username,password,email)
values ('%s','%s','%s')" % ('westos','123456','westos@163.com')
cur.execute(sql)
conn.commit()

单条

wKioL1m0tNHxh7p5AAAfxBpFamo434.png

多条,设置变量

wKiom1m0qIPiuKtcAAAx2IWhYjw675.png


七.查询数据

1.fetchone(): 返回一条结果行 .

wKiom1m0tsPyqMSsAACgX6nKmwE532.png

wKioL1m0tp_CVWm4AACaD-_amVs470.png


2.fetchall(self): 接收全部的返回结果行 .

wKiom1m0tsTBj9MVAAA77IqSftA296.png


3.fetchmany(size=None): 接收 size 条返回结果行 . 如果 size 的值大于返回的结果行的数量 , 则会返回 cursor.arraysize 条数据 .

wKiom1m0tsSDw4FlAABdbJiqsXg152.png


4.scroll(value, mode='relative'): 移动指针到某一行 .
如果 mode='relative', 则表示从当前所在行移动 value 条 ;
如果 mode='absolute', 则表示从结果集的第一行移动 value 条;



八.练习:查询电脑磁盘使用率,并将数据导入到数据库


disk_used.py

wKiom1m2fSfR6d2AAAAx-x6c-Qo093.png


conf.py

wKiom1m2fSeiUtOgAAAbiLcou6Y918.png


HostInfoDb.py


wKioL1m2fQDyqZWmAAAAfU3KSHc366.png测试结果:查询数据库info表

wKioL1m2fD2xSvcmAABnVqj6ncw355.png