當前位置:首頁 » 數據倉庫 » python測試資料庫連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

python測試資料庫連接

發布時間: 2022-06-24 10:18:19

❶ python3 怎麼連接資料庫

Python是計算機常用的計算機語言,在實際的操作中我們會涉及到Python連接資料庫的相關實際操作,假如你對Python連接資料庫的實際操作方案感興趣或是有疑問,你都可以瀏覽下面的文章。一. Python和mysql資料庫連接Python 要連接 MySQL 可以使用 MySQL_python模塊首先確定是否安裝,在指令模式輸入 python,然後便可以開始檢查:Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type "help", "right", "credits" or "license"
for more information. >>> import MySQLdb Traceback (most recent call last): File "", line 1, in ImportError: No mole named MySQLdb >>> exit() 如果見以上面的"ImportError: No mole named MySQLdb" 一句,便表示系統沒有安裝,注意:在shell中,輸出是 區分大小寫的也可以通過輸入下面這些命令來測試你的資料庫配置:>>> from django.db import connection >>>
cursor = connection.cursor() 如果沒有顯示什麼錯誤信息,那麼你的資料庫配置是正確的。 否則,你就得查看錯誤信息來糾正錯誤。上面的相關代碼是對Python連接資料庫中Python和mysql資料庫連接的前部分代碼的示例。 安裝mysql_python模塊到MySQLdb 官方網站 下載並安裝MySQLdb版本:(win)MySQL-python-1.2.2.win32-py2.6.exe 直接運行安裝即可按如下步驟安裝$ tar zxvf MySQL-python-1.2.2.tar.gz $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install 附件: libguide40.dll.zip(77.3 KB) libmmd.dll.zip(169 KB) libmySQL.dll.zip(861 KB) 以上就是對python連接資料庫中 python和mysql資料庫連接相關的內容的介紹,望採納

❷ python3.4怎麼連接mysql pymysql連接mysql資料庫

python3.4連接mysql的方法是通過pymysql實現的。
1、導入pymysql,編寫驅動代碼如下:
__author__ = 'pieryon'
#導入pymysql的包
import pymysql
try:
#獲取一個資料庫連接,注意如果是UTF-8類型的,需要指定資料庫
conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')
cur=conn.cursor()#獲取一個游標
cur.execute('select * from person')
data=cur.fetchall()
for d in data :
#注意int類型需要使用str函數轉義
print("ID: "+str(d[0])+' 名字: '+d[1]+" 性別: "+d[2])
cur.close()#關閉游標
conn.close()#釋放資料庫資源
except Exception :print("發生異常")

2、測試結果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.py
ID: 1 名字: 秦天 性別: 男
ID: 2 名字: 王晶 性別: 女
Process finished with exit code 0

❸ 如何使用python連接資料庫,插入並查詢數據

你可以訪問Python資料庫介面及API查看詳細的支持資料庫列表。不同的資料庫你需要下載不同的DB API模塊,例如你需要訪問Oracle資料庫和Mysql數據,你需要下載Oracle和MySQL資料庫模塊。
DB-API 是一個規范. 它定義了一系列必須的對象和資料庫存取方式, 以便為各種各樣的底層資料庫系統和多種多樣的資料庫介面程序提供一致的訪問介面 。
Python的DB-API,為大多數的資料庫實現了介面,使用它連接各資料庫後,就可以用相同的方式操作各資料庫。
Python DB-API使用流程:

引入 API 模塊。
獲取與資料庫的連接。
執行SQL語句和存儲過程。
關閉資料庫連接。

什麼是MySQLdb?

MySQLdb 是用於Python鏈接Mysql資料庫的介面,它實現了 Python 資料庫 API 規范 V2.0,基於 MySQL C API 上建立的。

如何安裝MySQLdb?

為了用DB-API編寫MySQL腳本,必須確保已經安裝了MySQL。復制以下代碼,並執行:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

如果執行後的輸出結果如下所示,意味著你沒有安裝 MySQLdb 模塊:
Traceback (most recent call last):
File "test.py", line 3, in <mole>
import MySQLdb
ImportError: No mole named MySQLdb

安裝MySQLdb,請訪問 ,(Linux平台可以訪問:)從這里可選擇適合您的平台的安裝包,分為預編譯的二進制文件和源代碼安裝包。
如果您選擇二進制文件發行版本的話,安裝過程基本安裝提示即可完成。如果從源代碼進行安裝的話,則需要切換到MySQLdb發行版本的頂級目錄,並鍵入下列命令:
$ gunzip MySQL-python-1.2.2.tar.gz
$ tar -xvf MySQL-python-1.2.2.tar
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install

注意:請確保您有root許可權來安裝上述模塊。

資料庫連接

連接資料庫前,請先確認以下事項:

