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 ...
随机推荐
- 浅谈线程池(上):线程池的作用及CLR线程池
原文地址:http://blog.zhaojie.me/2009/07/thread-pool-1-the-goal-and-the-clr-thread-pool.html 线程池是一个重要的概念. ...
- [转载]JMeter源码导入Eclipse
转载自:http://www.cnblogs.com/taoSir/p/5144274.html 由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具 ...
- win8 卸载IIS
C:\Windows\System32\inetsrv C:\Windows\iis7.log C:\inetpub
- sleep函数
Linux下: #include <unistd.h> sleep(1); // 睡眠1秒 usleep(1); // 睡眠1微妙
- uva----(10794) A Different Task
A Different Task The (Three peg) Tower of Hanoi problem is a popular one in computer science. Bri ...
- 获取txt文件指定行内容
#!/usr/bin/python num=0; ni=open("C:\Python34\ceshi.txt") for line in ni: num=num+1; #表示行 ...
- SQL Server数据库(SQL Sever语言 事务)
事务:保障流程的完整执行保证程序某些程序在运行时同时成功同时失败,保证程序的安全性 begin tran --在流程开始的位置加 --此处写SQL语句 if @@error>0 --ERRORS ...
- Snappy压缩
Snappy压缩时,碰到不能解压问题,所用服务器Tomcat8.经验证,降低Tomcat版本为7,才可正常解压文件. 若碰到偶尔不能解压的问题,试着换个浏览器试试.
- [转]使用Java Mission Control进行内存分配分析
jdk7u40自带了一个非常好用的工具,就是Java Mission Control.JRockit Misson Control用户应该会对mission control的很多功能十分熟悉,JRoc ...
- formvalidator4.1.3 使用过程中一些问题的解决
在使用formvalidator4.1.3 插件时 发现 正常情况调用时没有问题的,但是我们的项目中需要把css .js 之类的静态资源用单独的域名加载. 那么问题就来了在 该插件中 有一段这样的 ...