一、需要的库

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())

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