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 ...
随机推荐
- Android Studio Gradle构建脚本
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 构建工具就是对你的项目进行 ...
- is(C# 参考)
检查对象是否与给定类型兼容. 例如,下面的代码可以确定对象是否为 MyObject 类型的一个实例,或者对象是否为从 MyObject 派生的一个类型: if (obj is MyObject ...
- js数据类型和关系运算语法
var box=; alert(typeof box); //box是Undefined类型,值是undefined,类型返回的字符串是undefined var box=true; alert(ty ...
- Mongoose学习参考文档
一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entit ...
- HTML5自学笔记[ 6 ]data自定义数据
在标签中添加data-name属性并赋值,在js脚本中用ele.dataset.name就可以获取该属性的值.如: <div id="box" data-age=" ...
- 231. Power of Two 342. Power of Four -- 判断是否为2、4的整数次幂
231. Power of Two Given an integer, write a function to determine if it is a power of two. class Sol ...
- XML中的非法字符转化成实体
问题 如果XML有非法字符比如 "·",或者HTML标签<br/>.XML在解析的过程中就会出错.就无法正常解析,或者把xml反射成实体. 有些字符,像(<)这类 ...
- struts2视频学习笔记 03-06(Struts 2配置文件无提示问题,Action配置中的各项默认值,各种转发类型)
课时3 解决Struts 2配置文件无提示问题(eclipse):window→preference→XML→XML Catlog
- 支持新版chrome,用webstorm编译形成css和sourcemap,调试sass和less源文件(转)
旧版的chrome有个support for sass,但是新版chrome没有这个功能了.看到网上提供的方法比较多,也很乱,旧版新版的都有.而且不能指定自己所需要的路径. 所以就做了下改版. sas ...
- linux copy
cp -ri 131115-6/* /web/www/attachment/ 把13这个文件夹下面所有的文件和文件夹复制到 /web/www/attachment cp -a a /web/ww ...