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;
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基础整理(一)的更多相关文章
- PostgreSQL基础整理(三)
1.触发器 有更新操作时记录一条日志 DROP FUNCTION IF EXIST log_test(); CREATE OR REPLACE FUNCTION log_test() RETURNS ...
- PostgreSQL基础整理(二)
存储过程 实现功能:针对工资表30岁以下,工资提升10% 30至40提升20% 40以上提升30% + 奖金(入参)返回平均薪酬 创建表: DROP TABLE emps; CREATE TABLE ...
- 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法
这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...
- MySQL基础整理(一)之SQL基础(未完成)
大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...
- nutch的一些基础整理
nutch的一些基础整理 原创 2015年03月22日 18:18:01 标签: nutch / 240 编辑 删除 一.关于配置文件: nutch-default.xml:爬虫的默认配置.在${nu ...
- [转帖]nginx基础整理
nginx基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...
- JAVA基础整理-集合篇(一)
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...
- 关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)
JAVA的基础语法等都跟C有很大的相似之处,所以这里就不多啰嗦了.直接从数组开始. 数组: 1.声明 int [] a; 在声明的过程中,并没有分配空间给数组.我们可以在声明的同时,用new来分配相应 ...
- C#基础整理
元旦整理书架发现一本小册子——<C#精髓>中国出版社2001年出版的,粗略翻了下关于C#的知识点挺全的虽然内容谈得很浅也有很多过时的内容(话说这本书是我在旧书店花5块钱淘的)我保留原有章节 ...
随机推荐
- bootstrap表格内容跑到表格外面的处理办法
http://stackoverflow.com/questions/21587813/bootstrap-responsive-table-content-wrapping td写下这个样式即可.& ...
- 使用 hexdump dump 文件内容
名词解释 [dump] dump 是指把文件的内容,每个字节用2位十六进制数来表示的方式. 缘由 最近看矢泽久雄的<How Program Works>,了解到 dump “exe文件”( ...
- Bash Shell字符串操作
转自:http://my.oschina.net/aiguozhe/blog/41557,并对内容作了验证修改. 1. 取长度 str="abcd" 2.查找子串的位置 貌似也只有 ...
- Linux进程管理、任务管理
查看进程 Linux中的进程可以使用ps.pstree命令查看. 一般使用 ps aux (注意,没有短划线-:虽然加上不影响执行,只是会提示),还可以使用 ps -le,都是查看所有进程,区别在于显 ...
- Spring 4 官方文档学习 Spring与Java EE技术的集成
本部分覆盖了以下内容: Chapter 28, Remoting and web services using Spring -- 使用Spring进行远程和web服务 Chapter 29, Ent ...
- 为什么不能访问django自带的索引页
通过HTTP://192.168.160.128:8000访问虚拟机上的django索引页出现“ 无法访问此网站 192.168.160.128 拒绝了我们的连接请求. ” 是什么原因呢?费了好大一番 ...
- react-router配合webpack实现按需加载
很久没有写博客了.一直感觉没有什么要写的,但是这个东西确实有必要的.使用react开发,不可能一直打包到一个文件.小项目肯定没有问题,但是变大一旦到几兆,这个问题就很严重.现在又Commonjs,AM ...
- UWP的拖拽功能
简单的拖拽实现: <Grid x:Name="G1" AllowDrop="True" DragEnter="G1_DragEnter" ...
- c#下调用dll动态链接库[转]
C# 调用传统的 API 动态链接库,是.NET开发经常被讨论的问题. 比如有这么一个动态链接库(delphi 语言): library DelphiDLL; uses SysUtils, Class ...
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17045157 在前面一篇文章中,我带着大家一起从源码的层面上分析了视图的绘制流程, ...