最后介绍一种使用COPY为表装载大量数据的方法:
COPY weather FROM '/home/user/weather.txt'; --源文件的文件名必须是后端服务器可以访问的,因为后端服务器会直接读取文件 8.SELECT查询 //普通查询 SELECT * FROM weather; //支持AS别名 SELECT w.city AS 城市, w.temp_lo AS 最低气温, w.temp_hi AS 最高气温, w.prcp AS 降水量, w.date AS 日期 FROM weather; //支持WHERE条件查询 SELECT * FROM weather w WHERE w.city='ShangHai' and prcp>0.0; //支持排序 SELECT * FROM weather ORDER BY city,temp_lo; //支持去重 SELECT DISTINCT city FROM weather ORDER BY city;在一些数据库(包括老版本的PostgreSQL),都支持DISTINCT默认对查询结果排序,但是现阶段不保证结果排序,所以为了保证排序正确,最好使用ORDER BY关键字
9.UPDATE更新 //使用UPDATE语句来更改指定的表记录 UPDATE weather SET temp_lo=50, temp_hi=61 WHERE city='BeiJing'; 10.DELETE删除 //使用DELETE语句删除指定表记录 DELETE FROM weather WHERE id=1; DELETE FROM weather; --使用这种删除语句的时候必须格外小心,因为这会删除表中所有的记录 11.运算符运算符一般分为:
算数运算符
比较运算符
逻辑运算符
按位运算符
算数运算符 运算符 描述 实例+ 加 省略
- 减 省略
* 乘 省略
/ 除 省略
% 余 省略
^ 指数 2^3 = 8
|/ 平方根 |/25.0 = 5
||/ 立方根 ||/27.0 = 3
! 阶乘 5! = 120
!! 阶乘(前缀操作符) !!5 = 120
比较运算符 运算符 描述 实例
= 等于 省略
!= 不等于 省略
<> 不等于 省略
< 小于 省略
> 大于 省略
<= 小于等于 省略
>= 大于等于 省略
逻辑运算符 运算符 描述 实例
AND 且 省略
NOT 非 NOT EXISTS,NOT IN,NOT BETWEEN
OR 或 省略
按位运算符 运算符 描述 实例
& 按位与运算符 省略
| 按位或运算符 省略
# 按位异或运算符 省略
~ 取反运算符 省略
<< 二进制左移运算符 省略
>> 二进制右移运算符 省略
12.表达式 表达式是由一个或多个值、函数、运算符组成的。 //布尔表达式: SELECT * FROM weather WHERE id=1000; //数字表达式 SELECT sum(temp_lo,temp_hi) FROM weather WHERE id=20; //日期表达式 SELECT CURRENT_TIMESTAMP; 13.DISTINCT、WHERE、AND、OR、NOT NULL、LIKE、IN、NOT IN、BETWEEN、子查询、HAVING、ORDER BY、GROUP BY、LIMIT
懒得分开写了,反正也简单,直接写一起省事儿了~
//支持去重 SELECT DISTINCT city FROM weather ORDER BY city; //支持WHERE条件查询 SELECT * FROM weather w WHERE w.city='ShangHai'; //支持AND连接多个查询条件 SELECT * FROM weather w WHERE w.city='ShangHai' and prcp>0.0; //支持OR连接多个查询条件 SELECT * FROM weather w WHERE w.city='ShangHai' OR prcp>0.0; //支持NOT NULL判断条件 SELECT * FROM weather w WHERE date NOT NULL; //支持LIKE模糊查询 SELECT * FROM weather w WHERE city LIKE'%Hai'; //支持IN条件判断 SELECT * FROM weather w WHERE id in(1,2,3,4,5); //支持NOT IN条件判断 SELECT * FROM weather w WHERE id NOT IN(1,2,3,4,5); //支持BETWEEN AND区间筛选 SELECT * FROM weather w WHERE id BETWEEN 1 AND 10; //支持子查询 SELECT * FROM weather w WHERE w.city exists(SELECT * FROM cities c WHERE c.id exists(1,3,7,10)); //支持HAVING结果筛选 SELECT SUM(w.temp_hi) FROM weather w WHERE w.city exists(SELECT * FROM cities c WHERE c.id exists(1,3,7,10)) HAVING w.temp_hi>60; //支持ORDER BY排序 SELECT * FROM weather w ORDER BY w.id ASC; --默认ASC升序,DESC降序 //支持GROUP BY分组 SELECT city,SUM(temp_hi) FROM weather GROUP BY city; //支持LIMIT分页 SELECT * FROM weather LIMIT 0,5; 14.WITH子句 WITH子句可以将大型、复杂二点查询语句分解为诸多简单的查询语句; WITH子句中可以使用SELECT、UPDATE、INSERT、DELETE语句; WITH子句最大的优点,就是可以调用自身,从而实现递归。 WITH子句可以多次调用。 //创建一个名为getCities的WITH子句 WITH getCities AS( SELECT * FROM cities WHERE id=2; union all SELECT * FROM cities,getCities WHERE getCities .parent_id=cities.id; ) //使用getCities SELECT * FROM getCities ORDER BY id; //使用WITH和RETURNING关键字做被删数据备份 WITH backups AS( DELETE FROM weather WHERE id >100 RETURNING * --RETURNING关键字的作用:返回DML操作的数据(增、删、改操作) ) INSERT INTO weather1 VALUES(SELECT * FROM backups); 三.PostgreSQL高级 1.约束