^-^
用舍由时,行藏在我
docker安装使用postgresql
  1. docker 安装和运行
    1. 资料
    2. docker的基本操作
  2. 运行postgresql
    1. 资料
    2. docker常用基本命令
    3. postgresql语法
      1. 插入
      2. 更新
      3. 删除
    4. 自测题

因为之前docker接触的不多,来新公司之后公司数据库用的是pg,感觉安装很麻烦,于是试了一下docker安装,几分钟就搞定了,真方便!自从用了docker之后再也离不开它了!

这里说一下,Windows电脑安装docker之前要安装wsl。这样就可以在Windows系统跑Ubuntu,直接命令行 wsl就进入了!

docker 安装和运行

资料

可参考:

docker的基本操作

# 检查DOCKER状态
systemctl status docker

# 启动docker
systemctl start docker

# 设置开机启动
systemctl enable docker

# 查看帮助
docker --help

# 查看 docker 镜像
docker images

# 容器列表 状态
docker ps -a

# 删除容器
docker container rm xxx

# 启动容器
docker start [id]

# 进入容器
docker exec -it [id或者name]  /bin/bash

运行postgresql

资料

可参考:

docker常用基本命令

# 拉取镜像并运行
# -d 后台运行 postgres:12:指定使用postgres:12作为镜像
docker pull postgres:12
docker run --name postgres12 -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:12

# 进入容器
docker exec -it postgres12  /bin/bash

# 进入容器后
whereis psql

# 连接数据库
psql -U postgres

psql -U username -h hostname -p port -d dbname 
  -U username 用户名,默认值postgres
  -h hostname 主机名,默认值localhost
  -p port 端口号,默认值5432
  -d dbname 要连接的数据库名,默认值postgres

# 查看所有数据库
\list
select datname from pg_database;

# 创建数据库
create database TEST;

# 版本
 select version();

postgresql语法

# 创建数据库
create database xxx ;

# 查看数据库
\list

# 数据库改名 
alter database db1 rename to db2;

# 删除数据库
drop database xxx;

# 进入数据库
\c xxx

# 查看表
\d

# 查看表结构
\d xxx 

# 创建表
CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( 一个或多个列 )
);

CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);

# 删除表
drop table xxx;

# 表的修改
# 修改表名
alter table table_name rename to new_name ;
# 修改列名
ALTER TABLE table_name RENAME COLUMN old_name TO new_name;
# 修改列数据结构
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type;
# 增加列
ALTER TABLE table_name ADD COLUMN new_column_name data_type;
# 删除列
ALTER TABLE table_name DROP COLUMN column_name;


# 查看当前数据库模式
\dn

# 创建模式(注意是在哪个数据库创建的)
create schema xxx;

# 删除模式
drop schema xxx;
# 查看指定模式下的表情况
\d 模式名.*

模式
使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰。
  • 将数据库对象组织成逻辑组以便更容易管理。
  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。
    模式类似于操作系统层的目录,但是模式不能嵌套。

插入

# 表插入多行(注意逗号)
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES  
(值1, 值2, 值3, ...),  
(值1, 值2, 值3, ...),  
(值1, 值2, 值3, ...),  
...

更新

update [表名] 
set column1 = value1, column2 = value2...., columnN = valueN
where id=xxx

删除

DELETE FROM table_name WHERE [condition];

自测题

1. 数据库的创建、修改和删除;表的创建、修改和删除;数据的插入、修改和删除
2. 数据单表查询;多表查询;子查询;模糊匹配查询;查询运算(聚合、分组等);窗口函数
3. 常见索引(B-tree、Hash等)的特点;创建、修改和删除索引

窗口函数:通俗易懂的学会:SQL窗口函数 - 知乎 (zhihu.com)
数据:PostgreSQL练习_yws_2973199368的博客-CSDN博客