您已經創建了資料庫 TESTDB.
在TESTDB資料庫中您已經創建了表 EMPLOYEE
EMPLOYEE表欄位為 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
連接資料庫TESTDB使用的用戶名為 "testuser" ,密碼為 "test123",你可以可以自己設定或者直接使用root用戶名及其密碼,Mysql資料庫用戶授權請使用Grant命令。
在你的機子上已經安裝了 Python MySQLdb 模塊。
如果您對sql語句不熟悉,可以訪問我們的 SQL基礎教程

實例:

以下實例鏈接Mysql的TESTDB資料庫:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# 使用execute方法執行SQL語句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取一條資料庫。
data = cursor.fetchone()

print "Database version : %s " % data

# 關閉資料庫連接
db.close()

執行以上腳本輸出結果如下:
Database version : 5.0.45

創建資料庫表

如果資料庫連接存在我們可以使用execute()方法來為資料庫創建表,如下所示創建表EMPLOYEE:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# 如果數據表已經存在使用 execute() 方法刪除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 創建數據表SQL語句
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""

cursor.execute(sql)

# 關閉資料庫連接
db.close()

資料庫插入操作

以下實例使用執行 SQL INSERT 語句向表 EMPLOYEE 插入記錄:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 插入語句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# Rollback in case there is any error
db.rollback()

# 關閉資料庫連接
db.close()

以上例子也可以寫成如下形式:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 插入語句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉資料庫連接
db.close()

實例:

以下代碼使用變數向SQL語句中傳遞參數:
..................................
user_id = "test123"
password = "password"

con.execute('insert into Login values("%s", "%s")' % \
(user_id, password))
..................................

資料庫查詢操作

Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。

fetchone(): 該方法獲取下一個查詢結果集。結果集是一個對象
fetchall():接收全部的返回結果行.
rowcount: 這是一個只讀屬性,並返回執行execute()方法後影響的行數。

實例:

查詢EMPLOYEE表中salary(工資)欄位大於1000的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 執行SQL語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 列印結果
print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income )
except:
print "Error: unable to fecth data"

# 關閉資料庫連接
db.close()

以上腳本執行結果如下:
fname=Mac, lname=Mohan, age=20, sex=M, income=2000

資料庫更新操作

更新操作用於更新數據表的的數據,以下實例將 TESTDB表中的 SEX 欄位全部修改為 'M',AGE 欄位遞增1:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 更新語句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')
try:
# 執行SQL語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉資料庫連接
db.close()

刪除操作

刪除操作用於刪除數據表中的數據,以下實例演示了刪除數據表 EMPLOYEE 中 AGE 大於 20 的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 刪除語句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
# 執行SQL語句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉連接
db.close()

執行事務

事務機制可以確保數據一致性。

事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。

