PostgreSQL学习笔记

PostgreSQl学习笔记

此文章为蒟蒻我的学习笔记,仅供个人日后复习查看,对于想要学习PostgreSQL的新手来说,并没有很强的指导意义,谢谢。
而且大多数内容为B站小马视频的小马哥所做的笔记,再次感谢他!

一、Windows环境下PostgreSQL安装问题

1、PostgreSQL安装地址:下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads。

注意:在Windows10环境下安装PostgreSQL高版本时,可能会出现未知的错误(怀疑时系统路径有中文的缘故)。因此建议安装较低的版本,其稳定性也是比较不错的。

2、根据安装引导一步一步安装即可。
3、安装完查看是否有这两个工具:psql.exepgAdmin4.exe,如果有即安装成功!
注意:因为psql在程序内部默认的管理员是postgres,即我们设置的口令也是postgres的口令,但是spql在初次运行时,默认的管理员是win10的管理员,而这个用户在数据库中根本不存在,此时便会有口令错误,而登不进去的问题。
解决方法:将系统的环境变量里添加一个变量名PGUSER,值设定为postgres

二、常见的用法

(一)、常见命令

$ createdb komablog //创建数据库
$ psql -l //查看现有表单
$ psql komablog //选择数据库
> help
> \h
> \?
> \l
> \q
$ psql komablog
> select now();
> select version();
> \q
$ dropdb komablog
$ psql -l  

(二)、字段类型

1、数值型

(1)integer(int),整型
(2)real,浮点型。
(3)serial,序列型,加一。

2、文字型

(1)char

(2)varchar

(3)text

3、布尔型 :boolean
4、日期型

(1) date 年月日
(2)time 时分秒
(3)timestamp 年月日+时分秒

5、特色类型:

(1)Array ,数组型
(2)网络地址型(inet), ip地址型
(3)JSON型
(4)XML型,类似text型。

(三)、添加表约束

create table posts (
    id serial primary key,
    title varchar(255) not null,
    content text check(length(content) > 8),
    is_draft boolean default TRUE,
    is_del boolean default FALSE,
    created_date timestamp default 'now'
);
  • 约束条件:

not null:不能为空
unique:在所有数据中值必须唯一
check:字段设置条件
default:字段默认值
primary key(not null, unique):主键,不能为空,且不能重复

(四)、INSERT语句

  • insert into [tablename] (field, …) values (value, …)

(五) SELECT语句

1、知识点

  • select 基本使用

2、实战演习

init.sql

create table users (
    id serial primary key,
    player varchar(255) not null,
    score real,
    team varchar(255)
);

insert into users (player, score, team) values
('库里', 28.3, '勇士'),
('哈登', 30.2, '火箭'),
('阿杜', 25.6, '勇士'),
('阿詹', 27.8, '骑士'),
('神龟', 31.3, '雷霆'),
('白边', 19.8, '热火');

3、 SQL实战

> \i init.sql
> \dt
> \d users
> select * from users;  \\选择所有的字段
> \x  \\打开扩展
> select * from users;
> \x
> select * from users;
> select player, score from users; \\选择指定的字段

(六)、WHERE语句

1、 知识点

  • where语句的使用

使用where语句来设定select,update,delete语句数据抽出的条件。

2、实战演习

> select * from users;
> select * from users where score > 20;
> select * from users where score < 30;
> select * from users where score > 20 and score < 30;
> select * from users where team = '勇士';
> select * from users where team != '勇士';
> select * from users where player like '阿%';
> select * from users where player like '阿_';

(七)数据抽出选项

1、知识点

select语句在抽出数据时,可以对语句设置更多的选项,已得到想要的数据。

  • order by 排序
  • limit 取前几条
  • offset 偏移量

2、实战演习

> select * from users order by score asc; \\依据score升序排列
> select * from users order by score desc;
> select * from users order by team;
> select * from users order by team, score;
> select * from users order by team, score desc;
> select * from users order by team desc, score desc;
> select * from users order by score desc limit 3;
> select * from users order by score desc limit 3 offset 1;
> select * from users order by score desc limit 3 offset 2;
> select * from users order by score desc limit 3 offset 3;

(八)、统计抽出数据

1、知识点

  • distinct 过滤重复的数据
  • sum 数据求和
  • max/min 挑选最大值和最小值
  • group by/having 集合分组,计算

2、实战演习

> select distinct team from users;
> select sum(score) from users;
> select max(score) from users;
> select min(score) from users;
> select * from users where score = (select max(score) from users);
> select * from users where score = (select min(score) from users);
> select team, max(score) from users group by team;
> select team, max(score) from users group by team having max(score) >= 25;
> select team, max(score) from users group by team having max(score) >= 25 order by max(score);

(九)、一些方便的函数

1、 知识点

  • length 判断字符串长度的函数
  • concat 连接两个字符串
  • alias 起个别名
  • substring 切割字符串
  • random 随机函数,返回一个随机数

2、实战演习

