PostgreSQL 教程

PostgreSQL 教程

 

PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。

PostgreSQL 开发者把它念作 post-gress-Q-L。

PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库"。

 

Linux 上安装 PostgreSQL

Ubuntu 安装 PostgreSQL

Ubuntu 可以使用 apt-get 安装 PostgreSQL:

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

Centos 安装 PostgreSQL

1、安装rpm文件

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2、安装客户端

yum install postgresql10

3、安装服务端

yum install postgresql10-server

4、初始化

/usr/pgsql-10/bin/postgresql-10-setup initdb

5、设置自动启动并且启动postgresql服务

systemctl enable postgresql-10
systemctl start postgresql-10

安装完毕后,系统会创建一个数据库超级用户 postgres,密码随机。修改登录PostgreSQL密码

ALTER USER postgres WITH PASSWORD '123456';

这时使用以下命令进入 postgres,输出以下信息,说明安装成功:

~$ psql
psql (9.5.17)
Type "help" for help.

postgres=#

 

 

直接登录PostgreSQL命令

sudo -u postgres psql


# 也可以先切换到postgres用户,再psql进入
su - postgres
psql
# 回到root用户
exit

# postgres-#的意思是:你当前的命令输入还不完整。
# postgres=#的意思是:当前没有输入新的命令

 

创建用户和数据库

 创建用户

postgres=# create user username with password '****';
CREATE ROLE
postgres=#

需要注意:

  1. 要以英文分号结尾

  2.密码需要引号包裹

创建数据库

postgres=# create database dbtest owner username; -- 创建数据库指定所属者
CREATE DATABASE
postgres=#

将数据库得权限,全部赋给某个用户

postgres=# grant all on database dbtest to username; -- 将dbtest所有权限赋值给username
GRANT
postgres=#

修改linux系统postgres用户的密码

PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:

步骤一:删除用户postgres的密码

sudo passwd -d postgres

步骤二:设置用户postgres的密码

sudo -u postgres passwd

系统提示输入新的密码(新密码长度大一点,我是12345678)

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

 PostgreSQL常用命令

\q  # 退出
\l  # 查看所有数据库
\d # 查看当前数据库里所有表
\c 数据库名   # 选择数据库

 

Linux下安装psycopg2

pip3 install psycopg2

# 如果抱错就
sudo apt-get install postgresql
sudo apt-get install python-psycopg2
sudo apt-get install libpq-dev
pip3 install psycopg2

 

python连接PostgreSQL

 

import psycopg2

# 创建连接对象
conn = psycopg2.connect(database="stu", user="shark", password="shark", host="127.0.0.1", port="5432")
cur = conn.cursor()  # 创建指针对象

# 创建表
cur.execute("CREATE TABLE student(id integer,name varchar);")

# 插入数据
cur.execute("INSERT INTO student(id,name)VALUES(%s,%s)", (1, '张三'))
cur.execute("INSERT INTO student(id,name)VALUES(%s,%s)", (2, '李四'))
cur.execute("INSERT INTO student(id,name)VALUES(%s,%s)", (3, '王五'))

# 获取结果
cur.execute('SELECT * FROM student')
results = cur.fetchall()
print(results)

# 关闭练级
conn.commit()
cur.close()
conn.close()

 



posted @ 2020-11-22 17:01  不会飞的鲨鱼  阅读(762)  评论(0编辑  收藏  举报