python 유니버설 데이터베이스 조작 도구pydbclib의 사용 안내
설치
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에 대한 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.