文章目录

  • PostgreSQL
    • 安装PostgreSQL
    • 常用PostgreSQL命令
    • 常用PostgreSQL操作
      • 修改用户密码
      • 添加用户并设置密码
      • 创建数据库并指定一个拥有者
      • 连接另一个数据库
      • 删除table中的记录
      • 删除table
  • SQLAlchemy
    • 安装SQLAlchemy
      • 检查版本
      • 连接某个已经创建的数据库
      • 建立一个Table
      • 使用session往table里插入记录
      • 使用session查询(query)
      • session中的roll back

PostgreSQL

×××PostgreSQL官方教程×××

安装PostgreSQL

首先,你可以检查下是否已经安装过PostgreSQL

$ psql --version
psql (PostgreSQL) 10.15 (Ubuntu 10.15-0ubuntu0.18.04.1)

如果没有安装,则装一下。

sudo apt-get update
sudo apt-get install postgresql postgresql-client

常用PostgreSQL命令

安装完之后,你就可以使用了,他这里面的逻辑要好好体会下。不说废话,大家在下面的实践中自行体会。

# 首先你需要变成root用户
sudo -i
# 然后你要变成postgres用户, 这是PostgreSQL的超级用户
su postgres
# 此时你还没进入数据库,psql进入数据库。
~$ psql
psql (12.4 (Ubuntu 12.4-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
# 注意:此时,你是以postgres用户,进入到了名为postgres的数据库(database)中

进入PostgreSQl 之后,你可以查看当前已存在的数据库,创建数据库,删除数据库,也可以对增删用户,以及查看数据库的表啊等等。

Command Description
\l 查看已有的数据库(database)
\l+ 查看已有的数据库(database)的详细信息
\dt 查看已有的表(table)
\dt+ 查看已有的表(table)的详细信息
\dn 查看已有的模式(schemas)
\du 查看所有的用户(role)
\conninfo 查看当前连接信息(db host, db name, db user)

常用PostgreSQL操作

修改用户密码

postgres=# \password postgres

添加用户并设置密码

postgres=# CREATE USER zdx WITH PASSWORD '123456'; # 创建用户

创建数据库并指定一个拥有者

postgres=# CREATE DATABASE test OWNER zdx;

连接另一个数据库

postgres=# \c test

删除table中的记录

DELETE FROM table_name WHERE ID=1; #没有WHERE的话,就删除整个表的内容。

删除table

drop table table_name;

我们已经创建了一个test database. 接下来我们准备使用SQLAIchemy工具来进一步操作这个数据库,比如建表等。关于更多使用PostgreSQL命令直接操作数据库大家参考官方教程。

SQLAlchemy

×××SQLAlchemy1.3官方教程×××
个人觉得还不错的一个SQLAlchemy教程

安装SQLAlchemy

pip install sqlalchemy

检查版本

import sqlalchemy as db
db.__version__
'1.3.17'

连接某个已经创建的数据库

# Scheme: "postgres+psycopg2://<USERNAME>:<PASSWORD>@<IP_ADDRESS>:<PORT>/<DATABASE_NAME>"
DATABASE_URI = 'postgres+psycopg2://zdx:123456@localhost:5432/test'
engine = db.create_engine(DATABASE_URI)

Tips:
engine.execute(…) 可以直接用engine来操作数据库。
也可以通过connection来操作:

trans = conn.begin()
conn.execute('INSERT INTO "EX1" (name) ''VALUES ("Hello")')
trans.commit()

Engine.execute() 和 Connection.execute() 功能一样。

建立一个Table

ORM工具操作数据库最大特点,就在于把数据库里的内容都当做object.
定义一个Table,就是对base类的继承。

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
# 定义一个users Table object
from sqlalchemy import Column, Integer, String
class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String)password = Column(String)def __repr__(self):return f'user {self.name}'

此时只是定义了users 这个Table, 数据库中还没任何改变,执行下面语句就会在连接的数据库中,创建一个users的空表。

Base.metadata.create_all(engine)

到数据库中,查看是否创建成功

test=# \dList of relationsSchema |     Name     |   Type   | Owner
--------+--------------+----------+-------public | users        | table    | zdxpublic | users_id_seq | sequence | zdx
(2 rows)

使用session往table里插入记录

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
s = Session()
user = User(name='John Snow', password='johnspassword')
s.add(user)
s.commit()
#s.close()

到数据库中,查看是否插入成功

test=# select * from users;id |   name    |   password
----+-----------+---------------1 | John Snow | johnspassword
(1 row)

插入多条记录

s.add_all([User(name='Wendy Williams', password='wendypassword'),User(name='Mary Contrary', password='marypassword'),User(name='Fred Flintstone', password='fredpassword')
])
s.commit()

到数据库中,查看是否插入成功

test=# select * from users;id |      name       |   password
----+-----------------+---------------1 | John Snow       | johnspassword2 | Wendy Williams  | wendypassword3 | Mary Contrary   | marypassword4 | Fred Flintstone | fredpassword
(4 rows)

使用session查询(query)

query = s.query(User) # 查询 user table
query.count() #总共多少记录
query.first() #显示查询到第一条记录
query.all() #显示查询的所有的记录

session中的roll back

fake_user = User(name='fakeuser', password='fakepassword')
s.add(fake_user)
s.query(User).filter_by(name='fakeuser').first()

user fakeuser

fake_user in s

True

s.rollback()
fake_user in s

False

PostgreSQL and SQLAlchemy [ubuntu]相关推荐

  1. PostgreSql新建数据库——Ubuntu

    添加新用户和新数据库 方式方法很多,这里介绍一种个人常用的. 新建一个Linux新用户,这里为yyds(会提示设置密码(密码还是要设置的啦),其他默认就好(直接回车,最后输入y,然后回车就搞定啦!)) ...

  2. SQLALchemy (ORM工具)[PostgreSQL为例]

    文章目录 SQLAlchemy Basics Tutorial Install a Postgres server locally and create a database Install requ ...

  3. ubuntu 安装mysql ,postgresql (转)

    2019独角兽企业重金招聘Python工程师标准>>> mysql http://wiki.ubuntu.org.cn/MySQL%E5%AE%89%E8%A3%85%E6%8C%8 ...

  4. 在Ubuntu 18.04上安装PostgreSQL 11和PgAdmin4

    In this guide, you will learn how to install PostgreSQL 11 and PgAdmin4 on Ubuntu 18.04 LTS. 在本指南中,您 ...

  5. Ubuntu Server 20.04 LTS 安装配置 PostgreSQL

    1 & 环境准备 上面一篇文章我们讲解了在 Windows 环境上面安装 PostgreSQL 的简单介绍,准备环境基本一样. ubuntu server 20.04 镜像下载地址 => ...

  6. 入门系列之使用Sysdig监视您的Ubuntu 16.04系统

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序.它具有强大的过滤语言和可自定义的输出,以 ...

  7. Ubuntu下Postgres安装与配置

    postgres8.4安装配置: 1.安装postgres8.4 ~$ sudo apt-get install postgresql 2.修改超级管理员postgres密码: 以系统用户运行psql ...

  8. 入门系列之使用Sysdig监视您的Ubuntu 16.04系统 1

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序.它具有强大的过滤语言和可自定义的输出,以 ...

  9. 开源的数据库,PostgreSQL 基础入门实战

    PostgreSQL 简介与安装 实验介绍 大家好,本课程是关于 PostgreSQL 数据库的使用说明,细致讲解 PostgreSQL 的特性与使用方法,尽量做到描述朴实.深入浅出.示例充足.覆盖重 ...

最新文章

  1. oracle管理员是sys吗,Oracle管理员sys,system登录无权限的坑
  2. mysql基本数据库操作
  3. 使用JDOM2.0.4 操作/解析xml
  4. python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...
  5. 下载OneDrive共享的数据集
  6. FreeRTOS内核实现03:临界段的保护
  7. FPGA与CPLD的区别
  8. VS2019配置opencv4.1.2(永久配置)
  9. 《Ray Tracing in One Weekend》——Chapter 10: Positionable camera
  10. poj 3468 A Simple Problem with Integers 基础线段树
  11. Amoeba Architecture
  12. 学生选课系统代码-1start.py代码
  13. 微信公共号给客户发送消息提醒/模板消息(如业务到期提醒 ,订单提醒,帐户变动提醒)
  14. wpf制作的画图软件
  15. 软件开发人员的简历项目经验怎么写?
  16. 天龙八部荣耀版体验服服务器未响应,《天龙八部荣耀版》体验服评测:用竖版画面重新诠释天龙江湖...
  17. 【高德地图API】Web地图开发系列(一)
  18. 快速开始keras 教程
  19. 算法可以用不同的语言描述如果用c语言,【判断题】算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。...
  20. shtml 是什么?

热门文章

  1. 终极解决办法rvct Cannot obtain license for Compiler (feature compiler) with license version = 3.1...
  2. 查看及修改当前数据库的所支持的数据库引擎以及默认数据库引擎
  3. python(条件语句和基本数据类型)
  4. Java多线程基础总结
  5. [ZJOI2006]物流运输
  6. wordpress 后台404解决办法
  7. 简要分析JM8.6代码中foreman_part_qcif.yuv文件的YUV数据如何悄无声息地进入程序
  8. Perl文件处理示例——批量添加Copyright版权信息
  9. SQLSERVER数据库设置varchar类型主键自增方法
  10. spring多个AOP执行先后顺序(面试问题:怎么控制多个aop的执行循序)