当前位置:K88软件开发文章中心编程语言PythonPython01 → 文章内容

Python MySQL - mysql-connector 驱动

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-10 11:00:29

w.zhihu.com')也可以读取指定的字段数据:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("SELECT name, url FROM sites")myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:('RUNOOB', 'https:


//www.k88.net')('Google', 'https:


//www.google.com')('Github', 'https:


//www.github.com')('Taobao', 'https:


//www.taobao.com')('stackoverflow', 'https:


//www.stackoverflow.com/')('Zhihu', 'https:


//www.zhihu.com')如果我们只想读取一条数据,可以使用 fetchone() 方法:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("SELECT * FROM sites")myresult = mycursor.fetchone()print(myresult)执行代码,输出结果为:(1, 'RUNOOB', 'https:


//www.k88.net')where 条件语句如果我们要读取指定条件的数据,可以使用 where 语句:demo_mysql_test.py读取 name 字段为 RUNOOB 的记录:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "SELECT * FROM sites WHERE name ='RUNOOB'"mycursor.execute(sql)myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(1, 'RUNOOB', 'https:


//www.k88.net')也可以使用通配符 %:demo_mysql_test.pyimport mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "SELECT * FROM sites WHERE url LIKE '%oo%'"mycursor.execute(sql)myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(1, 'RUNOOB', 'https:


//www.k88.net')(2, 'Google', 'https:


//www.google.com')为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义查询的条件:demo_mysql_test.pyimport mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "SELECT * FROM sites WHERE name = %s"na = ("RUNOOB", )mycursor.execute(sql, na)myresult = mycursor.fetchall()for x in myresult:


print(x)排序查询结果排序可以使用 ORDER BY 语句,默认的排序方式为升序,关键字为 ASC,如果要设置降序排序,可以设置关键字 DESC。demo_mysql_test.py按 name 字段字母的升序排序:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "SELECT * FROM sites ORDER BY name"mycursor.execute(sql)myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(3, 'Github', 'https:


//www.github.com')(2, 'Google', 'https:


//www.google.com')(1, 'RUNOOB', 'https:


//www.k88.net')(5, 'stackoverflow', 'https:


//www.stackoverflow.com/')(4, 'Taobao', 'https:


//www.taobao.com')(6, 'Zhihu', 'https:


//www.zhihu.com')降序排序实例:demo_mysql_test.py按 name 字段字母的降序排序:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "SELECT * FROM sites ORDER BY name DESC"mycursor.execute(sql)myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(6, 'Zhihu', 'https:


//www.zhihu.com')(4, 'Taobao', 'https:


//www.taobao.com')(5, 'stackoverflow', 'https:


//www.stackoverflow.com/')(1, 'RUNOOB', 'https:


//www.k88.net')(2, 'Google', 'https:


//www.google.com')(3, 'Github', 'https:


//www.github.com')Limit如果我们要设置查询的数据量,可以通过 "LIMIT" 语句来指定demo_mysql_test.py读取前 3 条记录:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("SELECT * FROM sites LIMIT 3")myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(1, 'RUNOOB', 'https:


//www.k88.net')(2, 'Google', 'https:


//www.google.com')(3, 'Github', 'https:


//www.github.com')也可以指定起始位置,使用的关键字是 OFFSET:demo_mysql_test.py从第二条开始读取前 3 条记录:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("SELECT * FROM sites LIMIT 3 OFFSET 1")


# 0 为 第一条,1 为第二条,以此类推myresult = mycursor.fetchall()for x in myresult:


print(x)执行代码,输出结果为:(2, 'Google', 'https:


//www.google.com')(3, 'Github', 'https:


//www.github.com')(4, 'Taobao', 'https:


//www.taobao.com')删除记录删除记录使用 "DELETE FROM" 语句:demo_mysql_test.py删除 name 为 stackoverflow 的记录:import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "DELETE FROM sites WHERE name = 'stackoverflow'"mycursor.execute(sql)mydb.commit()print(mycursor.rowcount, " 条记录删除")执行代码,输出结果为:1 条记录删除注意:要慎重使用删除语句,删除语句要确保指定了 WHERE 条件语句,否则会导致整表数据被删除。为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义删除语句的条件:demo_mysql_test.pyimport mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()

上一页  [1] [2] [3]  下一页


Python MySQL - mysql-connector 驱动