当前位置:首页 > 数据库 > 正文

python连接数据库语句怎么写

Python连接数据库常用库如sqlite3、pymysql,语句示例:conn=sqlite3.connect(‘db.sqlite’)

Python连接数据库的核心在于使用相应的数据库驱动库,并通过标准接口完成连接、操作与关闭,以下是常见数据库的连接方法与示例:

SQLite数据库(Python内置支持)

适用场景:轻量级本地存储,无需安装数据库服务

驱动模块:sqlite3(Python标准库内置)

连接语句

import sqlite3 # 连接数据库(自动创建文件) conn = sqlite3.connect('example.db') # 创建游标对象 cursor = conn.cursor() # 执行SQL语句(如建表) cursor.execute(''' CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER ) ''') # 提交事务并关闭连接 conn.commit() conn.close()

特点

  • 文件型数据库,数据存储在.db文件中
  • 无需服务器配置,直接通过文件路径访问
  • 适合原型开发、测试或小型应用

MySQL数据库

适用场景:中型应用,需要网络访问的数据库服务

驱动模块:PyMySQL 或 mysql-connector-python

安装命令

python连接数据库语句怎么写 第1张

连接语句(PyMySQL示例)

import pymysql # 连接数据库 conn = pymysql.connect( host='localhost', # 数据库地址 user='root', # 用户名 password='123456', # 密码 database='test_db', # 数据库名称 charset='utf8mb4' # 编码 ) # 创建游标并执行SQL cursor = conn.cursor() cursor.execute('SELECT VERSION()') # 测试连接 print(cursor.fetchone()) # 输出MySQL版本 conn.close()

关键参数

  • host:数据库服务器地址(如0.0.1或localhost)
  • port:默认端口为3306(需与数据库配置一致)
  • charset:建议设置为utf8mb4以支持表情符号等特殊字符

PostgreSQL数据库

适用场景:复杂业务场景,需要高扩展性

驱动模块:psycopg2

安装命令

python连接数据库语句怎么写 第2张

连接语句

import psycopg2 # 连接数据库(DSN格式) conn = psycopg2.connect( dsn="dbname='test_db' user='postgres' password='123456' host='localhost' port='5432'" ) # 执行SQL并获取结果 cursor = conn.cursor() cursor.execute('SELECT VERSION()') print(cursor.fetchone()) conn.close()

特点

  • 默认端口为5432,支持复杂数据类型(如JSON、数组)
  • 需提前创建数据库和用户

MongoDB数据库(非关系型)

适用场景:文档型存储,高并发读写

驱动模块:pymongo

安装命令

pip install pymongo

连接语句

python连接数据库语句怎么写 第3张

from pymongo import MongoClient # 连接MongoDB(URI格式) client = MongoClient('mongodb://localhost:27017/') # 选择数据库和集合 db = client['test_db'] collection = db['users'] # 插入文档 doc = {'name': 'Alice', 'age': 25} collection.insert_one(doc) # 查询文档 for item in collection.find(): print(item)

关键参数

  • URI中可包含用户名密码(如mongodb://user:pass@localhost:27017/)
  • 默认端口为27017,无需预创建数据库

Redis数据库(键值存储)

适用场景:缓存、会话管理

驱动模块:redis

安装命令

pip install redis

连接语句

import redis # 连接Redis r = redis.Redis( host='localhost', # 地址 port=6379, # 默认端口 password=None # 若有密码需填写 ) # 设置键值对 r.set('key', 'value') # 获取值 print(r.get('key')) # 输出 b'value'

特点

  • 纯内存操作,高性能
  • 支持持久化(RDB/AOF)

主流数据库对比表

数据库类型 驱动/模块 默认端口 连接字符串示例 适用场景
SQLite sqlite3(内置) sqlite3.connect('example.db') 本地存储、测试
MySQL PyMySQL/mysql-connector 3306 pymysql.connect(host=...) 中小型Web应用、LAMP栈
PostgreSQL psycopg2 5432 postgresql://user:pass@host/db 复杂业务、高扩展性需求
MongoDB pymongo 27017 mongodb://user:pass@host:port 高并发、文档存储
Redis redis 6379 redis.Redis(host='localhost') 缓存、会话、消息队列

常见问题与解决方案(FAQs)

如何判断数据库连接是否成功?

  • 测试查询:执行简单SQL(如SELECT 1)或调用ping()方法(如Redis)。
  • 异常处理:用try-except捕获连接错误, try: conn = pymysql.connect(...) print("连接成功") except pymysql.Error as e: print(f"连接失败: {e}")

不同数据库的密码忘记怎么办?

  • MySQL:通过命令行重置(如ALTER USER 'root' IDENTIFIED BY 'new_pass';)或使用管理工具(如phpMyAdmin、SqlYog)重置。
  • PostgreSQL:修改pg_hba.conf文件后重启服务,或通过SQL语句ALTER USER postgres WITH PASSWORD 'new_pass';。
  • MongoDB:进入admin数据库后执行db.changeUserPassword("user", "new_pass");。
  • Redis:若未设置密码,可直接通过配置文件redis.conf添加requirepass项

0