pgsql pg数据库常用命令

来源:AirPython

作者:邢安国

pgsql pg数据库常用命令

1. 前言

大家好,我是安哥!

PgSQL,全称PostgreSQL,是一个免费开源的关系数据库。

与最流行的Mysql数据库相比,PgSQL在可靠性、数据完整性和可扩展性方面具有绝对优势。

本文将谈谈如何使用Python来操作PgSQL数据库。

2. PgSQL 使用

Python需要在运行PgSQL之前安装依赖包“psycopg2”。

#安装依赖包
pip3安装psycopg2

接下来,您可以使用Python来操作数据库

2-1数据库连接和光标对象

使用Psychopg 2中的“connect()”方法连接数据库,创建数据库连接对象和游标对象。

导入psycopg2

#获取连接对象
#数据库:数据库名称
#用户:用户名
#密码:密码
#主机:数据库ip地址
#端口:端口号。db _ name & # 34,用户= & # 34;postgres & # 34,密码= & # 34;pwd & # 34,host = & # 34127.0.0.1",port = & # 345432")

# Get cursor对象
cursor = conn.cursor()

获得游标对象后,就可以执行SQL,操作数据库了。

2-2插入数据

首先,编写用于插入数据的SQL语句和参数(可选)

# Build SQL语句
#方法1:直接参数
SQL = & # 34;插入到学生(姓名,年龄)\
值(%s,& # 39;% s & # 39)"% \
(& # 39;xag & # 39,23)

#模式二:参数分离
SQL = & # 34;""插入学生(姓名,年龄)值(%s,% s)& # 34;""
# Parameter
params =(& # 39;xag & # 39,23)

然后,使用游标对象执行SQL。

# Execute sql
#注意:params是可选的,设置
cursor.execute (SQL,[params])是根据上面的参数方法选择的。

接下来,使用连接对象提交事务。

#事务提交
conn.commit()

最后,释放游标对象和数据库连接对象。

#释放游标对象和数据库连接对象
cursor . close()
conn . close()

2-3查询数据

游标对象的fetchone()、fetchmany(size)和fetch chall()三个函数可以实现单个数据查询、多个数据查询和所有数据查询。

# Get a record[/Br/]One _ data = cursor . fetch One()[/Br/]print(One _ data)[/Br/]# Get 2 records[/Br/]Many _ data = cursor . fetch Many(2)[/Br/]# Get all data[/Br/]all _ data = cursor . fetchall()[/Br/]print(all _ data)

需要注意的是,条件查询类似于上面的插入操作,条件语句可以分隔参数。

#条件查询SQL语句
SQL = & # 34;""SELECT * FROM student,其中id = % s;"""

#对应参数,参数以逗号
params = (1,)

# Execute SQL
游标结束。execute (SQL,params)
[/br。

2-4更新数据

更新操作与上面的操作相同,唯一的区别是在执行SQL之后,需要用连接对象提交事务,将数据更新到数据库。

def update_one(conn,cursor):
& # 34;""更新操作& # 34;""
# Update语句
SQL = & # 34;""更新学生集名称= %s,其中id = % s & # 34""
params =(& # 39;AirPython & # 391,)

# Execute语句
游标。execute (SQL,params)

# Transaction commit
conn . commit()

2-5删除数据

删除数据类似于更新数据。

def delete_one(连接,光标):
& # 34;""删除操作& # 34;""
#语句和参数
SQL = & # 34;""从id = % s & # 34的学生中删除;""
params = (1,)
# Execute语句
cursor.execute (SQL,params)
#事务提交
conn.commit () [

3. 最后

通过上面的操作,我们可以发现Python操作PgSQl和Mysql类似,但是在原生SQl的编写上,两者还是有很多区别的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论