MySQL数据库语言之connect()对象及其方法commit()||rollback()||cursor()结构及用法

  • MySQLdb.connect()

Python对MySQL数据库的调用,可以采用MySQLdb模块通过建立连接MySQLdb.connect()完成。

# 建立连接,就是实例化一个connect()对象
con = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",charset="utf8") 
  • connect()对象(官方文档)有三个常用方法:

    >>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))   # 游标的操作
    >>> cnx.commit()   # connect的操作
    

    向MySQL服务器提交当前事务。

    >>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))
    >>> cnx.rollback()
    

    当前事务中对数据的所有操作全部撤回,有点向ctrl+z

    cnx.close()
    

    等价于MySQLConnection.disconnect()

    cursor = connect.cursor([arg=value[, arg=value]...])
    # 返回一个MySQLCursor() object
    

    **游标(cursor)**是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。

    游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。

    **MySQL检索操作返回一组称为结果集的行。**这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行地处理所有行的简单方法(相对于成批地处理它们)。

    有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。

    简单理解:SELECT出的结果是黑盒整体,不能再进行拆分操作,而游标就是把SELECT的结果做为等值对象,附加新功能,就是可以进入导结果内部,再进行细致操作。

MySQLdb用游标(指针)cursor的方式操作数据库,cursor()提供的方法主要实现

  1. 执行命令
# 插入单条记录
>>> cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","[email protected]"))
1L   # 返回受影响的行数,此处只有1行
### 上述命令只是作出操作,数据库本身并未改变,如要数据库改变,需要下属命令
>>> conn.commit()   # 上面是游标操作,这里是将操作这件事务提交给数据库,相当于文本操作后需要ctrl+s保存

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

# 插入多条记录
>>> cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","[email protected]"),("facebook","222333","[email protected]"),("github","333444","[email protected]"),("docker","444555","[email protected]")))   # Value值有多个
4L
>>> conn.commit()
  1. 接收结果
# 对于发生操作的那几行,如果想要调查查看
fetchall(self):接收全部的返回结果行.
fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone():返回一条结果行.
scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.
  • SQL语言包含四个部分

    • 数据定义语言(DDL):用于定义和管理数据对象,包括数据库,数据表等。例如:CREATEDROPALTER等。
    • 数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERTUPDATEDELETE语句。
    • 数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。例如:SELETE
    • 数据控制语言(DCL):是用来管理数据库的语言,包括管理权限及数据更改。例如:GRANTREVOKECOMMITROLLBACK等。
  • Reference

  1. 菜鸟教程
  2. 12.数据库之MySQL(概述)
  3. MySQLdb User’s Guide
  4. 10.2 connection.MySQLConnection Class --> connect的各种方法
  5. Home / MySQL Stored Procedure / MySQL Cursor
  6. Mysql游标入门
  7. MYSQLdb Connection in Python
  8. 用Pyton操作数据库(1):建立连接和游标,并insert and commit

猜你喜欢

转载自blog.csdn.net/The_Time_Runner/article/details/89712588