- [日期与时间类型](#_83)
- [字符串类型](#_88)
+ [DDL](#DDL_94)
+ - [CREATE](#CREATE_95)
- [DROP](#DROP_108)
- [ALTER](#ALTER_120)
+ [DML](#DML_126)
+ - [INSERT](#INSERT_127)
- [UPDATE](#UPDATE_144)
- [DELETE](#DELETE_149)
PostgreSQL介绍与安装
docker安装
下载镜像:
docker pull postgre
启动容器:
docker run -d --name postgres --restart always -e POSTGRES\_PASSWORD='admin' -e POSTGRES\_USER='admin' -e ALLOW\_IP\_RANGE=0.0.0.0/0 -v /data/postgres/data:/var/lib/postgresql -p 5432:5432 -d postgres
腾讯云免费领用1个月
学习中心-免费领取一个月
博主这里选择了白嫖~~~
数据库操作
连接数据库实例
windows下使用pgAdmin
linux下使用psql
psql -U 用户名 -h 访问地址 -p 端口 -d postgres
腾讯云提供了网页版的连接方式,博主直接使用这个,免得安装其他的了。
创建数据库
语法:
create database database_name;
示例:
create database lady_killer9;
查看数据库列表
使用数据库
使用数据库语法
psql 数据库名
例如:
psql lady_killer9
腾讯云上,点一下就可以了。
退出当前数据库
\q
删除数据库
语法:
drop database database_name;
示例:
drop database lady_killer9;
修改数据库属性
语法:
alter database database_name xxx;
示例:
表操作
字段类型
整数
- SMALLINT
- INT(INTEGER)
浮点数
- REAL: 6位10进制数字精度
- NUMERIC(m,n):任意精度类型,m代表长度(含精度部分),n代表精度,四舍五入
例如,NUMERIC(3,2) 可以保存 3.11,但是100.00就会报错,3.126可以,但会保存位3.13
日期与时间类型
- TIME: 时间,例如:16:24:05
- DATE:日期,例如:2023-12-02
- TIMESTAMP:日期和时间,例如:2023-12-02 16:24:05
字符串类型
- CHAR(n):固定长度字符串,不足补空白
- VARCHAAR:变长字符串,有长度限制
- TEXT:可以认为无长度限制
DDL
CREATE
CREATE TABLE weather (
city varchar(80),
temp_lo int, -- low temperature
temp_hi int, -- high temperature
prcp real, -- precipitation
date date
);
DROP
语法:
DROP TABLE tablename;
示例:
DROP TABLE weather;
ALTER
ALTER TABLE weather RENAME to weather2;
DML
INSERT
插入数据
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
通过逗号分隔values后面的数据元组,可以批量插入。除此之外,可以从已有表进行
INSERT INTO weather2 SELECT \* from weather;
也可以使用COPY命令进行本地文件读取,然后写入表格。
COPY weather FROM '/home/user/weather.txt';
当然,这里也引入了安全问题。
UPDATE
UPDATE weather SET temp_lo = 10 WHERE temp_hi = 50;
DELETE
DELETE FROM weather WHERE city = 'Hayward';
查询
查询所有数据
SELECT \* FROM weather;
查询部分列
SELECT temp_lo,temp_hi FROM weather;
指定条件查询
SELECT \* FROM weather WHERE city = 'San Francisco' AND prcp > 0.0;
查询结果排序
SELECT \* FROM weather order by temp_lo;
分页查询
与
M
Y
S
Q
L
的
L
I
M
I
T
m
,
n
语法不同,
p
o
s
t
g
r
e
s
q
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!