1.什么是MySQLdb?
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范V2.0,基于 MySQL C API 上建立的。
2.如何连接数据库?
#!/usr/bin/python# -*- coding: UTF-8 -*-import MySQLdb
# 打开数据库连接db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB",charset='utf8' )
# 使用cursor()方法获取操作游标cursor = db.cursor()
# 使用execute方法执行SQL语句cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据data = cursor.fetchone()
print "Database version : %s " % data
# 关闭数据库连接db.close()
3.如何创建数据库表?
#!/usr/bin/python
# -*- coding: UTF-8 -*-import MySQLdb
# 打开数据库连接db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB",charset='utf8' )
# 使用cursor()方法获取操作游标cursor = db.cursor()
# 如果数据表已经存在使用 execute() 方法删除表。cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 创建数据表SQL语句sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )"""cursor.execute(sql)
# 关闭数据库连接db.close()
4.如何执行数据插入?
#!/usr/bin/python
# -*- coding: UTF-8 -*-import MySQLdb
# 打开数据库连接db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB",charset='utf8' )
# 使用cursor()方法获取操作游标cursor = db.cursor()
# SQL 插入语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""try:
# 执行sql语句 cursor.execute(sql)
# 提交到数据库执行 db.commit()except:
# Rollback in case there is any error db.rollback()
# 关闭数据库连接db.close()
5.如何执行数据库查询操作?
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall():接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
6.如何更新数据库数据?
#!/usr/bin/python
# -*- coding: UTF-8 -*-import MySQLdb
# 打开数据库连接db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB",charset='utf8' )
# 使用cursor()方法获取操作游标cursor = db.cursor()
# SQL 更新语句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')try:
# 执行SQL语句 cursor.execute(sql)
# 提交到数据库执行 db.commit()except:
# 发生错误时回滚 db.rollback()
# 关闭数据库连接db.close()
7.如何删除数据库数据?
#!/usr/bin/python
# -*- coding: UTF-8 -*-import MySQLdb
# 打开数据库连接db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB",charset='utf8' )
# 使用cursor()方法获取操作游标cursor = db.cursor()
# SQL 删除语句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try:
# 执行SQL语句 cursor.execute(sql)
# 提交修改 db.commit()except:
# 发生错误时回滚 db.rollback()
# 关闭连接db.close()
8.如何使用数据库事务?
# SQL删除记录语句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try:
# 执行SQL语句 cursor.execute(sql)
# 向数据库提交 db.commit()except:
# 发生错误时回滚 db.rollback()
9.python如何操作redis?
连接- 直接连接: import redis r = redis.Redis(host='10.211.55.4', port=6379) r.set('foo', 'Bar')
# 这里的方法与Redis命令类似
print r.get('foo')- 连接池: import redis pool = redis.ConnectionPool(host='10.211.55.4', port=6379) r = redis.Redis(connection_pool=pool) r.set('foo', 'Bar')
print r.get('foo')
10.如果redis中的某个列表中的数据量非常大,如何实现循环显示每一个值?
def list_iter(key, count=3):
start = 0
while True:
result = conn.lrange(key, start, start+count-1)
start += count
if not result:
break
for item in result:
yield item# 调用 for val in list_iter('num_list'): print(val)
11.什么是一致性哈希?Python中是否有相应模块?
一致性hash算法(DHT)可以通过减少影响范围的方式,解决增减服务器导致的数据散列问题,从而解决了分布式环境下负载均衡问题;
如果存在热点数据,可以通过增添节点的方式,对热点区间进行划分,将压力分配至其他服务器,重新达到负载均衡的状态。
Python模块--hash_ring,即Python中的一致性hash。
福利:私信回复【01】可免费获取python入门教程视频