Python史上最全種類(lèi)數(shù)據(jù)庫(kù)操作方法分享
本文將詳細(xì)探討如何在Python中連接全種類(lèi)數(shù)據(jù)庫(kù)以及實(shí)現(xiàn)相應(yīng)的CRUD(創(chuàng)建,讀取,更新,刪除)操作。我們將逐一解析連接MySQL,SQL Server,Oracle,PostgreSQL,MongoDB,SQLite,DB2,Redis,Cassandra,Microsoft Access,ElasticSearch,Neo4j,InfluxDB,Snowflake,Amazon DynamoDB,Microsoft Azure CosMos DB數(shù)據(jù)庫(kù)的方法,并演示相應(yīng)的CRUD操作。
MySQL
連接數(shù)據(jù)庫(kù)
Python可以使用mysql-connector-python庫(kù)連接MySQL數(shù)據(jù)庫(kù):
import mysql.connector conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database') print("Opened MySQL database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在MySQL中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database') cursor = conn.cursor() cursor.execute("CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT, ADDRESS CHAR(50), SALARY REAL)") print("Table created successfully") conn.close()
讀取(Retrieve)
conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database') cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database') cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database') cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
SQL Server
連接數(shù)據(jù)庫(kù)
Python可以使用pyodbc庫(kù)連接SQL Server數(shù)據(jù)庫(kù):
import pyodbc conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password') print("Opened SQL Server database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在SQL Server中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password') cursor = conn.cursor() cursor.execute("CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT, ADDRESS CHAR(50), SALARY REAL)") conn.commit() print("Table created successfully") conn.close()
讀?。≧etrieve)
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password') cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password') cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password') cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
Oracle
連接數(shù)據(jù)庫(kù)
Python可以使用cx_Oracle庫(kù)連接Oracle數(shù)據(jù)庫(kù):
import cx_Oracle dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) print("Opened Oracle database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在Oracle中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) cursor = conn.cursor() cursor.execute("CREATE TABLE Employees (ID NUMBER(10) NOT NULL PRIMARY KEY, NAME VARCHAR2(20) NOT NULL, AGE NUMBER(3), ADDRESS CHAR(50), SALARY NUMBER(10, 2))") conn.commit() print("Table created successfully") conn.close()
讀?。≧etrieve)
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
PostgreSQL
連接數(shù)據(jù)庫(kù)
Python可以使用psycopg2庫(kù)連接PostgreSQL數(shù)據(jù)庫(kù):
import psycopg2 conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432") print("Opened PostgreSQL database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在PostgreSQL中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432") cursor = conn.cursor() cursor.execute('''CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') conn.commit() print("Table created successfully") conn.close()
讀?。≧etrieve)
conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432") cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432") cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432") cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
MongoDB
連接數(shù)據(jù)庫(kù)
Python可以使用pymongo庫(kù)連接MongoDB數(shù)據(jù)庫(kù):
from pymongo import MongoClient client = MongoClient("mongodb://localhost:27017/") db = client["my_database"] print("Opened MongoDB database successfully") client.close()
CRUD操作
接下來(lái),我們將展示在MongoDB中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
在MongoDB中,文檔的創(chuàng)建操作通常包含在插入操作中:
client = MongoClient("mongodb://localhost:27017/") db = client["my_database"] employees = db["Employees"] employee = {"id": "1", "name": "John", "age": "30", "address": "New York", "salary": "1000.00"} employees.insert_one(employee) print("Document inserted successfully") client.close()
讀?。≧etrieve)
client = MongoClient("mongodb://localhost:27017/") db = client["my_database"] employees = db["Employees"] cursor = employees.find() for document in cursor: print(document) client.close()
更新(Update)
client = MongoClient("mongodb://localhost:27017/") db = client["my_database"] employees = db["Employees"] query = { "id": "1" } new_values = { "$set": { "salary": "25000.00" } } employees.update_one(query, new_values) print("Document updated successfully") client.close()
刪除(Delete)
client = MongoClient("mongodb://localhost:27017/") db = client["my_database"] employees = db["Employees"] query = { "id": "1" } employees.delete_one(query) print("Document deleted successfully") client.close()
SQLite
連接數(shù)據(jù)庫(kù)
Python使用sqlite3庫(kù)連接SQLite數(shù)據(jù)庫(kù):
import sqlite3 conn = sqlite3.connect('my_database.db') print("Opened SQLite database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在SQLite中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = sqlite3.connect('my_database.db') cursor = conn.cursor() cursor.execute('''CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') conn.commit() print("Table created successfully") conn.close()
讀?。≧etrieve)
conn = sqlite3.connect('my_database.db') cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
conn = sqlite3.connect('my_database.db') cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
conn = sqlite3.connect('my_database.db') cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
DB2
連接數(shù)據(jù)庫(kù)
Python可以使用ibm_db庫(kù)連接DB2數(shù)據(jù)庫(kù):
import ibm_db dsn = ( "DRIVER={{IBM DB2 ODBC DRIVER}};" "DATABASE=my_database;" "HOSTNAME=127.0.0.1;" "PORT=50000;" "PROTOCOL=TCPIP;" "UID=username;" "PWD=password;" ) conn = ibm_db.connect(dsn, "", "") print("Opened DB2 database successfully") ibm_db.close(conn)
CRUD操作
接下來(lái),我們將展示在DB2中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = ibm_db.connect(dsn, "", "") sql = '''CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY DECIMAL(9, 2));''' stmt = ibm_db.exec_immediate(conn, sql) print("Table created successfully") ibm_db.close(conn)
讀?。≧etrieve)
conn = ibm_db.connect(dsn, "", "") sql = "SELECT id, name, address, salary from Employees" stmt = ibm_db.exec_immediate(conn, sql) while ibm_db.fetch_row(stmt): print("ID = ", ibm_db.result(stmt, "ID")) print("NAME = ", ibm_db.result(stmt, "NAME")) print("ADDRESS = ", ibm_db.result(stmt, "ADDRESS")) print("SALARY = ", ibm_db.result(stmt, "SALARY")) ibm_db.close(conn)
更新(Update)
conn = ibm_db.connect(dsn, "", "") sql = "UPDATE Employees set SALARY = 25000.00 where ID = 1" stmt = ibm_db.exec_immediate(conn, sql) ibm_db.commit(conn) print("Total number of rows updated :", ibm_db.num_rows(stmt)) ibm_db.close(conn)
刪除(Delete)
conn = ibm_db.connect(dsn, "", "") sql = "DELETE from Employees where ID = 1" stmt = ibm_db.exec_immediate(conn, sql) ibm_db.commit(conn) print("Total number of rows deleted :", ibm_db.num_rows(stmt)) ibm_db.close(conn)
Microsoft Access
連接數(shù)據(jù)庫(kù)
Python可以使用pyodbc庫(kù)連接Microsoft Access數(shù)據(jù)庫(kù):
import pyodbc conn_str = ( r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' r'DBQ=path_to_your_access_file.accdb;' ) conn = pyodbc.connect(conn_str) print("Opened Access database successfully") conn.close()
CRUD操作
接下來(lái),我們將展示在A(yíng)ccess中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute('''CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY DECIMAL(9, 2));''') conn.commit() print("Table created successfully") conn.close()
讀?。≧etrieve)
conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute("SELECT id, name, address, salary from Employees") rows = cursor.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("ADDRESS = ", row[2]) print("SALARY = ", row[3]) conn.close()
更新(Update)
conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1") conn.commit() print("Total number of rows updated :", cursor.rowcount) conn.close()
刪除(Delete)
conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute("DELETE from Employees where ID = 1") conn.commit() print("Total number of rows deleted :", cursor.rowcount) conn.close()
Cassandra
連接數(shù)據(jù)庫(kù)
Python可以使用cassandra-driver庫(kù)連接Cassandra數(shù)據(jù)庫(kù):
from cassandra.cluster import Cluster cluster = Cluster(['127.0.0.1']) session = cluster.connect('my_keyspace') print("Opened Cassandra database successfully") cluster.shutdown()
CRUD操作
接下來(lái),我們將展示在Cassandra中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
cluster = Cluster(['127.0.0.1']) session = cluster.connect('my_keyspace') session.execute(""" CREATE TABLE Employees ( id int PRIMARY KEY, name text, age int, address text, salary decimal ) """) print("Table created successfully") cluster.shutdown()
讀?。≧etrieve)
cluster = Cluster(['127.0.0.1']) session = cluster.connect('my_keyspace') rows = session.execute('SELECT id, name, address, salary FROM Employees') for row in rows: print("ID = ", row.id) print("NAME = ", row.name) print("ADDRESS = ", row.address) print("SALARY = ", row.salary) cluster.shutdown()
更新(Update)
cluster = Cluster(['127.0.0.1']) session = cluster.connect('my_keyspace') session.execute("UPDATE Employees SET salary = 25000.00 WHERE id = 1") print("Row updated successfully") cluster.shutdown()
刪除(Delete)
cluster = Cluster(['127.0.0.1']) session = cluster.connect('my_keyspace') session.execute("DELETE FROM Employees WHERE id = 1") print("Row deleted successfully") cluster.shutdown()
Redis
連接數(shù)據(jù)庫(kù)
Python可以使用redis-py庫(kù)連接Redis數(shù)據(jù)庫(kù):
import redis r = redis.Redis(host='localhost', port=6379, db=0) print("Opened Redis database successfully")
CRUD操作
接下來(lái),我們將展示在Redis中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
r = redis.Redis(host='localhost', port=6379, db=0) r.set('employee:1:name', 'John') r.set('employee:1:age', '30') r.set('employee:1:address', 'New York') r.set('employee:1:salary', '1000.00') print("Keys created successfully")
讀取(Retrieve)
r = redis.Redis(host='localhost', port=6379, db=0) print("NAME = ", r.get('employee:1:name').decode('utf-8')) print("AGE = ", r.get('employee:1:age').decode('utf-8')) print("ADDRESS = ", r.get('employee:1:address').decode('utf-8')) print("SALARY = ", r.get('employee:1:salary').decode('utf-8'))
更新(Update)
r = redis.Redis(host='localhost', port=6379, db=0) r.set('employee:1:salary', '25000.00') print("Key updated successfully")
刪除(Delete)
r = redis.Redis(host='localhost', port=6379, db=0) r.delete('employee:1:name', 'employee:1:age', 'employee:1:address', 'employee:1:salary') print("Keys deleted successfully")
ElasticSearch
連接數(shù)據(jù)庫(kù)
Python可以使用elasticsearch庫(kù)連接ElasticSearch數(shù)據(jù)庫(kù):
from elasticsearch import Elasticsearch es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) print("Opened ElasticSearch database successfully")
CRUD操作
接下來(lái),我們將展示在ElasticSearch中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) employee = { 'name': 'John', 'age': 30, 'address': 'New York', 'salary': 1000.00 } res = es.index(index='employees', doc_type='employee', id=1, body=employee) print("Document created successfully")
讀?。≧etrieve)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) res = es.get(index='employees', doc_type='employee', id=1) print("Document details:") for field, details in res['_source'].items(): print(f"{field.upper()} = ", details)
更新(Update)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) res = es.update(index='employees', doc_type='employee', id=1, body={ 'doc': { 'salary': 25000.00 } }) print("Document updated successfully")
刪除(Delete)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) res = es.delete(index='employees', doc_type='employee', id=1) print("Document deleted successfully")
Neo4j
連接數(shù)據(jù)庫(kù)
Python可以使用neo4j庫(kù)連接Neo4j數(shù)據(jù)庫(kù):
from neo4j import GraphDatabase driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password")) print("Opened Neo4j database successfully") driver.close()
CRUD操作
接下來(lái),我們將展示在Neo4j中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password")) with driver.session() as session: session.run("CREATE (:Employee {id: 1, name: 'John', age: 30, address: 'New York', salary: 1000.00})") print("Node created successfully") driver.close()
讀?。≧etrieve)
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password")) with driver.session() as session: result = session.run("MATCH (n:Employee) WHERE n.id = 1 RETURN n") for record in result: print("ID = ", record["n"]["id"]) print("NAME = ", record["n"]["name"]) print("ADDRESS = ", record["n"]["address"]) print("SALARY = ", record["n"]["salary"]) driver.close()
更新(Update)
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password")) with driver.session() as session: session.run("MATCH (n:Employee) WHERE n.id = 1 SET n.salary = 25000.00") print("Node updated successfully") driver.close()
刪除(Delete)
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password")) with driver.session() as session: session.run("MATCH (n:Employee) WHERE n.id = 1 DETACH DELETE n") print("Node deleted successfully") driver.close()
InfluxDB
連接數(shù)據(jù)庫(kù)
Python可以使用InfluxDB-Python庫(kù)連接InfluxDB數(shù)據(jù)庫(kù):
from influxdb import InfluxDBClient client = InfluxDBClient(host='localhost', port=8086) print("Opened InfluxDB database successfully") client.close()
CRUD操作
接下來(lái),我們將展示在InfluxDB中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
client = InfluxDBClient(host='localhost', port=8086) json_body = [ { "measurement": "employees", "tags": { "id": "1" }, "fields": { "name": "John", "age": 30, "address": "New York", "salary": 1000.00 } } ] client.write_points(json_body) print("Point created successfully") client.close()
讀?。≧etrieve)
client = InfluxDBClient(host='localhost', port=8086) result = client.query('SELECT "name", "age", "address", "salary" FROM "employees"') for point in result.get_points(): print("ID = ", point['id']) print("NAME = ", point['name']) print("AGE = ", point['age']) print("ADDRESS = ", point['address']) print("SALARY = ", point['salary']) client.close()
更新(Update)
InfluxDB的數(shù)據(jù)模型和其他數(shù)據(jù)庫(kù)不同,它沒(méi)有更新操作。但是你可以通過(guò)寫(xiě)入一個(gè)相同的數(shù)據(jù)點(diǎn)(即具有相同的時(shí)間戳和標(biāo)簽)并改變字段值,實(shí)現(xiàn)類(lèi)似更新操作的效果。
刪除(Delete)
同樣,InfluxDB也沒(méi)有提供刪除單個(gè)數(shù)據(jù)點(diǎn)的操作。然而,你可以刪除整個(gè)系列(即表)或者刪除某個(gè)時(shí)間段的數(shù)據(jù)。
client = InfluxDBClient(host='localhost', port=8086) # 刪除整個(gè)系列 client.query('DROP SERIES FROM "employees"') # 刪除某個(gè)時(shí)間段的數(shù)據(jù) # client.query('DELETE FROM "employees" WHERE time < now() - 1d') print("Series deleted successfully") client.close()
Snowflake
連接數(shù)據(jù)庫(kù)
Python可以使用snowflake-connector-python庫(kù)連接Snowflake數(shù)據(jù)庫(kù):
from snowflake.connector import connect con = connect( user='username', password='password', account='account_url', warehouse='warehouse', database='database', schema='schema' ) print("Opened Snowflake database successfully") con.close()
CRUD操作
接下來(lái),我們將展示在Snowflake中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
con = connect( user='username', password='password', account='account_url', warehouse='warehouse', database='database', schema='schema' ) cur = con.cursor() cur.execute(""" CREATE TABLE EMPLOYEES ( ID INT, NAME STRING, AGE INT, ADDRESS STRING, SALARY FLOAT ) """) cur.execute(""" INSERT INTO EMPLOYEES (ID, NAME, AGE, ADDRESS, SALARY) VALUES (1, 'John', 30, 'New York', 1000.00) """) print("Table created and row inserted successfully") con.close()
讀?。≧etrieve)
con = connect( user='username', password='password', account='account_url', warehouse='warehouse', database='database', schema='schema' ) cur = con.cursor() cur.execute("SELECT * FROM EMPLOYEES WHERE ID = 1") rows = cur.fetchall() for row in rows: print("ID = ", row[0]) print("NAME = ", row[1]) print("AGE = ", row[2]) print("ADDRESS = ", row[3]) print("SALARY = ", row[4]) con.close()
更新(Update)
con = connect( user='username', password='password', account='account_url', warehouse='warehouse', database='database', schema='schema' ) cur = con.cursor() cur.execute("UPDATE EMPLOYEES SET SALARY = 25000.00 WHERE ID = 1") print("Row updated successfully") con.close()
刪除(Delete)
con = connect( user='username', password='password', account='account_url', warehouse='warehouse', database='database', schema='schema' ) cur = con.cursor() cur.execute("DELETE FROM EMPLOYEES WHERE ID = 1") print("Row deleted successfully") con.close()
Amazon DynamoDB
連接數(shù)據(jù)庫(kù)
Python可以使用boto3庫(kù)連接Amazon DynamoDB:
import boto3 dynamodb = boto3.resource('dynamodb', region_name='us-west-2', aws_access_key_id='Your AWS Access Key', aws_secret_access_key='Your AWS Secret Key') print("Opened DynamoDB successfully")
CRUD操作
接下來(lái),我們將展示在DynamoDB中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
table = dynamodb.create_table( TableName='Employees', KeySchema=[ { 'AttributeName': 'id', 'KeyType': 'HASH' }, ], AttributeDefinitions=[ { 'AttributeName': 'id', 'AttributeType': 'N' }, ], ProvisionedThroughput={ 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 } ) table.put_item( Item={ 'id': 1, 'name': 'John', 'age': 30, 'address': 'New York', 'salary': 1000.00 } ) print("Table created and item inserted successfully")
讀取(Retrieve)
table = dynamodb.Table('Employees') response = table.get_item( Key={ 'id': 1, } ) item = response['Item'] print(item)
更新(Update)
table = dynamodb.Table('Employees') table.update_item( Key={ 'id': 1, }, UpdateExpression='SET salary = :val1', ExpressionAttributeValues={ ':val1': 25000.00 } ) print("Item updated successfully")
刪除(Delete)
table = dynamodb.Table('Employees') table.delete_item( Key={ 'id': 1, } ) print("Item deleted successfully")
Microsoft Azure CosMos DB
連接數(shù)據(jù)庫(kù)
Python可以使用azure-cosmos庫(kù)連接Microsoft Azure CosMos DB:
from azure.cosmos import CosmosClient, PartitionKey, exceptions url = 'Cosmos DB Account URL' key = 'Cosmos DB Account Key' client = CosmosClient(url, credential=key) database_name = 'testDB' database = client.get_database_client(database_name) container_name = 'Employees' container = database.get_container_client(container_name) print("Opened CosMos DB successfully")
CRUD操作
接下來(lái),我們將展示在CosMos DB中如何進(jìn)行基本的CRUD操作。
創(chuàng)建(Create)
database = client.create_database_if_not_exists(id=database_name) container = database.create_container_if_not_exists( id=container_name, partition_key=PartitionKey(path="/id"), offer_throughput=400 ) container.upsert_item({ 'id': '1', 'name': 'John', 'age': 30, 'address': 'New York', 'salary': 1000.00 }) print("Container created and item upserted successfully")
讀取(Retrieve)
for item in container.read_all_items(): print(item)
更新(Update)
for item in container.read_all_items(): if item['id'] == '1': item['salary'] = 25000.00 container.upsert_item(item) print("Item updated successfully")
刪除(Delete)
for item in container.read_all_items(): if item['id'] == '1': container.delete_item(item, partition_key='1') print("Item deleted successfully")
以上就是Python史上最全種類(lèi)數(shù)據(jù)庫(kù)操作方法分享的詳細(xì)內(nèi)容,更多關(guān)于Python數(shù)據(jù)庫(kù)操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章
相關(guān)文章
python中小數(shù)點(diǎn)后的位數(shù)問(wèn)題
這篇文章主要介紹了python中小數(shù)點(diǎn)后的位數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Python實(shí)現(xiàn)計(jì)算兩個(gè)指定日期相差幾年幾月幾日
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)計(jì)算兩個(gè)日期之間相差多少年,多少月,多少天,文中的的示例代碼講解詳細(xì),需要的可以參考下2024-02-02pandas DataFrame 警告(SettingWithCopyWarning)的解決
這篇文章主要介紹了pandas DataFrame 警告(SettingWithCopyWarning)的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python使用fork實(shí)現(xiàn)守護(hù)進(jìn)程的方法
守護(hù)進(jìn)程(Daemon)也稱(chēng)為精靈進(jìn)程是一種生存期較長(zhǎng)的一種進(jìn)程。它們獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。他們常常在系統(tǒng)引導(dǎo)裝入時(shí)啟動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。2017-11-11Pytorch自定義CNN網(wǎng)絡(luò)實(shí)現(xiàn)貓狗分類(lèi)詳解過(guò)程
PyTorch是一個(gè)開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),基于Torch,用于自然語(yǔ)言處理等應(yīng)用程序。它不僅能夠?qū)崿F(xiàn)強(qiáng)大的GPU加速,同時(shí)還支持動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)。本文將介紹PyTorch自定義CNN網(wǎng)絡(luò)實(shí)現(xiàn)貓狗分類(lèi),感興趣的可以學(xué)習(xí)一下2022-12-12Python中的descriptor描述器簡(jiǎn)明使用指南
descriptor在Python中主要被用來(lái)定義方法和屬性,使用起來(lái)相當(dāng)具有技巧性,這里我們先從基礎(chǔ)的開(kāi)始,整理一份Python中的descriptor描述器簡(jiǎn)明使用指南2016-06-06