上面为表结构 下面则为 相关函数写法  写这些主要是为了学习下与Oracle的区别
SELECT * FROM STUDENT CROSS JOIN TEACHER;--交叉连接
SELECT * FROM STUDENT S INNER JOIN TEACHER T ON S.TEACHER_ID=T.ID;--内连接
SELECT * FROM STUDENT S LEFT OUTER JOIN TEACHER T ON S.TEACHER_ID=T.ID;--左外连接
SELECT * FROM STUDENT S RIGHT OUTER JOIN TEACHER T ON S.TEACHER_ID=T.ID;--右外连接
SELECT * FROM STUDENT S FULL OUTER JOIN TEACHER T ON S.TEACHER_ID=T.ID;--全外连接

--视图
CREATE VIEW tea_stu_view ASSELECT s.id,s.name,t.tea_name FROM STUDENT S INNER JOIN TEACHER T ON S.TEACHER_ID=T.ID;
--视图调用
SELECT * FROM tea_stu_view;

--存储过程
CREATE OR REPLACE FUNCTION this_is_function(table_name text,column_name text) RETURNS INTEGER AS $maxId$declaremysql text;myID integer;beginmysql:='select max('|| quote_ident(column_name) || ')from '|| quote_ident(table_name);execute mysql into myID;if myID is null or myID=0 then return 1;else return myID+1;end if;end;
$maxId$ language plpgsql;
--执行存储过程
select this_is_function('teacher','id');

--触发器调用函数
CREATE OR REPLACE FUNCTION trigger_fun() RETURNS TRIGGER as $trigger_fun$declaremyID integer;mysql text;beginmysql:='select max(id)+1 from teacher ';execute mysql into myID;if tg_op='INSERT' thenINSERT INTO public.teacher(id,tea_name) values (myID,'红老师');end if;return null;end;
$trigger_fun$ language plpgsql;
--创建触发器
CREATE TRIGGER trigger_fun AFTER INSERT ON student for each row execute procedure trigger_fun();
--触发器触动方式
insert into public.student(id,name,sex,teacher_id) values (6,'小三','男','3');

--创建序列
create sequence test_seq increment by 1 minvalue 1 no maxvalue start with 1;
select nextval('test_seq'); --序列调用--建索引
CREATE INDEX student_index  ON student(teacher_id);


转载于:https://www.cnblogs.com/flatwang/p/10083052.html

记录postgresql的学习相关推荐

  1. 记录自己的学习和经验

    从今天开始,正式开通博客,记录自己的学习知识和经验. 下面是一些个人心得. http://www.imooc.com/article/4637 转载于:https://www.cnblogs.com/ ...

  2. android培训内容明细,记录Android开发学习

    记录Android开发学习 Menu菜单学习 1.掌握Android中菜单的创建. 2.掌握Intent信使组件. 创建菜单Menu 我们模仿微信菜单栏学习,创建一个于微信菜单栏相似的菜单 那么我们应 ...

  3. 从今天起,每天写一篇日志,记录我的学习!

    从今天起,每天写一篇日志,记录我的学习! 也许当多年后,后给我很多回忆吧!

  4. 记录一次学习通接口分析

    记录一次学习通接口分析 所需用到的工具 登录接口的分析 总结 课程页面的分析 总结 课程章节的内容分析 总结 观看视频分析 获取jobid.objectId和otherInfo的值: 获取durati ...

  5. 记录一下自己学习网络安全的过程

    记录一下自己学习网络安全的过程 从八月份决定学习一下网络安全,完全从零开始,在这里记录一下,当作是学习笔记,也当作是过程记录,希望自己坚持下去

  6. 各类学习平台收集记录(强化学习、深度学习、机器学习)

    各类学习平台收集记录(强化学习.深度学习.机器学习) 1.百度开发者中心  https://developer.baidu.com/?from=aistudio 有很多开源项目代码可以借鉴学习. 2. ...

  7. 记录一下在学习HAL库时感觉必须要知道的基础知识

    这篇博客主要是来记录一下在学习HAL库时感觉必须要知道的基础知识 提示:本文会时不时更新 文章目录 1.HAL库中的中断回调函数是什么? 2.推挽输出 1.HAL库中的中断回调函数是什么? 答:首先, ...

  8. 记录从零学习LaTeX的点滴

    LaTeX小白的日常 本文不定时更新,以记录我在学习使用LaTeX来记笔记.写论文时遇到的诸多困难与思考 意在为自己和像我一样完全没有计算机基础的萌新提供一个交流的平台 在遇到问题时,我会优先求助于一 ...

  9. 记录一下,学习express的小成就

    终于搞出来了mongoose 和express 前后端链接的部分. 主要目的是为了使用markdown转换网页. 项目随便写的.没有参考价值,在此只是为了做个记录.作为学习的一个里程碑.对于nodej ...

  10. 3节点Fate集群实战记录 -- 纵向联邦学习

    前一篇博客记录了3节点fate集群实现横向联邦学习的实践过程link,本篇接着记录纵向联邦学习的实践过程,其中有些简单步骤未详细列出,具体执行方法可以参考上篇博客. 纵向联邦的场景简单说就是A和B两数 ...

最新文章

  1. R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、ggrepel包来帮忙
  2. Android EditText+ListPopupWindow实现可编辑的下拉列表
  3. CentOS 6.0 VNC远程桌面配置
  4. 看固态存储厂商在硝烟四起的市场中如何发展?
  5. 【MySQL经典案例分析】 Waiting for table metadata lock
  6. 七个C#编程的小技巧
  7. 推荐:.Net 5开源免费的内容管理系统
  8. 世界杯29场点球大战的269个点球数据都在这里!霍金的公式帮了英格兰吗?
  9. 苹果正为iPhone 12开发磁性电池组 可为手机无线充电
  10. 孩子有心理问题不愿意做心理咨询,父母该怎么办?
  11. ssas如何创建分区_Analysis Services(SSAS)多维设计技巧–创建尺寸
  12. linux下简单time machine实现,可选择快速备份恢复脚本
  13. 读《未来世界的幸存者》 -- 阮一峰
  14. 聊聊生活中的一些仪式感
  15. win10您的windows许可证即将过期
  16. 在线的棋牌类网络游戏java服务端实现
  17. 怎么关闭服务器系统自动更新,自动更新怎么关闭 如何关闭window自动更新提高运行速度...
  18. nginx -rtmp多码率,动态码率二级m3u8适应
  19. 北大AI公开课第六课--自动驾驶与人工智能by百度陈竞凯
  20. Mysql语句编写循环

热门文章

  1. C++里面的LPBYTE是什么意思
  2. 美男子第一次的JAVA博客
  3. Java常量不能二次赋值与常量不能修改值意思一样吗?
  4. 关键词词云怎么做_网友问:做独立站,怎么做关键词排名,怎么做客户流量?...
  5. python浮点数转科学计数_python – 将float转换为字符串没有科学记数法和假精度...
  6. go项目新增一个代码文件
  7. DevOps使用教程 华为云(5)迭代计划 进度管理
  8. thinkphp 每个页面自定义加载对应指定的js、css
  9. android游戏boss坐标,混沌与秩序2已知boss刷新点分布图详解(已更新到20号boss)...
  10. c/c++编译的程序占用的内存分配