> select player, length(player) from users;
> select player, concat(player, '/', team) from users;
> select player, concat(player, '/', team) as "球员信息" from users;
> select substring(team, 1, 1) as "球队首文字" from users; //从第一个字符开始切割一个
> select concat('我', substring(team, 1, 1)) as "球队首文字" from users;
> select random();
> select * from users order by random();
> select * from users order by random() limit 1;

(十)、更新和删除

1、知识点

  • update [table] set [field=newvalue,…] where …
  • delete from [table] where …

2、实战演习

> update users set score = 29.1 where player = '阿詹';
> update users set score = score + 1 where team = '勇士';
> update users set score = score + 100 where team IN ('勇士', '骑士');
> delete from users where score > 30;

(十一)、变更表结构

1、知识点

  • alter table [tablename] …
  • create index …
  • drop index …

2、实战演习

> \d users;
> alter table users add fullname varchar(255);
> \d users;
> alter table users drop fullname;
> \d users;
> alter table users rename player to nba_player;
> \d users;
> alter table users alter nba_player type varchar(100);
> \d users;
> create index nba_player_index on users(nba_player);
> \d users;
> drop index nba_player_index;
> \d users;

(十二)、操作多个表

1、知识点

  • 表结合查询的基础知识

2、实战演习

renew.sql

create table users (
    id serial primary key,
    player varchar(255) not null,
    score real,
    team varchar(255)
);
insert into users (player, score, team) values
('库里', 28.3, '勇士'),
('哈登', 30.2, '火箭'),
('阿杜', 25.6, '勇士'),
('阿詹', 27.8, '骑士'),
('神龟', 31.3, '雷霆'),
('白边', 19.8, '热火');

create table twitters (
    id serial primary key,
    user_id integer,
    content varchar(255) not null
);
insert into twitters (user_id, content) values
(1, '今天又是大胜,克莱打的真好!'),
(2, '今晚我得了60分,哈哈!'),
(3, '获胜咱不怕,缺谁谁尴尬.'),
(4, '明年我也可能转会西部'),
(5, '我都双20+了,怎么球队就是不胜呢?'),
(1, '明年听说有条大鱼要来,谁呀?');

3、SQL实战

$ dropdb komablog;
$ createdb komablog;
$ psql komablog;
> \i renew.sql
> select * from users;
> select * from twitters;
> select users.player, twitters.content from users, twitters where users.id = twitters.user_id;
> select u.player, t.content from users as u, twitters as t where u.id = t.user_id;
> select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;

(十三)、使用视图

1、视图概念

视图(View)是从一个或多个表导出的对象。视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

视图就是一个SELECT语句,把业务系统中常用的SELECT语句简化成一个类似于表的对象,便于简单读取和开发。

2、知识点

  • 使用数据库视图(view)
    • create view …
    • drop view …

3、实战演习

> select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;
> create view curry_twitters as select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;
> \dv
> \d curry_twitters
> select * from curry_twitters;
> drop view curry_twitters;
> \dv

(十四)、使用事务

1、事物概念

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

2、知识点

  • PostgreSql数据库事务使用
    • begin \\事物开始
    • commit \\事物完成
    • rollback \\数据回滚,回到更新前的状态

3、实战演习

> select * from users;
> begin;
> update users set score = 50 where player = '库里';
> update users set score = 60 where player = '哈登';
> commit;
> select * from users;
> begin;
> update users set score = 0 where player = '库里';
> update users set score = 0 where player = '哈登';
> rollback;
> select * from users;
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以和你分享一些关于 PostgreSQL学习笔记。 1. PostgreSQL 是什么? PostgreSQL 是一种开源的关系型数据库管理系统,它支持 SQL 语言和 ACID 事务处理,并且具有丰富的特性和扩展性,可用于大型企业应用、Web 应用和嵌入式应用。 2. PostgreSQL 的特点 PostgreSQL 具有以下特点: - 开源免费 - 支持 ACID 事务处理 - 支持 SQL 语言 - 支持复杂查询和数据类型 - 支持存储过程和触发器 - 可以扩展和定制 - 可以跨平台运行 3. PostgreSQL 的安装 在 Windows 平台下,可以从官网下载 Windows 安装程序进行安装。在 Linux 平台下,可以使用包管理器安装,例如 Ubuntu 可以使用以下命令进行安装: ``` sudo apt-get install postgresql ``` 4. PostgreSQL 的基本操作 创建数据库: ``` CREATE DATABASE databasename; ``` 创建表: ``` CREATE TABLE tablename ( column1 datatype, column2 datatype, column3 datatype, .... ); ``` 插入数据: ``` INSERT INTO tablename (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 查询数据: ``` SELECT column1, column2, ... FROM tablename WHERE condition; ``` 更新数据: ``` UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition; ``` 删除数据: ``` DELETE FROM tablename WHERE condition; ``` 5. PostgreSQL 的扩展 PostgreSQL 可以通过扩展来增强其功能,例如: - PostGIS:空间数据处理扩展 - PL/Python:Python 语言扩展 - pgAdmin:可视化管理工具 - pgpool-II:连接池和负载均衡工具 以上就是一些关于 PostgreSQL 的基本学习笔记,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值