Python | 连接数据库
连接数据库,进行创建表、插入数据、选择数据、更新数据、删除数据、删除表等操作。
·
一、需要的库
import os
from multiprocessing import connection
from psycopg2 import connect, OperationalError
二、连接数据库
这里面数据库名称、用户姓名等需要按照你的数据库的配置填写
def CreateConnect():
try:
env = os.environ
params = {
'database': env.get('OG_DATABASE', 'postgres'), # 数据库名称
'user': env.get('OG_USER', 'tom'), # 用户姓名
'password': env.get('OG_PASSWORD', 'Huawei_123'), # 用户密码
'host': env.get('OG_HOST', '192.168.00.000'), # 主机IP
'port': env.get('OG_PORT', 26000) # 端口号
}
# 以上信息需要按你的数据库配置来写
conn: connection = connect(**params)
print('数据库连接成功!')
return conn
except OperationalError:
print('数据库连接失败!')
三、数据库SQL语句
(1)创建表
def CreateTable(conn):
cursor = conn.cursor()
cursor.execute('''drop table if exists Movie''')
cursor.execute('''create table Movie(
id integer not null primary key,
name varchar(32) not null,
score float(1),
score_num int,
relevant_data varchar(500)
)''')
conn.commit()
conn.close()
print('表创建成功!')
(2)插入数据
def InsertData(conn):
cursor = conn.cursor()
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(1,'肖申克的救赎','9.7','2602043','导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins ...1994 美国 犯罪 剧情')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(2,'霸王别姬','9.6','1932252','导演: 陈凯歌 Kaige Chen 主演: 张国荣 Leslie Cheung 张丰毅 Fengyi Zha...1993 中国大陆 中国香港 剧情 爱情 同性')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(3,'阿甘正传','9.5','1955615','导演: 詹姆斯·卡梅隆 James Cameron 主演: 莱昂纳多·迪卡普里奥 Leonardo...1997 美国 墨西哥 澳大利亚 加拿大 剧情 爱情 灾难')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(4,'泰坦尼克号','9.4','1916512','导演: 罗伯托·贝尼尼 Roberto Benigni 主演: 罗伯托·贝尼尼 Roberto Beni...1997 意大利 剧情 喜剧 爱情 战争')")
conn.commit()
conn.close()
print('插入成功!')
(3)选择数据
def SelectData(conn):
cursor = conn.cursor()
cursor.execute("select id,name,score,score_num,relevant_data from Movie")
rows = cursor.fetchall()
for row in rows:
print('id=', row[0], ',name=', row[1], ',score=', row[2], ',score_num=', row[3], 'relevant_data=', row[4])
conn.commit()
conn.close()
(4)更新数据
def UpdateData(conn):
cursor = conn.cursor()
cursor.execute("update Movie set name='update ...' where id=4")
conn.commit()
print("更新的行数:", cursor.rowcount)
conn.close()
(5)删除数据
def DeleteData(conn):
cursor = conn.cursor()
print('\n删除开始')
cursor.execute("delete from Movie where id=2")
conn.commit()
print('删除结束')
print("删除的行数:", cursor.rowcount)
conn.close()
(6)删除表
def DropTable(conn):
cursor = conn.cursor()
cursor.execute("drop table Movie")
conn.commit()
conn.close()
print('表删除成功!')
四、全部代码
# -*- coding: utf-8 -*-
from multiprocessing import connection
from psycopg2 import connect, OperationalError
import os
def CreateConnect():
try:
env = os.environ
params = {
'database': env.get('OG_DATABASE', 'postgres'), # 数据库名称
'user': env.get('OG_USER', 'tom'), # 用户姓名
'password': env.get('OG_PASSWORD', 'Huawei_123'), # 用户密码
'host': env.get('OG_HOST', '192.168.56.130'), # 主机IP
'port': env.get('OG_PORT', 26000) # 端口号
}
conn: connection = connect(**params)
print('数据库连接成功!')
return conn
except OperationalError:
print('数据库连接失败!')
def CreateTable(conn):
cursor = conn.cursor()
cursor.execute('''drop table if exists Movie''')
cursor.execute('''create table Movie(
id integer not null primary key,
name varchar(32) not null,
score float(1),
score_num int,
relevant_data varchar(500)
)''')
conn.commit()
conn.close()
print('表创建成功!')
def InsertData(conn):
cursor = conn.cursor()
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(1,'肖申克的救赎','9.7','2602043','导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins ...1994 美国 犯罪 剧情')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(2,'霸王别姬','9.6','1932252','导演: 陈凯歌 Kaige Chen 主演: 张国荣 Leslie Cheung 张丰毅 Fengyi Zha...1993 中国大陆 中国香港 剧情 爱情 同性')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(3,'阿甘正传','9.5','1955615','导演: 詹姆斯·卡梅隆 James Cameron 主演: 莱昂纳多·迪卡普里奥 Leonardo...1997 美国 墨西哥 澳大利亚 加拿大 剧情 爱情 灾难')")
cursor.execute(
"insert into Movie(id,name,score,score_num,relevant_data) values(4,'泰坦尼克号','9.4','1916512','导演: 罗伯托·贝尼尼 Roberto Benigni 主演: 罗伯托·贝尼尼 Roberto Beni...1997 意大利 剧情 喜剧 爱情 战争')")
conn.commit()
conn.close()
print('插入成功!')
def SelectData(conn):
cursor = conn.cursor()
cursor.execute("select id,name,score,score_num,relevant_data from Movie")
rows = cursor.fetchall()
for row in rows:
print('id=', row[0], ',name=', row[1], ',score=', row[2], ',score_num=', row[3], 'relevant_data=', row[4])
conn.commit()
conn.close()
def UpdateData(conn):
cursor = conn.cursor()
cursor.execute("update Movie set name='update ...' where id=4")
conn.commit()
print("更新的行数:", cursor.rowcount)
conn.close()
def DeleteData(conn):
cursor = conn.cursor()
print('\n删除开始')
cursor.execute("delete from Movie where id=2")
conn.commit()
print('删除结束')
print("删除的行数:", cursor.rowcount)
conn.close()
def DropTable(conn):
cursor = conn.cursor()
cursor.execute("drop table Movie")
conn.commit()
conn.close()
print('表删除成功!')
if __name__ == '__main__':
CreateConnect()
CreateTable(CreateConnect())
InsertData(CreateConnect())
SelectData(CreateConnect())
DeleteData(CreateConnect())
UpdateData(CreateConnect())
DropTable(CreateConnect())
更多推荐
已为社区贡献4条内容
所有评论(0)