原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
持久性(rability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。

❹ python怎麼連接mysql資料庫

在 Python 語言環境下我們這樣連接資料庫。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是連接資料庫的背後發生了什麼呢?


答案

當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由MySQL 協議規定。MySQL 協議:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。

  • MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。

  • 2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。

    3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。

    4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。

❺ 怎麼用python連接mysql資料庫

在 Python 語言環境下我們這樣連接資料庫。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是連接資料庫的背後發生了什麼呢?


答案

當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由MySQL 協議規定。MySQL 協議:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。

  • MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。

  • 2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。

    3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。

    4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。

❻ 如何使用Python連接Oracle資料庫

在保證python和oralce資料庫已經安裝,並運行.安裝cx_Oracle

以下是測試連接oracle資料庫

importcx_Oracle

#db=cx_Oracle.connect('user','pass','127.0.0.1')
db=cx_Oracle.connect('system/oracle@localhost')
print(db.version)

db.close()

❼ python連接MySQL資料庫實例分析

python連接MySQL資料庫實例分析
本文實例講述了python連接MySQL資料庫的方法。分享給大家供大家參考。具體實現方法如下:
import MySQLdb
conn = MySQLdb.connect(host="localhost",
user="root",
passwd="123456",
db="test")
cursor = conn.cursor()
cursor.execute("select * from hard")
res = cursor.fetchall()
for x in res:
print x
cursor.close()
conn.close()
運行結果如下:
希望本文所述對大家的python程序設計有所幫助。

❽ python如何訪問資料庫

1.背景:

python提供了很多資料庫介面, 常用的資料庫有 MS SQL Server /mysql /oracle 等。

打開鏈接 https://wiki.python.org/moin/DatabaseInterfaces

是python 關於資料庫介面的一個總結 , 可以看到python支持的訪問的資料庫系統。

2.模塊:

python 主要是通過模塊和資料庫連接的。

2.1 安裝模塊:

如果使用anconda,本身就會集合很多模塊,不需要手動安裝。如果用pycharm就要手動安裝模塊。

安裝模塊流程:

下載模塊擴展包放到路徑下——>cmd找到相應路徑——> pip install +擴展包名字

下面列舉一些常用連接資料庫的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi

不同模塊連接的資料庫不同, 支持的版本系統有的也不一樣。但是大體用法都是相近的, 因為有DB-API

相關推薦:《Python教程》

3.Python DB-API

3.1背景:

在沒有DB-API 之前, 不同資料庫有不同的資料庫介面程序, 這就導致python 訪問 database 的介面程序非常混亂。如果我們學習了python 訪問 mysql 的介面程序, 然後要切換到另一個資料庫上, 我們還要在學習另外一個資料庫的介面程序。python DB-API就是為了解決介面程序混亂而生成的。有了DB-API, 在不同資料庫上移植代碼就變得簡單的多了。

3.2Python DB-API:

Python 定義了一套操作資料庫的 DB-API 介面,它是一個規范,定義了一系列必須的對象和資料庫存取方式,以便為不同的底層資料庫系統提供一致的訪問介面

這個鏈接就是python 官方給定的 DB-API 的說明 https://www.python.org/dev/peps/pep-0249/

3.3 Python DB--API的內容:

連接對象:

?Connect()創建連接:host/server /user/password/db connect方法生成一個connect對象, 我們通過這個對象來訪問資料庫。符合標準的模塊都會實現connect方法。

?close():關閉連接

?commit():提交當前事務。做出某些更改後確保已經進行了提交,這樣才可以將這些修改真正地保存到database中

?rollback() 回滾上一次調用 commit()以來對資料庫所做的更改

?cursor():創建游標。系統為用戶開通的一個數據緩沖區,用於存放SQL語句執行結果。cursor游標是有狀態的,它可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時需要注意

游標對象:

?Execute()執行一個資料庫查詢或命令。 execute 執行sql 語句之後運行的結果不會直接output 出來 , 而是放到了一個緩存區, 要用 fetch語句+print 可以查詢sql運行的結果

?fetchone ()得到結果集的下一行

?fetchmany(size)得到結果集的下幾行

?fetchall()返回結果集中剩下的所有行

?rowcount 返回影響的行數

?Close()關閉游標對象

3.4Python DB--API的工作原理及流程:

如圖所示如果把python 和資料庫比作兩個不同的地點, connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用於執行sql 語句, 以及存儲sql 運行的結果。

流程:

4.MS SQL Server 示例:

4.1 導入模塊、創建連接:

4.2 創建游標: 游標創建之後就可以對資料庫進行查詢更改了!

4.3對數據進行操作(創建表、插入行、更新數據、增加列、刪除行、列、表):

4.4 查詢 獲取行:

5.其他:

使用游標的時候要注意, 每次連接只能有一個游標查詢處於活躍狀態。 code演示:

execute()循環和 executemany() 插入100000 條數據測速:

❾ 如何在Python下連接Oracle資料庫

本文實例講述了python連接oracle資料庫的方法,分享給大家供大家參考。具體步驟如下:
一、首先下載驅動:(cx_Oracle)
http://www.python.net/crew/atuining/cx_Oracle/
不過要注意一下版本,根據你的情況加以選擇。
二、安裝:
首先配置oracle_home環境變數
執行那個exe安裝程序就可以了,它會一個cx_Oracle.pyd到Libsite-packages目錄下。
如果是linux,執行

python setup.py build
python setup.py install

三、執行一段測試程序:

import cx_Oracle

con = cx_Oracle.connect( "xjtu_test", "37343734","xjtu.world")
cursor = con.cursor()
cursor.close()
con.close()

里邊connect中的3個參數從左到右分別是:user, pass, TNS。
那個TNS可以用Oracle客戶端工具中的Net Configuration Assistant來配置。

四、具體的cx_Oracle API可以參考:
http://www.python.net/crew/atuining/cx_Oracle/html/cx_Oracle.html
五、示例:

>>> import cx_Oracle
>>> conn=cx_Oracle.connect ('scott/tiger@oratest')
>>> curs=conn.cursor ()
>>> sql='select * from emp'
>>> rr=curs.execute (sql)
>>> row=curs.fetchone()
>>> row
(7369, 'SMITH', 'CLERK', 7902, datetime.datetime(1980, 12, 17, 0, 0), 800.0, None, 20)
>>> while row:
(ID,NAME)=(row[0],row[1])
row=curs.fetchone ()
print ID,NAME

7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 日常
7934 MILLER

如果使用windows平台,執行那段測試代碼時你肯定遇到問題了,一般會有以下問題:
① import cx_Oracle 時報告找不到OCI.DLL:
到裝了Oracle的機器上找一個,然後到Libsite-packages目錄下就可以了。
② cx_Oracle.connect 時報告RuntimeError: Unable to acquire Oracle environment handle:
這個比較麻煩,按以下步驟來解決:(可能不需要所有的步驟,我沒有確認,不過把以下步驟都執行了,確實問題就解決了)
首先,確認你是在控制台下邊來執行這個python腳本的。而不是某些ide,例如:PyDev(它們似乎無法載入os的環境變數)。
其實,在本機安裝Oracle(只安客戶端工具就可以了)。
最後,添加以下環境變數:(我給出我的,換成你自己的路徑就可以了)

ORACLE_HOME=D:OracleOra81
PATH=D:OracleOra81bin;

希望本文所述對大家的Python程序設計有所幫助。