首页 > 数据库 >极客编程python入门-数据库

极客编程python入门-数据库

时间:2023-01-15 11:31:12浏览次数:39  
标签:Cursor 极客 python 数据库 编程 cursor user close conn


数据库


程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。


使用SQLite


要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connectio n; 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。


# 导入SQLite驱动:
>>> import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
>>> conn = sqlite3.connect('test.db')
# 创建一个Cursor:
>>> cursor = conn.cursor()
# 执行一条SQL语句,创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.Cursor object at 0x10f8aa260>
# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.Cursor object at 0x10f8aa260>
# 通过rowcount获得插入的行数:
>>> cursor.rowcount
1
# 提交事务:
>>> conn.commit()
# 关闭Cursor:
>>> cursor.close()
# 关闭Connection:
>>> conn.close()


查询记录:


>>> conn = sqlite3.connect('test.db')
>>> cursor = conn.cursor()
# 执行查询语句:
>>> cursor.execute('select * from user where id=?', ('1',))
<sqlite3.Cursor object at 0x10f8aa340>
# 获得查询结果集:
>>> values = cursor.fetchall()
>>> values
[('1', 'Michael')]
>>> cursor.close()
>>> conn.close()


1、使用Python的DB-API时,只要搞清楚​​Connection​​​和​​Cursor​​对象,打开后一定记得关闭,就可以放心地使用。

2、使用​​Cursor​​​对象执行​​insert​​​,​​update​​​,​​delete​​​语句时,执行结果由​​rowcount​​返回影响的行数,就可以拿到执行结果。

3、使用​​Cursor​​​对象执行​​select​​​语句时,通过​​fetchall()​​​可以拿到结果集。结果集是一个​​list​​​,每个元素都是一个​​tuple​​,对应一行记录。


小结


在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过​​Connection​​​对象和​​Cursor​​对象操作数据。

要确保打开的​​Connection​​​对象和​​Cursor​​对象都正确地被关闭,否则,资源就会泄露。

如何才能确保出错的情况下也关闭掉​​Connection​​​对象和​​Cursor​​​对象呢?请回忆​​try:...except:...finally:...​​的用法。


MySQL


MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。


安装MySQL驱动


$ pip install mysql-connector-python --allow-external mysql-connector-python


如何连接到MySQL服务器的test数据库:


# 导入MySQL驱动:
>>> import mysql.connector
# 注意把password设为你的root口令:
>>> conn = mysql.connector.connect(user='root', password='password', database='test')
>>> cursor = conn.cursor()
# 创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
# 插入一行记录,注意MySQL的占位符是%s:
>>> cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])
>>> cursor.rowcount
1
# 提交事务:
>>> conn.commit()
>>> cursor.close()
# 运行查询:
>>> cursor = conn.cursor()
>>> cursor.execute('select * from user where id = %s', ('1',))
>>> values = cursor.fetchall()
>>> values
[('1', 'Michael')]
# 关闭Cursor和Connection:
>>> cursor.close()
True
>>> conn.close()


由于Python的DB-API定义都是通用的,所以,操作MySQL的数据库代码和SQLite类似。


小结


  • 执行INSERT等操作后要调用​​commit()​​提交事务;
  • MySQL的SQL占位符是​​%s​​。

标签:Cursor,极客,python,数据库,编程,cursor,user,close,conn
From: https://blog.51cto.com/apple0/6008475

相关文章

  • 不用描述符,不算懂 Python
    在日常的编码中,我们应该使用Python的描述符,来使代码更具有单一职责原则,也就是SRP(SingleResponsibilityPrinciple)原则,如果你还没有用过描述符,那快来看看怎么用吧,不然就......
  • 哪种编程语言更适合编写Selenium Web驱动程序脚本,Python还是Java?
    在本文中,我们将学习哪种编程语言更适合编写SeleniumWeb驱动程序脚本,Python或Java。从选项池中选择理想的编程语言可能很困难。Python,Java和Selenium都有自己的一套功能。越......
  • 我应该先学习哪种语言:HTML还是Python?
    在本文中,我们将学习首先学习哪种语言(HTML或Python)。PythonPython 是一种高级、面向对象、动态、解释和多用途编程语言,即多范式语言。其简单的语法和可读性使其非常适合用作......
  • Python是一种编程语言还是简单的脚本语言?
    在本文中,我们将了解Python编程还是简单的脚本语言,什么是脚本语言以及脚本和编程语言之间的区别。GuidoVanRossum开发了Python,这是最著名的编程语言之一。Python因其清......
  • 在Python中,什么是NumPy?如何使用?
    在本文中,我们将了解python中的NumPy以及如何在各种应用程序中使用它。什么是NumPy?NumPy是一个Python库,旨在有效地处理Python中的数组。它快速、简单易学且存储高效。它......
  • java多线程编程技术 +代码实例
    1.      java和他的API都可以使用并发。可以指定程序包含不同的执行线程,每个线程都具有自己的方法调用堆栈和程序计数器,使得线程在与其他线程并发地执行能够共享程序......
  • java 编程 之【评分系统】可以计算平均成绩和最烂评委
    /****@author:Kevin*@date:2011-07-18*@function:tomark0-10pointtoPlayers,andtheresultisdeletethehighest*andthelowest,atlastreservet......
  • java面试题之编程【火星车问题】
    /***author:Kevin*date:2011-07-17*function:TheproblemofMarscar.*ChinafirmlyopposesObama-Dalaimeeting*TheWARisactuallybegun!NowyouaretheComma......
  • 如何在 Python 中从 t 分数中找到 p 值?
    数据是一种宝贵的资产,在当今社会中起着至关重要的作用,因为一切都强烈依赖于数据。如今,所有技术都是数据驱动的,并且会定期生成大量数据。数据是数据科学家学会利用的未处理信......
  • Python 编程范式的科普
    编程范式是计算机编程的基本风格或典范模式。如果说每个编程者都在创造虚拟世界,那么编程范式就是程序员置身其中采用的世界观和方法论。常见的编程范式包括:面向过程编程面向......