欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

postgresql常用命令(docker环境)

程序员文章站 2022-03-28 22:37:33
进入postgre容器: docker exec -it postgres /bin/bash进入postgresql的命令行模式 :psql -U postgres帮助菜单(psql语言的功能):\h (在进入帮助菜单后,点q键退出)系统帮助菜单(psql系统的功能):?(同上q键退出)创建数据库 :create database xxx;当前数据库一览:\l删除数据库:drop database xxx;......

进入postgre容器: docker exec -it postgres /bin/bash
进入postgresql的命令行模式 :psql -U postgres
(再敲sql命令的时候需要加分号,不加分号数据库命令行的前缀=#会变成-#,当变成-#时敲入一个‘;’命令还可以正常执行)
帮助菜单(psql语言的功能):\h (在进入帮助菜单后,点q键退出)

===============
查看数据库的版本:select version();
系统帮助菜单(psql系统的功能):?(q键退出)
创建数据库 :create database xxx;
当前数据库一览:\l
删除数据库:drop database xxx;
退出postgresql数据库:\q
切换数据库:\c mydatabase(切换到mydatabase数据库)

==========================
创建表格(要进入数据库创建表,创建表不能只写表名,需要一起创建表结构):create table xxx(title varchar(255),content text);
查看表是否创建成功:\d
查看表格信息:\d tablename
删除表格:drop table mytable;(删除表mytable)

======================
创建模式:create schema myschema;
删除模式:drop schema myschema;
在模式里创建表格:create table schema.company(…)
删除模式下的表格:drop table schema.company;
查看当前数据库创建的模式:\dn
查看当前所在数据库:select current_database()
查看当前用户:select user;
查看xx模式下的表:\d xx.* (通配符的方式查看)

=====================
向表格中插入数据(先\d company查询表的结构,然后根据表结构插入数据):
例如:company的表结构为
postgresql常用命令(docker环境)
尝试插入数据:

insert into company(id,name)values (4,'weijie'),(5,'limin'),(6,'wenshuo');

提示:“INSERT 0 3”,如下图

suqinghua=# insert into myschema2.company(id,name)values (4,'weijie'),(5,'limin'),(6,'wenshuo');
INSERT 0 3

则插入成功!用“select * from company ;”查询

注:
像模式下的表插入数据时只需要加上模式的名字就可以:

suqinghua=# insert into myschema2.company(id,name)values (4,'weijie'),(5,'limin'),(6,'wenshuo');
INSERT 0 3

myschema2为模式名,“INSERT 0 3”意思是插入成功。

=====================
delete从数据库表中删除一条数据:delete from company where id=3;
like:通配符(’’,’%’),下划线’'代表一个字符,百分号‘%’代表任意数量的任意字符,和‘like’搭配使用。
limit和offset:
①select * from companny limit 4;(取select * from companny查询结果的前4条数据)
limit + 参数 ,查询出你需要的所有数据,然后取你参数指定的条数,从第一条数据开始。
②select * from company limit 4 offset 2;(从第2+1条数据开始,取4条数据)
limit +参数的效果还是限制取出数据的条数,但是起始位置变为(offset +参数)的(参数+1)的位置,从参数+1位置取4条数据出来。
select * from company limit param1 offset param2;
即从company中select出*,然后从(param2+1)位置开始(包括此条数据),取出param1个数据。

=======================
oder by:两个关键字desc和asc,两个关键字的意思为:desc是descend降序意思,asc是ascend升序的意思。
select * from company order by id asc;
update:update company set name=‘yandingshan’ where id=12;
给数据库的表增加一列:alter table company add content text;
修改数据库表列名:alter table company rename content to text;
分组:group by ,select name ,sum(salary) from job.company group by name order by sum(salary) asc;以名字分组从job模式下的company表中拿出name和分组后name对应的salary的和,最终以salary的和递增的形式展示出来。
as:select (25+5) as sum; 将25+5的结果打印出来,列名为sum;

======================================================
returning关键字:返回修改行,插入行,删除行的数据,‘returning *’意思是返回你操作的全部数据,也可以是你刚才修改,插入,删除数据的一部分,例如:returning id ,returning name…之类
UNION ALL 和UNION:union all ,解释为联合所有,union解释为联合,union或者union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出,这就要求联动前后的结果集,需要分别有相同的输出字段的数目,并且对应的字段类型要相同。
union all 和union的差别就在all上面,第一个叫联合所有,说明会显示前后两个查询所有的数据,而union没有all(所有)这个单词,实现将前后两个查询的数据联合到一起后,去掉重复的数据显示。
with:with自己编写一小段数据库操作代码,然后可以将这段代码的结果可以取一个名字,供后面的代码调用。
recursive:配合with产生递归效果。
HAVING:HAVING子句可以让我们筛选分组后的分组数据。WHERE子句在所选列项上设置条件,而HAVING子句则在由GROUP BY 子句创建的分组上设置条件。HAVING子句在SELECT查询中的位置,SELECT FROM WHERE GROUP BY HAVING ORDER BY;
DISTINCT:关键字的基本语法,SELECT DISTINCT COLUMN1 FROM TABLE_NAME WHERE [condition];
(未完待续,欢迎大家批评改正)

本文地址:https://blog.csdn.net/qq_29274865/article/details/107044131