当前位置: 首页 > news >正文

PostgreSQL简单使用

1、在windows中创建用户和数据库:

  首先创建用户

template1=# CREATE USER rick WITH CREATEDB PASSWORD 'apress4789';
CREATE USER
template1=#

使用你新建的用户连接到数据库:

template1=# \c template1 rick
Password:
template1=#

是建立 bpsimple 数据库:

template1=> CREATE DATABASE bpsimple;
CREATE DATABASE
template1=>

使用新用户重新连接到 bpsimple 数据库:

template1=> \c bpsimple rick
You are now connected to database "bpsimple" as user "rick".
bpsimple=>

然后就可以创建表了。

2、一些基本的psql命令

\? 获得帮助消息
\do 列出操作类型
\dt 列出表
\dT 列出类型
\h <cmd> 列出 SQL 命令的帮助;用实际的命令代替<cmd>
\i <filename> 执行文件<filename>里头的命令
\r 重置缓冲器(忽略任何输入·····)
\q 退出 psql

3、PostgreSQL 有一个非 SQL 标准的 SELECT 语句的扩展从句,LIMIT,在我们想限制返回的行数时使用。在你的SELECT 语句后面添加一个带数字的 LIMIT 从句,从第一行开始,只有最多你指定的行数的行将被返回。使用 LIMIT 的另一个稍微不同的方法是在与指定开始位置的 OFFSET 从句一起使用的时候。

SELECT customer_id, town FROM customer LIMIT 5 OFFSET 2;

以上查询语句的意思是从查询结果中返回从第二行开始之后5行的数据。

4、PostgreSQL 中也是使用 IS NULL和IS NOT NULL来进行空值的判断

5、标准的比较运算符:

< 小于
<= 小于或等于
= 等于
>= 大于或等于
> 大于
<> 不等于

6、日期和时间的函数

date_part(units required, value to use) 允许你提取出日期的某一部分,例如月份。
Now 很简单地获得当前的日期和时间,它实际上和更标准的“变量”current_timestamp 相等。

其中data_part()的用法是:假设我们想要从我们的 orderinfo 表取出在九月下订单的行:

bpsimple=> SELECT * FROM orderinfo WHERE date_part('month',date_placed)=9; 
orderinfo_id | customer_id | date_placed | date_shipped | shipping
--------------+-------------+-------------+--------------+----------
 3 | 15 | 02-09-2004 | 12-09-2004 | 3.99
 4 | 13 | 03-09-2004 | 10-09-2004 | 2.99
(2 rows)
bpsimple=>

PostgreSQL 为我们提取出了正确的行。注意日期是按照 ISO 格式显示的。我们可以提取日期和时间戳的以下部分:

Year(年)
Month(月)
Day(日)
Hour(小时)
Minute(分钟)
Second(秒钟)

也可以使用用于数字比较的<>,<=,<,>,>=和=运算符来比较日期,以下是一个示例:

bpsimple=> SELECT * FROM orderinfo WHERE date_placed >= cast('2004 07 21' AS date);
orderinfo_id | customer_id | date_placed | date_shipped | shipping
--------------+-------------+-------------+--------------+----------
 3 | 15 | 02-09-2004 | 12-09-2004 | 3.99
 4 | 13 | 03-09-2004 | 10-09-2004 | 2.99
 5 | 8 | 21-07-2004 | 24-07-2004 | 0.00
(3 rows)
bpsimple=>

另外一个now函数的用法是:

bpsimple=> SELECT now(), current_timestamp;
 now | timestamptz
------------------------------------+------------------------------------
Sat 16 Oct 13:46:05.99938 2004 BST | Sat 16 Oct 13:46:05.99938 2004 BST
(1 row)
bpsimple=>

可以对日期进行简单的计算。例如,计算从下订单到发货所间隔的天数:

bpsimple=> SELECT date_shipped - date_placed FROM orderinfo;
?column? 
---------
 4
 1 
 10 
 7 
 3 
(5 rows)
bpsimple=>

 

相关文章:

  • 妈了个蛋,写了个炒鸡垃圾的脚本,也是醉了
  • 性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
  • PostgreSQL 的命令行psql和数据交互
  • 设计模式---代理模式
  • PostgreSQL之高级数据选择
  • PostgreSQL 的数据定义
  • iOS - TouchID 指纹识别
  • PostgreSQL 事务和锁
  • PostgreSQL的函数、存储过程和触发器
  • PostgreSQL实战(1)允许远程连接
  • Phoenix官方教程 (五) 控制器
  • PostgreSQL实战(12)高级特性
  • base64图上上传保存到服务器
  • ajax报错302重定向错误
  • ArcGIS Engine开发之旅03--ArcGIS Engine中的控件
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【Amaple教程】5. 插件
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android框架之Volley
  • Cookie 在前端中的实践
  • CSS中外联样式表代表的含义
  • Django 博客开发教程 8 - 博客文章详情页
  • input实现文字超出省略号功能
  • Java到底能干嘛?
  • Java小白进阶笔记(3)-初级面向对象
  • Mysql优化
  • php面试题 汇集2
  • QQ浏览器x5内核的兼容性问题
  • TypeScript实现数据结构(一)栈,队列,链表
  • uni-app项目数字滚动
  • 好的网址,关于.net 4.0 ,vs 2010
  • 如何用vue打造一个移动端音乐播放器
  • 硬币翻转问题,区间操作
  • 由插件封装引出的一丢丢思考
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • FaaS 的简单实践
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # Panda3d 碰撞检测系统介绍
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转载)Linux 多线程条件变量同步
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET delegate 委托 、 Event 事件
  • .NET 表达式计算:Expression Evaluator
  • .NET 的静态构造函数是否线程安全?答案是肯定的!