python下用mysqldb连接使用数据库


第一步:连接

import MySQLdb #首先需要引入mysqldb即Python 连接 MySQL 的模块。
conn=MySQLdb.connect(host="localhost",user="root",passwd="")#此处等价于缺省值时即conn=MySQLdb.connect()
cur = conn.cursor() #创建游标,用于发送sql指令 
这样就可以用游标cur发送sql指令给mysql了。


第二步:操作

1.创建数据库

cur.execute('create database adams')

再在mysql下查看一下,当然也可以直接在python中查看,但这里写一下如何在mysql下查看,便于两种环境的转换。

\

2.创建表

cur.execute('use adams') #表示接下来要使用数据库adams同mysql下的用法
cur.execute('create table test(ID int,name varchar(8),sex varchar(1))')
cur.execute('show tables')#在这里不能直接打印出tables,而要用如下命令查看
cur.fetchone()

得到如下结果:

vc/J2aOsu/mxvta7us1zcWzT777k09C52KGjPC9wPgo8cD4zLjEu1PY8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:java;">sqlim = "insert into test(ID,name,sex) values(%s,%s,%s)"#先把sql语句写下来,用格式化方法方便操作时传入可变的值,注意这里无论什么数据类型都用%s m1 = (1,'aaa','f') m2 = (2,'bbb','m') m3 = (3,'ccc','m') m4 = (4,'ddd','f') m5 = (5,'eee','m') cur.executemany(sqlim,[m1,m2,m3,m4,m5])#用列表把5个值和sql命令通过executemany命令执行。如果只有一个值的话把executemany改为execute把sqlim中values改为value,传入一个m参数就可以了。

3.2.查

cur.execute('select  * from test')
cur.fetchall()

得到如下结果

\

在这里,指针移动到了最后面,在执行cur.fetchone()就无法得到任何结果,所以需要移动指针

cur.scroll(offset,mode)#这scroll的用法和python中的文件操作所用的seek函数只有第一个参数是一样的,mode=absolute " relative,默认为relative。

我们把cur移到最前面

cur.scroll(0,‘absolute’)
cur.catchmany(2) #查到前两条数据

因为前面我们由cur.execute('select * from test')得到的是test中记录的条数,所以可以直接这样使用输出所有条目

cur.catchmany(cur.execute('select * from test'))

第三步:退出

先退出游标

cur.close()

在退出连接

conn.close()

申明

本文是在听网易云课堂疯狂的Python:快速入门精讲第37课时所做的笔记

评论关闭