首页 > 代码库 > python连接MySQL

python连接MySQL

    再python3中连接mysql的模块位pymysql,我们可以通过pip来安装:

1 pip install pymysql

这样我们就可以使用该模块连接mysql了。

连接mysql用到pymysql的Connect()模块,

 1 Connect(*args, **kwargs)  #Connect方法
 2     Establish a connection to the MySQL database. Accepts several
 3     arguments:
 4 
 5     host: Host where the database server is located
 6     user: Username to log in as
 7     password: Password to use.
 8     database: Database to use, None to not use a particular one.
 9     port: MySQL port to use, default is usually OK. (default: 3306)
10     bind_address: When the client has multiple network interfaces, specify the interface from which to connect to the host. Argument can be a hostname or an IP address.
11     unix_socket: Optionally, you can use a unix socket rather than TCP/IP.
12     charset: Charset you want to use.

连接数据库后需要设置游标(cursor)进行数据库的执行操作conn.cursor():

1 >>> help(conn.cursor) #创建游标
2 Help on method cursor in module pymysql.connections:
3 
4 cursor(cursor=None) method of pymysql.connections.Connection instance
5     Create a new cursor to execute queries with

设置了cursor后,就可以写sql语句,使用cursor的实例去执行了,执行用到execute()方法:

 1 >>> help(cursor.execute)   #execute方法
 2 Help on method execute in module pymysql.cursors:
 3 
 4 execute(query, args=None) method of pymysql.cursors.Cursor instance
 5     Execute a query
 6 
 7     :param str query: Query to execute.
 8 
 9     :param args: parameters used with query. (optional)
10     :type args: tuple, list or dict
11 
12     :return: Number of affected rows
13     :rtype: int
14 
15     If args is a list or tuple, %s can be used as a placeholder in the query.
16     If args is a dict, %(name)s can be used as a placeholder in the query.

执行sql语句后,查询返回的结果,可以使用cursor的fetchall()函数查看,这会返回一个元组,每个元组的元素还是一个元组cursor.fetchall():

1 >>> help(cursor.fetchall)
2 Help on method fetchall in module pymysql.cursors:
3 
4 fetchall() method of pymysql.cursors.Cursor instance
5     Fetch all the rows

可以使用for循环逐个查看结果。

下面是一个完整的例子:

技术分享
 1 import pymysql
 2 
 3 conn=pymysql.Connect(host=192.168.37.130,port=3306,user=root,password=123456,database=user)
 4 cursor=conn.cursor(pymysql.cursors.DictCursor)
 5 sql=select * from users
 6 res_num=cursor.execute(sql)
 7 print(res_num)
 8 res_content=cursor.fetchall()
 9 for i in res_content:
10     print(i)
View Code 

上面模拟了一个简单的数据库查询操作。下面我们在写一个简单的例子:

技术分享
 1 import pymysql
 2 
 3 conn=pymysql.Connect(host=192.168.37.130,port=3306,user=root,password=123456,database=user)
 4 cursor=conn.cursor(pymysql.cursors.DictCursor)
 5 name=input(Input name:).strip()
 6 sql=select * from users where name like %s
 7 res_num=cursor.execute(sql,name )
 8 if res_num>0:
 9     res_content=cursor.fetchall()
10     for i in res_content:
11         print(i)
12 else:
13     print(Not in database)
View Code

 

python连接MySQL