本文将以SQLite、MySQL,PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作。





SQLite

SQLite可能是与Python连接的最方便的数据库,因为我们不需要安装任何外部Python SQL模块即可使用。默认情况下,Python会自带一个名为sqlite3的Python SQL库,我们可以使用该库与SQLite数据库进行交互。而且,我们甚至不需要安装和运行SQLite服务器即可执行数据库操作

下面是使用sqlite3连接到SQLite数据库的方法,看代码就行 ,关键位置都给了注释

#导入相关模块
import sqlite3
from sqlite3 import Error

def create_connection(path):
    connection = None
    try:
  #使用.connect()连接,并将SQLite数据库路径作为参数。如果数据库位于指定位置,则建立与数据库的连接。否则,将在指定位置创建一个新数据库,并建立连接。
        connection = sqlite3.connect(path)
        print("成功连接")
    except Error as e:
        print(f"错误 '{e}' 发生")

    return connection

connect(path)返回一个连接对象,该对象由create_connection()返回。此连接对象可用于在SQLite数据库上执行查询接下来执行下面的命令就可以连接到数据库

connection = create_connection("填写你的路径\filename.sqlite")

执行完毕后会在目录下面看到多了一个以.sqlite结尾的文件。




MySQL


与SQLite不同,没有默认的Python SQL模块可用于连接到MySQL数据库。相反,我们需要安装mysql-connector-python以便从Python应用程序中与MySQL数据库进行交互。

 pip install mysql-connector-python

但是需要注意,MySQL是基于服务器的数据库管理系统。一台MySQL服务器可以有多个数据库。与SQLite不同,在SQLite中创建连接等同于创建数据库,MySQL数据库两步来创建数据库:首先与MySQL服务器建立连接,然后执行一个单独的查询来创建数据库。
import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password):
    connection = None
    try:
  #创建连接
        connection = mysql.connector.connect(
            host=host_name,
            user=user_name,
            passwd=user_password
        )
        print("连接成功")
    except Error as e:
        print(f"错误 '{e}' 发生")

    return connection

connection = create_connection("localhost""root""")
但是到目前为止,我们仅仅连接成功到mysql,并没有创建database,因此我们定义另一个create_database()接受两个参数的函数:connection是connection要与之交互的数据库服务器的对象。query 是创建数据库的查询。
def create_database(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        print("Database created successfully")
    except Error as e:
        print(f"The error '{e}' occurred")


要执行查询,我们可以使用cursor对象。将query要执行传递给cursor.execute()

create_database_query = "CREATE DATABASE zaoqi" #创建database
create_database(connection, create_database_query)

至此,我们就已经在数据库服务器上创建了一个数据库。





PostgreSQL

与MySQL一样,没有默认的Python SQL库可用于与PostgreSQL数据库进行交互。因此需要安装第三方Python SQL驱动程序才能与PostgreSQL交互。纳闷我们选择的驱动程序是psycopg2。

pip install psycopg2

与SQLite和MySQL数据库一样,我们定义create_connection()与PostgreSQL数据库建立连接:

import psycopg2
from psycopg2 import OperationalError

def create_connection(db_name, db_user, db_password, db_host, db_port):
   connection = None
   try:
       connection = psycopg2.connect(
           database=db_name,
           user=db_user,
           password=db_password,
           host=db_host,
           port=db_port,
       )
       print("Connection to PostgreSQL DB successful")
   except OperationalError as e:
       print(f"The error '{e}' occurred")
   return connection

接下来使用和mysql一样的办法创建一个database

def create_database(connection, query):
   connection.autocommit = True
   cursor = connection.cursor()
   try:
       cursor.execute(query)
       print("Query executed successfully")
   except OperationalError as e:
       print(f"The error '{e}' occurred")

create_database_query = "CREATE DATABASE zaoqi"
create_database(connection, create_database_query)

至此我们已经学会如何用python连接数据库并创建database,其他的操作比如增删改查就可以类比得到。


©著作权归作者所有:来自51CTO博客作者mb5fe18e32e4691的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 数据工程师面试必备——Python与数据库的那些事
  2. PHP操作Redis数据库常用方法(总结)
  3. PHP函数库之类与对象详解
  4. 关于PHP+jQuery-ui拖动浮动层排序并保存到数据库实例
  5. 了解一下PHP面向对象的相关概念
  6. 浅谈PHP面向对象的继承
  7. 浅谈PHP连接MySQL数据库的三种方式
  8. PHP数据库框架Medoo1.6安装教程
  9. PHP中的面向对象实践-基本实践案例

随机推荐

  1. 起个简单枯燥的标题:找出连续差相同的数字
  2. 看了知乎,直呼牛逼 !
  3. 阿里大神的刷题笔记.PDF
  4. 吴师兄领证之前谈了多少个女朋友?
  5. 神器 MdNice !
  6. 编程指北
  7. GitHub 全球排名第 36 的辣个男人!
  8. 元旦发几个大红包
  9. 扑克牌魔术里面的算法
  10. 使用pm2后台运行nodejs程序