postgresql 常用速查
/**gp中的基本sql语法**/
--删除表
drop table testtb;
--创建表
CREATE TABLE testtb
(
id integer,
"name" character varying(2)
)
WITH (
OIDS=FALSE
)
DISTRIBUTED BY (id);
ALTER TABLE testtb OWNER TO gpadmin;
--WITH 用来说明表的存储属性,比如表的压缩
--DISTRIBUTED BY 定义表的分布键,这个键最好唯一,如果表中没有唯一键字段,可以定义DISTRIBUTED RANDOMLY作为分布建。
--表的创建
create table testTBbak (like testTB) -- like 复制表结构
create table testtbbak1 as select * from testtb distributed by (name) -- 数据保留,可以指定分布键。
select * into testtbbak2 from testTB -- into 保留数据,不能指定分布键
select * from testtbbak2
/**分区表**/
-- 按照时间分区
--
--创建视图
create view v_testtb as select * from testtb
-- 删除数据
delete from testtb -- 速度慢,会写日志。
truncate testtb -- 速度快,但不会写日期。
/**序列的使用**/
--删除序列
drop sequence myseq
--创建序列(1是开始值,可以根据实际情况改变)
create sequence myseq start 1
--序列的使用
insert into testTB values(nextval('myseq'),'小明')
--重新设置序列值
select setval('myseq',1)
--查询
select id,name from testTB order by 1
-- explain 用于查看sql执行计划
explain select * from testtb
/**字符串函数**/
-- || 字符串连接
select '胡' || '黄' || '腾'
-- length 字符长度
select length('89998')
-- substring 字符串截取,从那位开始,截几位
select substring('123456' from 2 for 3)
-- trim去字符前后空格
select trim(' 234 fds ')
-- lowere 字符转小写
select lower('RER')
-- upper 字符转大写
select upper('rer')
-- replace 替换字符
select replace('aabbddee','aa','mm')
-- position 查找指定字符位置
select position('de' in 'abdeaf')
-- split_part 根据指定字符查找给定字符的位置
select split_part('aaa|bbb|ccc|eee','|',2)
/**时间的函数**/
-- age求俩日期之差
select age(timestamp '1987-12-03',timestamp '2015-06-17')
-- age如果一个日期则和当前日期求差
select age(timestamp '1987-12-03')
-- current_date 当前日期
select current_date
-- current_time 当前时间
select current_time
-- current_timestamp 当前时间戳
select current_timestamp
-- now 当前时间
select now()
-- extract 获取指定时间的具体某个参数
select extract(day from date '2015-06-18')
select extract(day from now())
-- 时间相加
select '2015-04-2 10:00:52'::timestamp + interval '10 days 2 hours 10 seconds'
-- 时间相减
select current_date - interval '10 days'
/**gp中其他函数**/
-- greatest 取两值中的最大值
select greatest(3,9)
-- 列转行
insert into testtb(id,name)values (1,'ha');
insert into testtb(id,name)values (1,'he');
insert into testtb(id,name)values (1,'hi');
insert into testtb(id,name)values (2,'xb');
insert into testtb(id,name)values (2,'xh');
insert into testtb(id,name)values (2,'xm');
select id,string_agg(name,'|' order by name) from testtb group by id;
-- 行转列
select id,regexp_split_to_table(string_agg,E'\\|') str from texttb_m
/**开窗函数**/
--建表
create table empsalary
(
depname varchar(20),
empno integer,
salary integer
)
distributed by (empno)
insert into empsalary values ('develop',9,4500);
insert into empsalary values ('develop',1,3200);
insert into empsalary values ('develop',4,1000);
insert into empsalary values ('develop',2,9100);
insert into empsalary values ('develop',6,1000);
insert into empsalary values ('person1',5,3100);
insert into empsalary values ('person1',7,4100);
insert into empsalary values ('sales',3,2400);
insert into empsalary values ('sales',8,1200);
insert into empsalary values ('sales',10,5100);
-- rank 及 row_number 函数的应用
select depname
,empno
,salary
,rank() over (partition by depname order by salary desc)
,row_number() over (partition by depname order by salary desc)
from empsalary
-- rank 识别重复记录
-- row_number 不识别重复记录
select *
,sum(salary) over () sum1
,sum(salary) over (order by salary) sum2
,sum(salary) over (partition by depname) sum3
,sum(salary) over (partition by depname order by salary) sum4
from empsalary
-- grouping by 的使用(其实就是简化了union)
select depname ,sum(empno)
from empsalary
group by depname
union all
select depname ,sum(salary)
from empsalary
group by depname
--等效于
select depname,sum(empno),sum(salary)
from empsalary
group by grouping sets(depname)
命令行
当我们费尽千辛万苦安装完数据库后,一定会迫不及待的想使用它。骚年,不要着急,且看我为您解析PostgreSQL的启动,登录,退出,关闭过程。
一 启动数据库服务器
1. 没有设置环境变量的情况下,postgresql用户下:
/usr/local/pgsql/bin/postgres -D data >./data/logfile 2>&1 &
其中/usr/local/pgsql/bin目录中存放着数据库的执行命令,/data是数据库的数据存放目录。小伙伴们可
以根据自己实际的安装目录调整上面的命令。
如下命令查看数据库进程有没有成功启动,当看到有几个postgres的进程时,说明启动成功。
ps aux | grep postgres
2. 设置环境变量的情况下
如果需要指定环境变量,请按如下方式:
postgres@lgr-pc:~$ vi .bash_profile
添加如下内容:
PGDATA=/usr/local/pgsql/data;
PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin
export PGDATA PATH
即指定pgdata和bin的目录,这里可以根据自己的实际目录指定。
编辑完环境变量文件后,运行如下命令使环境变量生效:
postgres@lgr-pc:~$ . .bash_profile
设置完环境变量,运行如下命令启动服务器:
postgres@lgr-pc:~$ pg_ctl start
二 登录服务器
当安装完数据库后,我们会有一个系统用户,一个数据库,一个数据库用户,他们默认的名称为:postgres
1. 如果没有设置bin目录的环境变量,那么
postgres@lgr-pc:~$ /usr/local/pgsql/bin/psql
这样默认登录到postgres库中,当然也可以在psql后面加上库的名称,这样就可以登录到指定库中。如登录到test库:
postgres@lgr-pc:~$ /usr/local/pgsql/bin/psql test
2. 如果您也像我一样设置了bin目录的环境变量,那么
postgres@lgr-pc:~$ psql
这样默认的也是登录到postgres库中,同样的我们可以指定数据库名称,登录到指定库。
postgres@lgr-pc:~$ psql test
三 退出登录
退出登录就很简单了,我们可以运行\q,或者ctrl+d
postgres=# \q
四 关闭数据库服务器
关闭:
postgres@lgr-pc:~$ pg_ctl stop
重启:
postgres@lgr-pc:~$ pg_ctl restart
postgresql 常用速查的更多相关文章
- jQuery 常用速查
jQuery 速查 基础 $("css 选择器") 选择元素,创建jquery对象 $("html字符串") 创建jquery对象 $(callback) $( ...
- C++常用速查
int main() { int arr[2][5] = { {1,8,12,20,25}, {5,9,13,24,26} }; } void f(double p[][10]) { } #inclu ...
- python轻量级orm框架 peewee常用功能速查
peewee常用功能速查 peewee 简介 Peewee是一种简单而小的ORM.它有很少的(但富有表现力的)概念,使它易于学习和直观的使用. 常见orm数据库框架 Django ORM peewee ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- 转收藏:Git常用命令速查表
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- Linux常用命令速查备忘
Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...
- python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表
目录: 一:大O记法 二:各函数高阶比较 三:常用算法和数据结构的复杂度速查表 四:常见的logn是怎么来的 一:大O记法 算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记 ...
- web 开发:CSS3 常用属性——速查手册!
web 开发:CSS3 常用属性——速查手册! CSS3 简介:http://www.runoob.com/css3/css3-intro.html 1.目录 http://caniuse.com/ ...
- Git 常用命令速查表(图文+表格)
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
随机推荐
- vue中eventbus被多次触发(vue中使用eventbus踩过的坑)【bus.$on事件被多次绑定】
问题描述:只要页面没有强制刷新,存在组件切换,bus.$on方法会被多次绑定,造成事件多次触发 触发bus.$on中绑定的方法.png bus.$on多次绑定.png 解决办法:在每次调用方法 ...
- SQLSERVER最简单的同名数据库恢复过程.
一. 冷备份恢复 1. net stop mssqlserver # 如果是安装的默认数据库实例 关闭 sqlserver的数据库 2. copy sqlserver的数据文件 主要是mdf 数据文件 ...
- Qt__输入对话框(QInputDialog)
#include <QInputDialog> ...... bool isOK; QString text = QInputDialog::getText(NULL, "Inp ...
- html的表格 table
創建表格: 每一個表格以table開始: 每一個表格行以tr開始: 每一個數據以td開始:td的內容可以文本.圖像.表格.表單.段落等. 表格邊框: border設置邊框的粗細,但無法設置行間距,也無 ...
- BZOJ2796[Poi2012]Fibonacci Representation——贪心+二分查找
题目描述 给出一个正整数x,问x最少能由多少个Fibonacci数加减算出. 例如1070=987+89-5-1,因此x=1070时答案是4. 输入 第一行一个正整数q (q<=10),表示有q ...
- LOJ121 动态图连通性(LCT)
用LCT维护一下删除时间的最大生成树即可.当然也可以线段树分治. #include<iostream> #include<cstdio> #include<cmath&g ...
- BZOJ4516 SDOI2016生成魔咒(后缀数组+平衡树)
一个字符串本质不同的子串数量显然是总子串数减去所有height值.如果一个个往里加字符的话,每次都会改动所有后缀完全没法做.但发现如果从后往前加的话,每次只会添加一个后缀.于是我们把字符串倒过来,每次 ...
- BZOJ 2929: [Poi1999]洞穴攀行
2929: [Poi1999]洞穴攀行 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 351 Solved: 195[Submit][Status][ ...
- centos7 安装mysql的正确姿势
1. 添加MySQL Yum源 MySQL官网>DOWNLOADS>MySQL Yum Repository找到合适版本的yum源 $wget https://dev.mysql.com/ ...
- 洛谷P3622 动物园
题意:给定一个n个元素的圈,m个条件.满足一个条件需要选某些元素或不选另一些元素. 问最多能满足多少条件.每个条件所关联的元素,最远的两个距离不会超过5. 解:想了半天...... 首先能想到断环成链 ...