psycopg2 , pymysql 连接数据库 操作

时间:2025-03-27 07:42:30

连接数据库

# 安装python 三方模块 psycopg2 
# pip install psycopg2 
import psycopg2 

# 连接数据库
conn = (
    database="database", 
    user="name", 
    password="*******",
    host="127.0.0.1",
    port="5432")
cur = () # 创建游标

()  # 提交
()  # 关闭游标
()  # 关闭数据库

psycopg2 -  创建表



# 创建表
sql = '''CREATE TABLE 表名
       (ID INT PRIMARY KEY    NOT NULL, # 整数(必要字段)不允许空值
       NAMEX          TEXT    NOT NULL, # 文本类型 不允许空值
       IMG     BYTEA NOT NULL  ); # 二进制类型(存储图片,视频)
            '''

psycopg2 -添加数据  

import psycopg2
conn = (
database="database", 
user="name", 
password="*******",
host="127.0.0.1",
port="5432")
cur = () #创建游标

with open("D:\\", 'rb') as f:
    img = base64.b64encode(())
id = 1
name = "张三"
(f"INSERT INTO name( ID,NAMEX, IMG) "
                f"VALUES ('{id}','{name}', '{img}')")
()  # 提交
()  # 关闭Cursor
()  # 关闭数据库

psycopg2 -查询数据

import psycopg2
conn = (
database="database", 
user="name", 
password="*****", 
host="127.0.0.1",
port="5432")
cur = ()
("SELECT * from name")
rows = ()
for row in rows:
    print(row)
()  # 提交
()  # 关闭Cursor
()  # 关闭数据库

pymysql 数据库操作:

连接数据库

import pymysql as pymysql


conn = (
    host='8.000.000.000',  # IP地址
    port=3306,  # 端口
    user='*********', #用户名
    password='*********', #密码
    db='sql_utc_group',#库名
    charset='utf8'#字符编码

)
cursor = () # 游标
sql = 'show databases' # 定制sql 语句

(sql) # 执行sql 语句
datas = ()  # 使用fetall()获取全部结果数据
print(datas)
() # 提交操作   除了查询 切记提交操作后才会生效
()  # 关闭光标
()  # 关闭连接

基本常用语句

sql = 'show databases' #  查询所有库名


sql = "CREATE DATABASE IF NOT EXISTS new_db"#创建 DATABASE new_db是要创建的数据库名字

sql = 'show tables' #  查询所有表名

sql = 'drop table 表名'  # 删除 数据表

# 创建表
sql = """create table BLAW( #表名
	    id int PRIMARY key auto_increment,  #自增长,主键
	    NAMEDATE char (255) not null , # 字符串类型长度0-255 不许空值
	    AREA varchar(255) default '中国', #可变长度字符串 0-65535,默认值 "中国"
	    POST char(255) null , #字符串类型长度0-255 允许空值
	    TXT text(65535))"""  ## 长文本类型

# 插入数据。 注意 如果是用双引号"%s"或单引号'%s' ,那么在数据库的内容中不可有双引号或单引号'%s' 
 #                  表名        需要在哪里插入数据
sql = f'INSERT INTO BLAW(NAMEDATE,AREA, POST, TXT) VALUES ("%s", "%s",  "%s",  "%s")' % (
            NAMEDATE_, AREA_, POST_, text)



# 查询数据 
sql = f"select * from BLAW;"
(sql)
datas = ()  # 使用fetall()获取全部结果数据
print(datas)