Postgresql入门(一)

Postgresql入门

 

一:创建一个数据库

 create database name
 ​
 -- 查看数据库版本
 select version();

 

二:创建一个新表

 create table users
 (
     id         bigserial not null,
     username   varchar,
     password   varchar,
     created_at timestamp,
     status     integer,
     ext        json
 );

可以在SQL命令中自由使用空白(空格、制表符、换行符)。

(“--”)注释,任何跟在后面直到行尾的东西都会被忽略。SQL是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号包围时,才保留它们的大小写。

varchar(80)指定了一个可以存储最长80个字符的任意字符串的数据类型。

int 是普通的类型

real是一种用于存储单精度浮点的类型

date类型可以自解释(类型date的列名也是date)

 

PostgreSQL支持标准SQL类型int,small,real,double precision、char(N)、varchar(N)、date、time、timestamp和interval。还支持其他的通用类型和丰富的几何类型。可以定制任意数量的用户自定义数据类型,因此类型名并不是语法关键字,除了SQL标准要求支持的例外。

 

三、在表中增加行

INSERT 语句向表中添加行:

 insert into users(username, password, created_at, status, ext)
 VALUES ('u001', 'p001', now(), 1, '{"a": "1"}'::json)

 

四、查询一个表

从一个表中检索数据,SQL中的select语句就是这个用途。语句分为选择列表(列出要返回的列)、表列表(列出从中检索数据的表)以及可选的条件(指定任意的限制)。

 -- 检索所有的列的数据
 select * from users;
 ​
 -- 检索指定的列
 select  ext from users;
 ​
 -- 按照指定的列倒序检索指定的列
 select  ext from users order by  created_at desc ;

 

五、表之间的连接

1. 内连接

 -- 内连接
 ​
 select * from users inner join account a on users.id = a.user_id;

 

2. 外连接

 -- 左外连接
 select * from users left join account a on users.id = a.user_id;
 ​
 -- 右外连接
 select * from users right join account a on users.id = a.user_id;
 ​
 ​

 

 

六、聚集函数

PostgreSQL支持聚集函数。 一个聚集函数从多个输入行中计算出一个结果。 比如,我们有在一个行集合上计算count(计数)、sum(和)、avg(均值)、max(最大值)和min(最小值)的函数。

 -- count
 select count(ext ->> 'a') from users;
 -- sum
 select sum(status) from users;
 -- avg
 select avg(status) from users;
 -- max
 select max(ext ->> 'a') from users;
 -- min
 select min(ext ->> 'a') from users;

 

注意:

WHEREHAVING的基本区别如下:WHERE在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而HAVING在分组和聚集之后选取分组行。因此,WHERE子句不能包含聚集函数; 因为试图用聚集函数判断哪些行应输入给聚集运算是没有意义的。相反,HAVING子句总是包含聚集函数(严格说来,你可以写不使用聚集的HAVING子句, 但这样做很少有用。同样的条件用在WHERE阶段会更有效)。

 

七、更新

使用update对现有的行进行更新。

 update users set status = 2 where id = 3;
 ​
 update users set status = status + 1  where id = 3;

 

八、删除

使用delete对表记录进行删除

 delete from users where id = 3;
 ​
 -- 如果没有一个限制,DELETE将从指定表中删除所有行,把它清空。做这些之前系统不会请求你确认!
 delete from users;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值