PostgreSQL基础整理(一)

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;
  3.5) 删除数据:

    DELETE FROM users WHERE username = "fredric";

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;

时间: 2024-09-30 00:40:47

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

PostgreSQL基础整理(二)

存储过程 实现功能:针对工资表30岁以下,工资提升10% 30至40提升20% 40以上提升30% + 奖金(入参)返回平均薪酬 创建表: DROP TABLE emps; CREATE TABLE emps(userid int PRIMARY KEY, age int, salary numeric ); INSERT INTO emps VALUES(10, 25, 1000.0),(11, 26, 1500.0),(12, 27, 1300.0),(13, 35, 3000.0), (1

PostgreSQL基础整理(三)

1.触发器 有更新操作时记录一条日志 DROP FUNCTION IF EXIST log_test(); CREATE OR REPLACE FUNCTION log_test() RETURNS trigger AS $$ DECLARE BEGIN RAISE NOTICE 'TRIGGER LOG TEST'; RETURN NULL; END; $$ LANGUAGE plpgsql; CREATE TRIGGER log_trigger AFTER UPDATE on emps FO

HTML基础整理(一)

HTLM基础整理--思维导图(标签部分) 其他: <sub>下标</sub>     <sup>上标</sup> 优先级,越往后优先级越高. "right"(右对齐)               "top" (顶部) 对齐方式<tr align="center"(居中) valign="middle"(居中) "left"(左对齐)          

linux基础整理0316

一.linux基础整理 由于这是学习linux的第一周,整理的东西很杂很分散,其中包括了查看虚拟机的各种信息,命令相关的只整理了alias.date.history.cal.帮助会话screen等命令的使用,最后加上了两个常见问题处理办法:在以后的学习中会不断完善文中整理的相关内容. 1.查看系统信息类命令: 查看内核版本 [root@CentOS7 ~]#uname -r 3.10.0-957.el7.x86_64 查看系统版本 查看配置文件 [root@CentOS7 ~]#cat /etc

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

本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 (一)线性判别函数与广义线性判别函数 一.线性判别函数 这篇总结继续关注分类问题.假设判别函数(Discriminant function)的参数形式已知,用训练的方法直接根据样本估计判别函数的参数.线性判别函数的形式为: $$g(\textbf x)=\textbf w^{\top}\textbf x+w_0$$ $\textbf x\in \mathbb R^d$ 是

C#基础整理

元旦整理书架发现一本小册子--<C#精髓>中国出版社2001年出版的,粗略翻了下关于C#的知识点挺全的虽然内容谈得很浅也有很多过时的内容(话说这本书是我在旧书店花5块钱淘的)我保留原有章节并删减部分过时和不重要内容添加一些自己觉得重要的内容,具体目录如下: 第一章   简介    什么是.NET.CLI.CLR.CIL.IL.BCL?    什么是JIT和GC,JIT和GC是如何工作的?   第二章 C#语言参考   标识符.类型.变量.表达式与运算符.语句.类型组织.继承.访问修饰符.类和结

python基础整理----基本概念和知识

整理一下python的基本概念和知识, 主要用python3为语法标准. python介绍 一种面向对象的解释性计算机设计语言,具有丰富和强大的库. python定位:"优雅"."明确"."简单" 多种应用场景:可以写工具,后台服务,移动端等等. 运行环境搭建 下载对应版本的Python安装,官网地址如下 https://www.python.org/ 运行get-pip.py安装pip (Py3自带pip) https://bootstrap.

linux基础整理4

IP地址配置 1.setup工具 vi /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yes service network restart 2.修改虚拟机连接方式为桥接 3.编辑-虚拟网络编辑器-vmnet0--桥接到有线网卡 4.UUID错误(针对复制镜像生效) vi/etc/sysconfig/network-scripts/ifcfg-eth0         删除MAC地址行 rm –rf/etc/udev/rules.d/70-pe

MySQL技术分类一:DB应用开发基础整理

MySQL技术分类整理一:DB应用开发基础1.库1).创建库syntax:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name    [create_specification] ... create_specification:    [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name 注:如果不使用if not exists,则当数据库