数据类型(常用版本)
数值类型
| smallint | 2 字节 | 小范围整数 | -32768 到 +32767 |
|---|
| integer | 4 字节 | 常用的整数 | -2147483648 到 +2147483647 |
|---|
| numeric | 可变长 | 用户指定的精度,精确 | 小数点前 131072 位;小数点后 16383 位 |
|---|
numeric(m,n) m是位数,不包括小数点。n是小数点后精确多少位。如果小数点后的位数超标。则自动四舍五入。造成精确度损失。
| real | 4 字节 | 可变精度,不精确 | 6 位十进制数字精度 |
|---|
时间类型
time 一天之内的时间 10:05:05
date 日期 1895-05-21
timestamp 日期和时间 1895-05-21 10:05:05
字符串类型
char(n) 固定长度字符串,不足使用空白补全
varchar(n) 变长字符串,有长度限制
text 变长字符串 无长度限制
运算符介绍
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | a + b 结果为 5 |
| - | 减 | a - b 结果为 -1 |
| * | 乘 | a * b 结果为 6 |
| / | 除 | b / a 结果为 1 |
| % | 模(取余) | b % a 结果为 1 |
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 等于 | (a = b) 为 false。 |
| != | 不等于 | (a != b) 为 true。 |
| <> | 不等于 | (a <> b) 为 true。 |
| 大于 | (a > b) 为 false。 | |
| < | 小于 | (a < b) 为 true。 |
| >= | 大于等于 | (a >= b) 为 false。 |
| <= | 小于等于 | (a <= b) 为 true。 |
between 1 and 3 这个是闭区间属性。可以为1和3。
1 in(2,4,1) in是判断是否在此集合中的。
like '%a' like "a" link进行模糊查询的。%代表多个字符,_代表一个字符。
| 序号 | 运算符 & 描述 |
|---|---|
| 1 | AND逻辑与运算符。如果两个操作数都非零,则条件为真。PostgresSQL 中的 WHERE 语句可以用 AND 包含多个过滤条件。 |
| 2 | NOT逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。PostgresSQL 有 NOT EXISTS, NOT BETWEEN, NOT IN 等运算符。 |
| 3 | OR逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。PostgresSQL 中的 WHERE 语句可以用 OR 包含多个过滤条件。 |
常用函数
PostgreSQL函数也称为PostgreSQL存储过程。
- COUNT 函数:用于计算数据库表中的行数。
- MAX 函数:用于查询某一特定列中最大值。
- MIN 函数:用于查询某一特定列中最小值。
- AVG 函数:用于计算某一特定列中平均值。
- SUM 函数:用于计算数字列所有值的总和。
- length 函数:用于计算字符的长度
- concat 函数:用于合并字符串。
- SELECT EXTRACT(YEAR FROM INTIME) FROM RK 从INTIME字段中提取年份
- SELECT EXTRACT(MONTH FROM INTIME) FROM RK 从INTIME字段中提取月份
- SELECT EXTRACT(DAY FROM INTIME) FROM RK 从INTIME字段中提取日
自定义函数
create or replace function test(varchar, varchar) returns varchar
as 'select $1||$2;'
language sql;
说明
create or replace function 创建或覆盖
test 函数名称
(varchar, varchar)参数数量和类型
returns varchar 返回类型
2 $1表示第一个参数 ||是拼接的意思
language sql; 创建语言是sql
调用
select test('ss','bb');
删除函数 drop function test(varchar, varchar);
索引
提高搜索效率。如同给一本书建立一个目录
分类
PostgreSQL中有几种索引类型,如B-tree,Hash,GiST,SP-GiST和GIN等。每种索引类型根据不同的查询使用不同的算法。 默认情况下,CREATE INDEX命令使用B树索引。
创建索引
create index id_index on test_user(id);
//根据test_user表的id字段,创建一个叫id_index的索引
id_index索引名称 test_user 表名称 id 字段
删除索引
drop index id_index;
//删除叫做id_index的索引
视图
在PostgreSQL中,视图(VIEW)是一个伪表。 它不是物理表,而是作为普通表选择查询。
视图也可以表示连接的表。 它可以包含表的所有行或来自一个或多个表的所选行。
视图便于用户执行以下操作:
- 它以自然和直观的方式构建数据,并使其易于查找。
- 它限制对数据的访问,使得用户只能看到有限的数据而不是完整的数据。
- 它归总来自各种表中的数据以生成报告。
创建视图
create view test_user_viem as select id,age from test_user
//创建一个叫做test_user_viem的视图
as后面执行的是形成视图内容的结果集合
删除视图
drop view test_user_viem;
//删除一个叫做test_user_viem的视图
视图作用
简单化:避免重复编写复杂sql 安全性:可以屏蔽敏感字段信息
数据库增删查改
简单插入
insert into test_user (age,money,score) values
(10,100.255,8558556.235648558525)
批量插入
insert into test_user (age,money,score) values
(10,100.255,8558556.235648558525),
(10,100.255,8558556.235648558525),
(10,100.255,8558556.235648558525);
更新操作
update test_user set age=58 where id=1;
删除操作
delete from test_user where id=1;
简单条件单表查询
select *from test_user where id=2;
条件可以是> < != between and in() like
复杂条件单表查询
is null 空值查询 is not null fei空值查询
通过and 和 or进行多条件的查询
select *from test_user order by score desc nulls first ;
nulls first 排序的时候,null值在前。
limit 限制查询数量 offset
offset 忽略前几条
多表连接查询
直接使用where是隐式内连接查询 inner join on 是显式内连接查询
缺陷:如果有的员工没有确定部门。那么这些特殊的员工信息不会被查出来。
左连接查询
右连接查询和左连接查询相似
子查询
select 嵌套的查询
exists关键字
exists后面的查询如果查出结果,前面的查询才会执行。
in关键字
查询结果集合并
每条查询的字段数量保存一致,如果缺少可以使用null代替。