Skip to content

Commit 0436f4e

Browse files
authored
Update Python连接数据库操作.md
1 parent 2ed227a commit 0436f4e

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

studynotes/Python连接数据库操作.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,46 @@
6363
data = cur.fetchall()
6464
print(data)
6565
conn.close()
66+
67+
## 连接oracal
68+
* 1、下载安装cx_Oracle https://pypi.org/project/cx-Oracle/#files
69+
* 2、下载instantclient,配置环境变量。 https://www.oracle.com/technetwork/cn/topics/winx64soft-101515-zhs.html
70+
* 3、 把instantclient文件夹下所有的ddl文件复制到anaconda文件夹下。(复制oci,oraocci11,oraociei11的3个DLL粘贴到你的PY目录的Libs/site-packages文件夹下面)
71+
* 4、编写测试代码
72+
73+
info = "username/password@ip:/SERVICE_NAME"
74+
db = cx_Oracle.connect(info)
75+
cursor = db.cursor()
76+
# 执行数据库语句
77+
res = cursor.execute("SELECT * FROM T_SH_JDCJBXX WHERE 1=1")
78+
print(res.fetchone())
79+
80+
### 数据库连接池连接oracal
81+
82+
dsn = cx_Oracle.makedsn(db_host, db_port, db_name)
83+
pool = PooledDB(cx_Oracle, mincached=20, blocking=True, user=db_user, password=db_pass, dsn=dsn)
84+
conn = pool.connection()
85+
with conn.cursor() as cursor:
86+
sql = ""
87+
res = cursor.execute(sql)
88+
scan_result = res.fetchall()
89+
conn.close()
90+
91+
## 连接sqlite
92+
sqlite数据库可以当做缓存来用,如果不想用redis的话,可以考虑用sqlite
93+
94+
import sqlite3
95+
conn = sqlite3.connect('test.db')
96+
cur = conn.cursor()
97+
# 查看数据库中表是否存在
98+
sql = "select * from sqlite_master where type = 'table' and name = 'user'"
99+
cur.execute(sql)
100+
values = cur.fetchall()
101+
if values:
102+
print(values)
103+
else:
104+
# 如果不存在,创建表
105+
cur.execute('create table user (id varchar(20) primary key, name varchar(20))')
106+
cur.execute('insert into user (id, name) values (\'1\', \'Michael\')')
107+
cur.close()
108+
conn.close()

0 commit comments

Comments
 (0)