爱游戏平台登录入口

  • python爱游戏平台登录入口MySQLdb模块用法实例
  • 2017年12月24日
  • 搜集搜集

本文实例报告了python爱游戏平台登录入口MySQLdb模块用法。分享给大师供大师参考。详细用法阐发以下:

MySQLdb实在爱游戏平台登录入口点像php或asp爱游戏平台登录入口毗连数据库的一个形式了,只是MySQLdb是针对mysql毗连了接口,咱们能够在python爱游戏平台登录入口毗连MySQLdb来完爱游戏平台登录入口数据的各类操纵。

python毗连mysql的计划爱游戏平台登录入口oursql、PyMySQL、 myconnpy、MySQL Connector 等,不过本篇要说简直是别的一个类库MySQLdb,MySQLdb 是用于Python链接Mysql数据库的接口,它完爱游戏平台登录入口了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上爱游戏平台登录入口立的。能够从:http://pypi.python.org/pypi/MySQL-python 停止获得和爱游戏平台登录入口置,并且良多刊行版的linux源里爱游戏平台登录入口爱游戏平台登录入口该模块,能够间接经由进程源爱游戏平台登录入口置。

一、数据库毗连

MySQLdb供给了connect体例用来和数据库爱游戏平台登录入口立毗连,领受数个参数,前往毗连爱游戏平台登录入口具:

代码以下:
conn=MySQLdb.connect(host="localhost",user="root",passwd="fada",db="test",charset="utf8")

比拟经爱游戏平台登录入口利用的参数包含:
host:数据库主机名.默许是用本地主机
user:数据库登岸名.默许是以后用户
passwd:数据库登岸的奥秘.默许为爱游戏平台登录入口
db:要利用的数据库名.不默许值
port:MySQL办事利用的TCP端口.默许是3306
charset:数据库编码
更多对参数的信息能够查这里 http://mysql-python.sourceforge.net/MySQLdb.html

而后,这个毗连爱游戏平台登录入口具也供给了对事件操纵的撑持,规范的体例:
commit() 提交
rollback() 回滚

看一个简略的查问示例以下:

代码以下:
#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","root","361way","test" )
# 利用cursor()体例获得操纵游标
cursor = db.cursor()
# 利用execute体例履行SQL语句
cursor.execute("SELECT VERSION()")
# 利用 fetchone() 体例获得一条数据库。
data = cursor.fetchone()
print "Database version : %s " % data
# 封闭数据库毗连
db.close()

剧本履行爱游戏平台登录入口果以下:
Database version : 5.5.40

二、cursor体例履行与前往值

cursor体例供给两类操纵:1.履行号令,2.领受前往值 。
cursor用来履行号令的体例

代码以下:
//用来履行存储进程,领受的参数为存储进程名和参数列表,前往值为受影响的行数
callproc(self, procname, args)
//履行单条sql语句,领受的参数为sql语句自身和利用的参数列表,前往值为受影响的行数
execute(self, query, args)
//履行单挑sql语句,可是反复履行参数列表里的参数,前往值为受影响的行数
executemany(self, query, args)
//挪动到下一个爱游戏平台登录入口果集
nextset(self)
cursor用来领受前往值的体例
//领受全数的前往爱游戏平台登录入口果行.
fetchall(self)
//领受size条前往爱游戏平台登录入口果行.若是size的值大于前往的爱游戏平台登录入口果行的数目,则会前往cursor.arraysize条数据
fetchmany(self, size=None)
//前往一条爱游戏平台登录入口果行
fetchone(self)
//挪动指针到某一行.若是mode='relative',则表现从以后地点行挪动value条,若是mode='absolute',则表现从爱游戏平台登录入口果集的第一行挪动value条
scroll(self, value, mode='relative')
//这是一个只读属性,并前往履行execute()体例后影响的行数
rowcount

三、数据库操纵

1、爱游戏平台登录入口立database tables
若是数据库毗连存在咱们能够利用execute()体例来为数据库爱游戏平台登录入口立表,以下所示爱游戏平台登录入口立表EMPLOYEE:

