python 유니버설 데이터베이스 조작 도구pydbclib의 사용 안내

pydbclib는 통용되는python 관계형 데이터베이스 조작 도구 패키지로 통일된 인터페이스를 사용하여 각종 관계형 데이터베이스(예를 들어oracle, mysql,postgres,hive,impala 등)를 삭제하고 수정한다. 이것은 각python 데이터베이스 연결 드라이브 패키지(예를 들어sqlalchemy,pymysql,cx_Oracle,pyhive,pyodbc,impala 등)의 봉인으로python 최소 원칙에 따라'[name]'라는 형식으로 통일한다.이게 sqlalchemy랑 똑같아요.

설치


pip3 install pydbclib

간편한 사용


간단한 조회 예시 보기

from pydbclib import connect
#  with , , 
with connect("sqlite:///:memory:") as db:
  db.execute('create table foo(a integer, b varchar(20))')
  #  ':[name]' SQL 
  db.execute("insert into foo(a,b) values(:a,:b)", [{"a": 1, "b": "one"}]*4)
  print(db.read("select * from foo").get_one())
  print(db.read("select * from foo").get_all())
  print(db.read("select * from foo").to_df())
  db.get_table("foo").insert({"a": 2, "b": "two"})
  print(db.get_table("foo").find_one({"a": 2}))
  print(db.get_table("foo").find().get_all())
  print(db.get_table("foo").find().to_df())
검색 결과 기록은 사전 형식으로 보여주고 라이브러리에 기록을 쓰는 것도 사전 형식입니다. 원생 원조 형식을 사용하려면 검색 함수read에 as_dict=False 매개변수

인터페이스 문서


데이터베이스 연결, 더 자주 사용하는 데이터베이스 연결 방식 참조 문장 끝

# connect driver 
# driver sqlalchemy, sqlalchemy 
>>> db = pydbclib.connect("sqlite:///:memory:")
>>> db = pydbclib.connect(":memory:", driver='sqlite3')
#  
>>> import sqlite3
>>> db = pydbclib.connect(driver=sqlite3.connect(":memory:"))
>>> from sqlalchemy import create_engine
>>> db = pydbclib.connect(driver=create_engine("sqlite:///:memory:"))

기본 SQL 커넥터


1. execute 방법으로 SQL을 실행하는데 각 데이터베이스 연결 패키지와 기본적으로 일치한다. 다른 점은 단일 실행도 할 수 있고 대량 실행도 할 수 있다는 것이다(executemany에 해당), 그리고 이 방법의 SQL 차지부호는':[name]'형식이다

>>> record = {"a": 1, "b": "one"}
>>> db.execute('create table foo(a integer, b varchar(20))')
#  , 
>>> db.execute("insert into foo(a,b) values(:a,:b)", record)
1
#  
>>> db.execute("insert into foo(a,b) values(:a,:b)", [record, record])
2
2. 데이터 조회

#  
>>> db.read_one("select * from foo")
{'a': 1, 'b': 'one'}
#read , get , map 
>>> db.read("select * from foo").map(lambda x: {f"foo.{k}": v for k,v in x.items()}).get(2)
# as_dict=False 
>>> db.read("select * from foo", as_dict=False).get(2)
[(1, 'one'), (1, 'one')]
#  for 
>>> for r in db.read("select * from foo"):
...   print(r)
... 
{'a': 1, 'b': 'one'}
{'a': 1, 'b': 'one'}
{'a': 1, 'b': 'one'}
#  pandas dataframe ,  pandas
>>> db.read("select * from foo").to_df()
  a  b
0 1 one
1 1 one
2 1 one
3. 커밋, 롤백, 연결 해제

>>> db.rollback()
>>> db.commit()
>>> db.close()

테이블 레벨 작업에 대한 SQL 인터페이스 패키지


1. 레코드 삽입

#  , 
>>> db.get_table("foo").insert({"a": 1, "b": "one"})
1
>>> db.get_table("foo").insert([{"a": 1, "b": "one"}]*10)
10
2. 조회 기록

#  a=1 
>>> db.get_table("foo").find_one({"a": 1})
{'a': 1, 'b': 'one'}
#  sql , 
>>> db.get_table("foo").find_one("a=1")
{'a': 1, 'b': 'one'}
#  a=1 ,find read 
>>> db.get_table("foo").find({"a": 1}).get_all()
[{'a': 1, 'b': 'one'},...{'a': 1, 'b': 'one'}]
3. 기록 업데이트

#  a=1 b "first"
>>> db.get_table("foo").update({"a": 1}, {"b": "first"})
11
>>> db.get_table("foo").find({"a": 1}).get_one()
{'a': 1, 'b': 'first'}
4. 레코드 삭제

#  a=1 
>>> db.get_table("foo").delete({"a": 1})
11
>>> db.get_table("foo").find({"a": 1}).get_all()
[]

공통 데이터베이스 연결


1. Common Driver

#  ,driver 
#  pymysql driver='pymysql',connect driver 
#  mysql
db = pydbclib.connect(user="user", password="password", database="test", driver="pymysql")
#  oracle
db = pydbclib.connect('user/password@local:1521/xe', driver="cx_Oracle")
#  odbc 
db = pydbclib.connect('DSN=mysqldb;UID=user;PWD=password', driver="pyodbc") 
#  
import pymysql
con = pymysql.connect(user="user", password="password", database="test")
db = pydbclib.connect(driver=con)
2. Sqlalchemy Driver

#  Sqlalchemy ,drvier 'sqlalchemy'
#  oracle
db = pydbclib.connect("oracle://user:password@local:1521/xe")
#  mysql
db = pydbclib.connect("mysql+pyodbc://:@mysqldb")
#  engine 
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://user:password@localhost:3306/test")
db = pydbclib.connect(driver=engine)
사용 중 궁금한 점이 있으면 의견 교환을 환영합니다
프로젝트 주소pydbclib
이상은python 유니버설 데이터베이스 조작 도구pydbclib의 사용 소개에 대한 상세한 내용입니다. 더 많은python 데이터베이스 조작 도구pydbclib에 대한 자료는 저희 다른 관련 글을 주목해 주십시오!

좋은 웹페이지 즐겨찾기