postgreSQL环境搭建
一、安装
操作系统:windows7
安装介质:postgresql-9.1.3-1-windows.exe
二、psql控制台简单使用
1打开psql
2根据提示运行help
3列出表命令
三、安装uuid的扩展
postgresql9.1.3默认没有安装uuid相关函数,虽然在目录C:\Program Files (x86)\PostgreSQL\9.1\lib下有uuid-ossp.dll文件。
安装很简单,感觉C:\Program Files (x86)\PostgreSQL\9.1\share\extension\uuid-ossp--1.0.sql文件提示,在psql窗口下执行命令:
/* contrib/uuid-ossp/uuid-ossp--1.0.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION uuid-ossp" to load this file. \quit CREATE FUNCTION uuid_nil()
RETURNS uuid
AS 'MODULE_PATHNAME', 'uuid_nil'
IMMUTABLE STRICT LANGUAGE C; CREATE FUNCTION uuid_ns_dns()
.................
我这里因为是第二次执行,所以报错,这里没有管理,注意uuid-ossp需要加上字符串双引号
四、pgAdmin图形化工具简单使用
五、建表
以下名为dpi的schema是关联用户root(自己新建的用户,并且拥有superuser权限,因为要安装uuid扩展)
student 学生表
CREATE TABLE dpi.student
(
id uuid,
name character varying(20),
age integer
)
course 课程表
CREATE TABLE dpi.course
(
id uuid,
name character varying(30)
)
grade 分数表
CREATE TABLE dpi.grade
(
id uuid,
studentid uuid,
classid uuid,
grade double precision
)
注:以上建表语句应该加上表的简单注释和字段意义注释!!
六、编写简单存储过程
postgresql中的存储过程就是函数。
1从postgresql文档中找到的实例1
CREATE OR REPLACE FUNCTION dpi.sales_tax(real)
RETURNS real AS
$BODY$
DECLARE
subtotal ALIAS FOR $1;
BEGIN
RETURN subtotal * 0.06;
END;
$BODY$
LANGUAGE plpgsql
2从postgresql文档中找到的实例2
CREATE OR REPLACE FUNCTION dpi.add_three_values(IN v1 anyelement, IN v2 anyelement, IN v3 anyelement, OUT sum anyelement)
RETURNS anyelement AS
$BODY$
BEGIN
sum := v1 + v2 + v3;
END;
$BODY$
LANGUAGE plpgsql
3添加学生的存储过程
CREATE OR REPLACE FUNCTION dpi.addstudent(character varying, integer)
RETURNS void AS
$BODY$
insert into dpi.student values(uuid_generate_v1(), $1, $2);
$BODY$
LANGUAGE sql
4添加课程的存储过程
CREATE OR REPLACE FUNCTION dpi.addcourse(character varying)
RETURNS void AS
$BODY$
insert into dpi.course values(uuid_generate_v1(), $1);
$BODY$
LANGUAGE sql
5添加分数的存储过程
--copy自pgadmin工具:
CREATE OR REPLACE FUNCTION dpi.addgrade(character varying, double precision, double precision, double precision)
RETURNS real AS
$BODY$
declare
s_id uuid;
chinese_id uuid;
english_id uuid;
math_id uuid;
begin
select id into s_id from dpi.student where name = $1;
select id into chinese_id from dpi.course where name = '语文';
select id into english_id from dpi.course where name = '英语';
select id into math_id from dpi.course where name = '数学';
insert into dpi.grade values(uuid_generate_v1(), s_id, chinese_id, $2);
insert into dpi.grade values(uuid_generate_v1(), s_id, english_id, $3);
insert into dpi.grade values(uuid_generate_v1(), s_id, math_id, $4);
raise notice '1';
return 1;
end;
$BODY$
LANGUAGE plpgsql
--原始写法
create or replace function dpi.addgrade(varchar, float, float, float) returns real as $$
declare
s_id uuid;
chinese_id uuid;
english_id uuid;
math_id uuid;
begin
select id into s_id from dpi.student where name = $1;
select id into chinese_id from dpi.course where name = '语文';
select id into english_id from dpi.course where name = '英语';
select id into math_id from dpi.course where name = '数学';
insert into dpi.grade values(uuid_generate_v1(), s_id, chinese_id, $2);
insert into dpi.grade values(uuid_generate_v1(), s_id, english_id, $3);
insert into dpi.grade values(uuid_generate_v1(), s_id, math_id, $4);
raise notice '1';
return 1;
end;
$$ language plpgsql;
6测试
注意:
存储过程的用法以及参数应该加注释
$$ language plpgsql和$$language sql是有区别的,$$ language plpgsql结尾的存储过程在使用$$ language sql结尾会出错。备注一下。
postgreSQL环境搭建的更多相关文章
- PHP+lghttpd + postgresql 环境搭建
PHP+lghttpd + postgresql 环境搭建 Linux 下PHP环境搭建 安装环境:PHP+lghttpd + postgresql 1:yum install lighttpd 红旗 ...
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- postgresql数据库异步流复制hot standby环境搭建
生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...
- Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置 ...
- Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
PostgreSQL 高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下 物理复制的搭建方法. 首先 ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- python服务器环境搭建(2)——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
- 阿里云ECS+CentOS 7.0+Docker+Redmine环境搭建
前言 搭建Redmine环境可以选择使用分别安装Ruby+Rails+Redmine+MySQL的方式, 但是过程中需要解决各种扰人的依赖问题.Docker为我们提供的Plan B,方便,快捷. 安装 ...
- python3环境搭建(uWSGI+django+nginx+python+MySQL)
1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...
随机推荐
- HTML5自学笔记[ 23 ]canvas绘图基础7
变换矩阵: transform(a,b,c,d,e,f),多次使用该函数,效果是多次状态改变的累加: setTransform(a,b,c,d,e,f),会忽略之前的变换,从起始状态开始改变.
- c# BackGroundWorker 多线程操作的小例子
在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示 ...
- cf------(round 2)A. Winner
A. Winner time limit per test 1 second memory limit per test 64 megabytes input standard input outpu ...
- 报错解决:No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
大概分析一般使用了注解才会报这方面的错 1.没有在spring的ApplicationContext.xml中开启注解事务 <!-- 开启注解事务 --> <tx:annotatio ...
- #ifdef __cplusplus extern "C"
#ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif首先,__cplusplus是cp ...
- Objective-C(面向对象的三大特性)
封装 set方法 作用:提供一个方法给外界设置成员变量值,可以在方法里面进行过滤 命名规范 1. 方法名必须以set开头 2. set后面跟上成员变量的名称,成员变量的首字母必须大写 3. 返回值一定 ...
- 421. Maximum XOR of Two Numbers in an Array——本质:利用trie数据结构查找
Given a non-empty array of numbers, a0, a1, a2, - , an-1, where 0 ≤ ai < 231. Find the maximum re ...
- 转:Nginx+Apache环境的安装与配置
转:http://www.server110.com/nginx/201404/8817.html 我们依然尽可能采用yum来安装我们需要的软件,由系统官方维护的软件,其安全性和稳定性都值得信赖,并且 ...
- BZOJ1593 [Usaco2008 Feb]Hotel 旅馆
裸上线段树,就是记的东西有点多... 每个点记区间左端最长0,右端最长0,中间最长0,和tag表示是否全为0/1 直接更新就好,查询的时候先查左儿子,然后查中间,最后查右儿子... /******** ...
- HtmlAgilityPack解析全国区号页面到XML
需求:完成一个城市和区号的xml配置文件 处理思路:通过HtmlAgilityPack解析一个区号页面,生产xml文件 页面:http://www.hljboli.gov.cn/html/code.h ...