地 址:上海市青浦66號 電 話(huà):18069431671 網(wǎng)址:www.hunqingrc.com 郵 箱:[email protected]
在Python中,何訪(fǎng)訪(fǎng)問(wèn)??數據庫的問(wèn)數方法有很多,這里我們主要介??紹兩種常用的據庫方法:使??用SQLite數據庫和使用第三方庫如MyS??QLdb、ps(′?`)ycopg2等訪(fǎng)問(wèn)MySQL、何訪(fǎng)PostgreSQL等數據庫。問(wèn)數
1、何訪(fǎng)使(shi)用SQLite數據庫
SQLite是問(wèn)數一個(gè)輕量級的數據庫,它將數據存儲在一個(gè)文件中,據庫不需要額外的何訪(fǎng)服務(wù)器,Python內置了對SQLite的問(wèn)數支持,可以直接使用。據庫
我們需要導入sqlite3模塊:
import sqlite3
接下(xia)來(lái),何訪(fǎng)我們可以創(chuàng )建一個(gè)連接到數據庫的問(wèn)數對象:
conn = sqlite3.connect('example.db')
這里的example.db是我們要連接的數據庫文件,如果文件不存在,據庫將會(huì )被創(chuàng )建。
example.db
現在,我們可以使用這個(gè)對象來(lái)執行SQL語(yǔ)句,創(chuàng )建一個(gè)名為users的表??:
users
c = conn.cursor()c.e(??-)?xecute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)'''(╯°□°)╯︵ ┻━┻)
插入一條記錄:
c.execute(&q??uot;INSERT INTO users (name, age) VALUES ('張三',?? 25)")
查詢(xún)記錄:
c.execute(&quoヽ(′▽?zhuān)?ノt;SELECT * FROM users")rows = c.(//ω//)fetchall??()for row in rows: print(row)
不要忘記關(guān)閉連接:
conn.close((T_T))
對于MySQL、PostgreSQL等數據庫,我們可以使用第三方庫如MySQLdb、psycopg2等來(lái)訪(fǎng)問(wèn),這些庫提供了與數據庫交互的功能,使??得我們可以方便地執行SQL語(yǔ)句。
以MySQL為例,首先我們需要安裝MySQLdb庫:
pip?? install mysqlclient
我們可以使用以下代碼來(lái)連接MySQL數據庫:
import MySQLdbconn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')
這里的host是數據庫服務(wù)器的地址,user和passwd分別是用戶(hù)名和密碼,db是要連接的數據庫名,如果數據庫不存在,將會(huì )被創(chuàng )建。
host
user
passwd
db
接下來(lái),我們可以使用這個(gè)對象來(lái)執行SQL語(yǔ)句,創(chuàng )建一個(gè)名為users的表:
c = conn.cursor(??)c.execute('''CRE??ATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGERˉ\_(ツ)_/ˉ)''')
c.execute(??"INSERT(?????) INTO users (name, age) VALUES ('張三', 25)")
c.execute("SELECT * FROM users")rows = c.fetchall(′?ω?`)()for row in rows: print(row)
不要忘記關(guān)閉連??接:
conn.close()
對于PostgreSQL數據庫,我們可以使??用psycopg2庫,ˉ\_(ツ)_/ˉ首先安裝psycopg2庫:
pip install psycopg2binary
我們可以使用以下ヽ(′▽?zhuān)?ノ代碼來(lái)連接PostgreSQL數據庫??:
import psycopg2from psycopg2 import Error as eDatabaseError, extensions, extras, connect, operations, pool, errors, interfaces, ad(′?`*)apters, sql, schema, processes, config, packag(′▽?zhuān)?)es, ssl(′;ω;`), contexts, types, osutil, copyfileobj, secure_password, escape_string_like_sql, parse_dsn, urlparse, netsnmp, logging, logconfig, errorcodes, consts, ssl(′?ω?`)wrap, compression, load_extensions, process_global_settings, create_os_temp_files, create_thread_pools, set_process_titles, get_notices, register_error_handlers, create_default_connection_factory, create_scoped_session, NamedTuヽ(′▽?zhuān)?ノpleCursor, RowProxyConnectionPool, RowProxyConnectionPoolManage(′?`)r, make_url, parse_uri, OidRangeTableReader, OidRangeTableRe(╯°□°)╯︵ ┻━┻aderFactory, OidRangeTableReaderCachedImpl, OidRangeTableReaderUncachedImpl(′?_?`), OidRangeTableReaderFileSystemImpl, OidRangeTableReaderMemoryImpl, OidRangeTableRe(′_`)aderMemm??apImpl, OidRangeTableReaderDis(′?_?`)kImpl, OidRangeTableR??eaderNullImpl, OidRang(°o°)eTableReaderFakeImpl, OidRangヾ(′?`)?eTableReaderThヽ(′ー`)ノreadedImpl, OidRangeTableRea??derSingleImpl, OidRangeTableReaderSingleThreadedImpl, OidRangeTableReaderSingleUncachedImpl, OidRangeTableReaderSingleFileSystemImpl, OidRangeTableReaderSingleMemmapImpl, OidRangヾ(^-^)ノeTable??ReaderSingleDiskImpl, OidRangeTableReaderSingleN(???)ullImpl, OidRangeTab(′▽?zhuān)?leReaderSingleヽ(′ー`)ノFakeImpl, OidRangeTableReaderMultiThreadedImpl, OidRangeTableReaderMultiUncachedヽ(′ー`)ノImpl, OidRangヽ(′▽?zhuān)?ノeTableReaderMultiFileSystemImpl, OidRangeTableReaderMultiMemmapImpl, OidRangeTableReaderMultiDiskImpl, OidRangeTableRe(′▽?zhuān)?aderMultiNullImpl, OidRangeTableReaderMultiFakeImpl, OidRangeTableReaderMultiThread??edUncachedImpl, OidRangeTableRead??erMultiThreadedFileSystemImpl, OidRangeTableReaderMultiThreadedMemmapImpl, OidRa??ngeTableReaderMultiThreadedDiskImpl, OidRangeTableReaderMultiThreadedNullImpl, OidRangeTable(′?_?`)ReaderMultiThreadedFakeImpl, OidRangeTableReaderMultiUncachedFileSystem(′▽?zhuān)?Impl, OidRangeTableReaderMultiUncachedMemmapImpl, OidRangeTableReaderMultiUncachedDiskImpl, OidRangeTableReaderMultiUncachedNullImpl, OidRangeTableReaヽ(′?`)ノderMultiUncachedFakeImpl, OidRangeTableReaderMultiFileSystemUncachedImpl, OidRangeTableReaderMultiFile(′?`*)SystemMemmapImpl, OidRangeTableReaderMultiFileSystemDiskImpl, OidRangeTableReaderMultiFileSystemNullImpl, OidRangeTa(???)bleReaderMultiFileSystemFak(′ω`)eImpl, OidRangeTableReaderMultiMemmapUncachedImpl, OidRangeT┐(′д`)┌ableReaderMultiMemmapFileSyst??emImpl, OidRangeTableReaderMultiMemmap┐(′д`)┌DiskImpl, OidRangeTableReaderMultiMemmapNullImpl, OidRangeTableReaderMultiMemmapFakeImpl, OidRangeTableReaderMultiDiskUncachedImpl, OidRangeTableReaderMultiDisk(′_`)FileSystemImpl, OidRangeTableReaderMultiDiskMemmapImpl, OidRangeTableReaderMultiDiskNullIm(′?_?`)pl, OidR??angeTableReaderMultiDiskFakeImpl, VersionInfoNotFoundError as eVersionInfoNotFoundError; import psycopg2.extras;(′▽?zhuān)?) impor(′?`)t psycopg2.extensions; import psycopg2.pool; import psycopg2.sql; import psycopg2.tests; import psycopg2.utils; import psycopg2.errors; import psycopg2.log;?? imp(???)ort psycopg2._ヽ(′ー`)ノ_version__ as?? __version__; im??port psycopg2.extensions; import psycopg2??.extras; import psycopg2(′▽?zhuān)?.adapters; import psycopg2.inte??rfaces; import psycopg2.connection; import psycop??g2.connectionpool; import psycopg2.cursor; impor(′?_?`)t psycopg2.errhdr; import psyco??pg2.extensions; impo(?Д?)rt psycopg2.??extras; import psycopg2.log; import psycopg2.__version__ as __version__; from psycopg2 import Error as eDatabaseError; from psycopg2 import extensions; from psycopg2 import extras; from psycopg2 import connect; from psycopg2 import operations; from psycopg2 import processes; from psycopg2 import config; from ps??ycopg2 import pa( ?° ?? ?°)ckages; from psycopg2(′ω`) import ssl; from psycopg2 import contexts; from psycopg2 import types; from psycopg2 import osutil; from psycopg2 import copyfileobj; from psycopg2 import secure_password;?? from psycopg2 import escape_string_like_sql; from psycopg2 import parse_dsn; from psycopg2 import urlparse; from psycopg2 import nets??nmp; from psycopg2 import logging; from psycopg2 import logconfig; from psycopg2 import errorcodes; from psycopg2 import(′▽?zhuān)? consts; from psy(′▽?zhuān)?)copg2 import sslwrap; from psycopg2 import compression; from ps??ycopg2 import load_e??xtensions; from psycopg2 import process_global_settings; from psycop??g2 import create_os_temp_files; from psycopg2 import create_thread_pools; from psycopg2 import set_process_titles; from psycopg2 import get_notices; from psycopg2 import register??_error_han??dl??ers; from psycopg2 import create_defaul??t