Python操作泄露的QQ群数据库

之前没有一点儿操作数据库的实际经验,python也没有实现过完整的程序。几乎是走一步搜一步,学到的倒也挺多,对数据库没有那么陌生了。遇到的最大问题却是编码问题……

--------------------------------------------------------------------------------------

一、准备

1、下载泄漏的QQ数据库。7z格式压缩24.5G,解压后100G。包含11个GroupData.MDF与11个QQInfo.MDF。
2、安装SQL Server,采用的2005。计算机为Win7.
3、安装pymssql模块。使用的Python2.7,windows下没有官方发布的针对python2.7的pymssql,从这里得到的 猛点
      最好使用pyodbc,因为pymssql有中文编码问题。

二、添加数据库

只有MDF,没有LDF。MDF是数据库主文件,LDF是日志文件。
① 可以在SQL Server Management Studio中手动添加。数据库--右键附加--添加--选择MDF。会自动添加LDF信息,因为没有LDF,需要手动将其删除,不然会报错。
② 采用SQL语句批量附加:EXEC sp_attach_db DBName, FilePath
如 EXEC sp_attach_db "GroupData1", "H:\QQ数据库\QunData\GroupData1_Data.MDF"
每个GroupData数据库包含100个表,格式相同,存有QQ号与QQ群的对应关系,以及年龄昵称等信息。每个QQInfo数据库包含10张表,包含QQ群的标题,描述等信息。

三、Python连接数据库

# 采用pyssql:
conn = pymssql.connect(host='localhost', user='user', password='passwd', database='dbname')
# 采用pydobc:
conn = pyodbc.connect("DRIVER={SQL Server}; SERVER=127.0.0.1; DATABASE=dbname; UID=user; PWD=passwd")
cur = conn.curso
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
PyMySQL是Python下的一个MySQL驱动程序,实现了Python DB API v2.0 规范,并且支持Python3。下面是使用PyMySQL操作MySQL数据库的示例代码: 1. 安装PyMySQL 在终端中输入以下命令安装PyMySQL: ``` pip install pymysql ``` 2. 连接数据库 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 关闭数据库连接 db.close() ``` 3. 创建表 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 创建表 sql = """CREATE TABLE `employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `age` int(11) NOT NULL, `sex` varchar(10) NOT NULL, `income` float NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8""" cursor.execute(sql) # 关闭数据库连接 db.close() ``` 4. 插入数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 插入数据 sql = "INSERT INTO `employee`(`name`, `age`, `sex`, `income`) VALUES ('Tom', 25, 'Male', 5000.0)" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 5. 查询数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 查询数据 sql = "SELECT * FROM `employee` WHERE `age` > 20" cursor.execute(sql) # 获取查询结果 results = cursor.fetchall() for row in results: id = row[0] name = row[1] age = row[2] sex = row[3] income = row[4] print("id=%d,name=%s,age=%d,sex=%s,income=%.2f" % (id, name, age, sex, income)) # 关闭数据库连接 db.close() ``` 6. 更新数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 更新数据 sql = "UPDATE `employee` SET `income` = `income` * 1.1 WHERE `age` > 20" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 7. 删除数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 删除数据 sql = "DELETE FROM `employee` WHERE `age` > 25" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 以上就是使用PyMySQL操作MySQL数据库的示例代码。其中,db.commit()用于提交事务,如果不提交,则数据操作不会生效。如果有异常,则可以使用db.rollback()回滚事务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值