PostgreSQL学习笔记(二)

目录

PostgreSQL学习笔记(二)

PostgreSQL数据库基本操作

一、登录和登出

二、数据库操作

三、数据库表操作

四、数据库CRUD操作


PostgreSQL学习笔记(二)

PostgreSQL数据库基本操作

一、登录和登出

这里假设用户使用postgres登录数据库。

在控制台登录语句为:psql -U postgres      登录语法:psql –U postgres [dbname]

退出语法使用:\q

查看命令的帮助提示语法为:psql -?

二、数据库操作

创建数据库语法:create database 数据库名;

删除数据库语法:drop database 数据库名;(删除数据数据库时需关闭数据库连接或切换至其他数据库)

列举数据库语法:\l

选择数据库语法:\c 数据库名

三、数据库表操作

创建表语法:create table 表名(<字段名><数据类型(数量)>......);

查看表结构语法:\d

删除表:drop table 表名

四、数据库CRUD操作

Insert操作

PostgreSQL数据库支持多种插入形式。

  1. 正常的一一对应插入数据
  2. 不按照字段顺序插入数据
  3. 省略某些字段插入数据(未设置not null/具有默认值生成策略

同时可以使用Alter增加一列字段。

数据导入/导出:

psql导入(批量插入)

未登录:     psql  -U 用户名 -d 表名 -f  文件路径

登录数据库:    1. psql –U 用户名  -d 数据库名     2. \i  文件路径(Unix

pg_dump导出:

pg_dump -U postgres 用户名  -t   数据库名(缺省时同用户名)  > 路径/文件名

copy … from 导入:

copy … to 导出(导出weather表全部数据:):

Select查询语句

在查询时,可以查询某一张表中的全部字段,或者查询部分字段,或者查询表达式

注:查询表达式,如果没有AS字句,对应字段会用默认命名  ?column?,WHERE 条件查询:后面bool表达式。查询只返回表达式为true的数据 bool表达式之间用AND(与)、OR(或)和NOT(非)连接。

在查询过程中可以设置一些特殊的查询条件,这些查询条件可以帮助我们更加细致的查询数据。

ORDER BY排序查询:

DISTINCT 去重

GROUP BY 分组

HAVING 子句GROUP BY子句组合使用,用于选择函数结果满足某些条件的特定):

LIKE 匹配:

‘_’表示匹配一个占位符  

’%’表示匹配任意多个字符

IN NOT INBETWEEN WHERE 连用

IN : 指定条件满足IN条件

NOT IN:指定条件否定IN条件

BETWEEN:以从两个指定条件之间的表中获取数据

UNION UNION ALL :

UNION 子句/运算符用于合并两个或多个SELECT语句的结果,不返回任何重复的

UNION ALL 运算符是用来结合两个SELECT语句,包括重复

>个查询都必须返回相同数量的列。

>查询中的相应列必须具有兼容的数据类型

>可使用ORDER BY子句,对指定列的组合结果集中的行进行排序

PostgreSQL数据库同样支持子查询和多表查询。

子查询:

查询必须遵循以下规则

   > 查询必须括在括号中

   > 查询在SELECT子句中只能有一列,除非主查询中有多个列用于比较其所选列的子查询

   > ORDER BY不能用于子查询,尽管主查询可以使用ORDER BY

   > GROUP BY可用于执行与子查询中的ORDER BY相同的功能

   > 返回多行的子查询只能与多个值运算符一起使用

  例如INEXISTSNOT INANY / SOMEALL运算符

  BETWEEN运算符不能与子查询一起使用; 但是,BETWEEN可以在子查询中使用

多表查询:

Update更新操作

PostgreSQL中的upsert操作

当在表中插入一个新行时,PostgreSQL更新该行(如果它已经存在),否则,PostgreSQL会插入新

命令:

Delete删除操作