1. 创建数据库:
  1)登录bin目录,createdb.exe -U postgres -e mydb;
  -U 表示本次操作的登录用户名,如果不写会取windows登录的账户,如Administrator;会提示无创建权限;

2. 登录数据库:
  1)用postgre自带的sql shell,登录时选择数据库为创建库

3. CRUD
  书写习惯:SQL语句大写,其他小写
  3.1)创建表:
    CREATE TABLE users( username char(20) PRIMARY KEY, password char(20));
  3.2) 插入数据:
    INSERT INTO users(username, password) VALUES('fredric','fredric'),('sinny','sinny');
  3.4) 查询数据:
    SELECT * FROM users;

    SELECT * FROM users WHERE username LIKE ’fred%‘;//模糊查找
  3.5) 删除数据:

    DELETE FROM users WHERE username = "fredric";

  3.6) 更新数据:

    UPDATE emps SET salary = 8000.0 WHERE userid = 10;

4. JOIN
  准备:
  CREATE TABLE clubs(clubname char(20) PRIMARY KEY, note text);
  CREATE TABLE customers( username char(20) PRIMARY KEY, clubname char(20),FOREIGN KEY(clubname) REFERENCES clubs(clubname));

  INSERT INTO clubs(clubname, note) VALUES('myclub','good clubs');
  INSERT INTO clubs(clubname, note) VALUES('myclub1','good clubs');
  INSERT INTO customers(username, clubname) VALUES('fredric', 'myclub');

  4.1) INNER JOIN
    SELECT * FROM clubs INNER JOIN customers ON clubs.clubname = customers.clubname;
    返回数据 myclub
  4.2) OUTTER JOIN(例如 LEFT JOIN)
    SELECT * FROM clubs LEFT JOIN customers ON clubs.clubname = customers.clubname;
  返回数据 myclub 和 myclub1

5. 索引
  5.1) 创建索引
    CREATE INDEX clubs_index ON clubs USING hash(clubname);
    CREATE INDEX clubs_index ON clubs USING btree(clubname);//B树类型的索引支持多字段
    CREATE UNIQUE INDEX clubs_index ON clubs;//唯一索引,postgre默认在主键上生成唯一索引
  5.2) 删除索引
    DROP INDEX clubs_index;

6. 聚合函数
  6.1) COUNT
    SELECT COUNT(*) FROM clubs;
  6.2) MIN/MAX
    SELECT MIN(clubname) FROM clubs; //输出myclub
    SELECT MAX(clubname) FROM clubs; //输出myclub1

7. GROUP BY
  SELECT * FROM clubs GROUP By(clubname);
  SELECT COUNT(*) FROM clubs GROUP By(note);//1,2
  SELECT COUNT(*) FROM clubs GROUP By(note) HAVING COUNT(*) > 1;//2
  备注:SQL执行顺序 FROM -> WHERE -> 聚合函数-> GROUP BY -> HAVING -> ORDER BY -> SELECT;

8. 事务
  BEGIN TRANSACTION;
  DELETE FROM customers WHERE clubname = 'myclub';
  DELETE FROM clubs WHERE clubname = 'myclub';
  COMMIT; //执行删除
  ROLLBACK; //回滚操作

  SAVEPOINT;为保存点,回滚的位置
  例如:
    SAVEPOINT mypoint;
    ROLLBACK TO mypoint;

PostgreSQL基础整理(一)的更多相关文章

  1. PostgreSQL基础整理(三)

    1.触发器 有更新操作时记录一条日志 DROP FUNCTION IF EXIST log_test(); CREATE OR REPLACE FUNCTION log_test() RETURNS ...

  2. PostgreSQL基础整理(二)

    存储过程 实现功能:针对工资表30岁以下,工资提升10% 30至40提升20% 40以上提升30% + 奖金(入参)返回平均薪酬 创建表: DROP TABLE emps; CREATE TABLE ...

  3. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  4. MySQL基础整理(一)之SQL基础(未完成)

    大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...

  5. nutch的一些基础整理

    nutch的一些基础整理 原创 2015年03月22日 18:18:01 标签: nutch / 240 编辑 删除 一.关于配置文件: nutch-default.xml:爬虫的默认配置.在${nu ...

  6. [转帖]nginx基础整理

    nginx基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...

  7. JAVA基础整理-集合篇(一)

    集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...

  8. 关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)

    JAVA的基础语法等都跟C有很大的相似之处,所以这里就不多啰嗦了.直接从数组开始. 数组: 1.声明 int [] a; 在声明的过程中,并没有分配空间给数组.我们可以在声明的同时,用new来分配相应 ...

  9. C#基础整理

    元旦整理书架发现一本小册子——<C#精髓>中国出版社2001年出版的,粗略翻了下关于C#的知识点挺全的虽然内容谈得很浅也有很多过时的内容(话说这本书是我在旧书店花5块钱淘的)我保留原有章节 ...

随机推荐

  1. javascript eval和JSON之间的联系

    原出处:http://www.jb51.net/article/21688.htm eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串 ...

  2. cookie,session原理,以及如何使用chrome查看。

    首先,先补充下chrome浏览器的使用. 1.1.php源码: <?php $cookieDomain = '.elf.com'; setcookie(, '/', $cookieDomain) ...

  3. 禁止VMware虚拟机与Host的时间同步

    禁止VMware虚拟机与Host的时间同步 1. 查看虚拟机是否安装了 VMware Tools, 如果有安装,则将 VMware Tools 属性窗口的“选项”-->“其他选项”中“虚拟机与宿 ...

  4. 在 iTunes content中创建新的版本时,出现构建版本后面没有加号。

    老项目升级时,提交版本时,ipa已经上传成功到APP store,但是构建版本后面一直都没有加号,等了一夜还是没有反应 后来苹果发来一封邮件,意思是,我需要在plist文件中添加一个NSMicroph ...

  5. ES6中的var let const应如何选择

    javascript世界里面的每个人都在说有关ECMAScript 6 (ES6,也称作ES 2015)的话题,对象的巨大变化 ( 类 , super() , 等), 函数 (默认参数等), 以及模块 ...

  6. html5表单验证

    表单验证为终端用户检测无效的数据并标记这些错误,是一种用户体验的优化. 下面展现浏览器自带的验证功能也可在移动端中查看: HTML部分: <!DOCTYPE html> <html ...

  7. python 跨模块实现按照文件大小,日期实现日志分割,反转

    笔者的一个自动化测试平台项目,采用了python作为后端服务器语言.项目基于快速成型目的,写了一个极其简陋的日志记录功能,支持日志记录到文件和支持根据日志级别在终端打印不同颜色的log.但随着测试平台 ...

  8. 关于js单页面实现跳转原理以及利用angularjs框架路由实现单页面跳转

    还记得我们刚开始学习html时使用的锚节点实现跳转吗? <a href="#target">我想跳转至目标位置</a> <p>第一条</p ...

  9. 关于json解析中 解析多重json对象

    JSONObject rst = {"AIS-RST":"AIS-00000001","AIS-STATUS":"AIS-0000 ...

  10. Java LinkedList 源码剖析

    LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack).这样看来,LinkedList简直就 ...