当前位置: 移动技术网 > IT编程>数据库>MSSQL > postgresql常用命令(docker环境)

postgresql常用命令(docker环境)

2020年07月18日  | 移动技术网IT编程  | 我要评论

进入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的表结构为
在这里插入图片描述
尝试插入数据:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网