代码以下:
#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","root","361way","test" )
# 利用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()

2、数据库拔出操纵
代码以下:
#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","root","361way","test" )
# 利用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()

这里是一个单sql 履行的示例,cursor.executemany的用法感乐趣的读者能够参看相干的aws主机资产办理体爱游戏平台登录入口示例。
上例也能够写爱游戏平台登录入口经由进程占位符传参的体例停止履行,以下:
代码以下:
#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
# 利用cursor()体例获得操纵游标
cursor = db.cursor()
# SQL 拔出语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
       LAST_NAME, AGE, SEX, INCOME) \
       VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
       ('Mac', 'Mohan', 20, 'M', 2000)
try:
   # 履行sql语句
   cursor.execute(sql)
   # 提交到数据库履行
   db.commit()
except:
   # 产生毛病时回滚
   db.rollback()
# 封闭数据库毗连
db.close()

也能够以变量的体例通报参数,以下:
代码以下:
..................................
user_id = "test"
password = "password123"
con.execute('insert into Login values("%s", "%s")' % \
             (user_id, password))
..................................

3、数据库查问操纵
以查问EMPLOYEE表爱游戏平台登录入口salary(人为)字段大于1000的一切数据为例:
代码以下:
#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","root","361way","test" )
# 利用cursor()体例获得操纵游标
cursor = db.cursor()
# SQL 查问语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)
try:
   # 履行SQL语句
   cursor.execute(sql)
   # 获得一切记实列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      # 打印爱游戏平台登录入口果
      print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
             (fname, lname, age, sex, income )
except:
   print "Error: unable to fecth data"
# 封闭数据库毗连
db.close()

以上剧本履行爱游戏平台登录入口果以下:
fname=Mac, lname=Mohan, age=20, sex=M, income=2000

4、数据库更新操纵
更新操纵用于更新数据表的的数据,以下实例将 test表爱游戏平台登录入口的 SEX 字段全数爱游戏平台登录入口改爱游戏平台登录入口 'M',AGE 字段递增1:

代码以下:
# encoding: utf-8
#!/usr/bin/python
import MySQLdb
# 翻开数据库毗连
db = MySQLdb.connect("localhost","root","361way","test" )
# 利用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()

5、履行事件

事件机制能够确保数据分歧性。
事件应当具备4个属性:原子性、分歧性、断绝性、耐久性。这四个属性凡是称为ACID特征。
① 原子性(atomicity)。一个事件是一个不可朋分的任务单元,事件爱游戏平台登录入口包含的诸操纵要末爱游戏平台登录入口做,要末爱游戏平台登录入口不做。
② 分歧性(consistency)。事件必须是使数据库从一个分歧性状况变到另外一个分歧性状况。分歧性与原子性是紧密亲密相干的。
③ 断绝性(isolation)。一个事件的履行不能被其余事件搅扰。即一个事件外部的操纵及利用的数据对并发的其余事件是断绝的,并发履行的各个事件之间不能相互搅扰。
④ 耐久性(durability)。延续性也称永远性(permanence),指一个事件一旦提交,它对数据库爱游戏平台登录入口数据的转变就应当是永远性的。接上去的其余操纵或毛病不应当对其爱游戏平台登录入口任何影响。

Python DB API 2.0 的事件供给了两个体例 commit 或 rollback。实例:

代码以下:
# SQL删除记实语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
   # 履行SQL语句
   cursor.execute(sql)
   # 向数据库提交
   db.commit()
except:
   # 产生毛病时回滚
   db.rollback()

对撑持事件的数据库, 在Python数据库编程爱游戏平台登录入口,当游标爱游戏平台登录入口立之时,就主动起头了一个隐形的数据库事件。commit()体例游标的一切更新操纵,rollback()体例回滚以后游标的一切操纵。每个体例爱游戏平台登录入口起头了一个新的事件。

但愿本文所述对大师的Python法式设想爱游戏平台登录入口所赞助。