PostgreSQL 教程
## PostgreSQL 教程
### 1. PostgreSQL 概述
PostgreSQL 是一个开源的对象关系型数据库管理系统(ORDBMS),以其高扩展性和合规性闻名,支持 SQL 和 JSON 查询。
### 2. 安装与配置
- **下载与安装**:从 PostgreSQL 官方网站下载并安装 PostgreSQL。可以选择不同的平台和版本。
- **初始化数据库**:安装后使用 `initdb` 命令初始化数据库集群。
- **启动服务**:使用 `pg_ctl` 或系统服务管理器启动 PostgreSQL 服务。
### 3. 基本概念
- **数据库**:包含多个表、视图、函数等对象的集合。
- **表**:存储结构化数据的基本单位,由行和列组成。
- **模式(Schema)**:数据库中的命名空间,用于组织数据库对象。
- **视图**:基于表的虚拟表,不存储数据,仅存储查询逻辑。
- **函数**:可重复使用的 SQL 代码块,执行特定任务。
### 4. 基本操作
- **连接数据库**:
```sh
psql -h localhost -U username -d databasename
```
- **创建数据库**:
```sql
CREATE DATABASE mydatabase;
```
- **创建表**:
```sql
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
birth_date DATE
);
```
- **插入数据**:
```sql
INSERT INTO employees (first_name, last_name, birth_date)
VALUES ('John', 'Doe', '1980-01-01');
```
- **查询数据**:
```sql
SELECT * FROM employees;
```
- **更新数据**:
```sql
UPDATE employees
SET first_name = 'Jane'
WHERE employee_id = 1;
```
- **删除数据**:
```sql
DELETE FROM employees
WHERE employee_id = 1;
```
### 5. 常用函数
- **聚合函数**:`SUM()`, `AVG()`, `COUNT()`, `MAX()`, `MIN()`
```sql
SELECT COUNT(*) FROM employees;
```
- **字符串函数**:`LENGTH()`, `SUBSTRING()`, `REPLACE()`
```sql
SELECT LENGTH(first_name) FROM employees;
```
- **日期函数**:`CURRENT_DATE`, `AGE()`, `DATE_PART()`
```sql
SELECT CURRENT_DATE;
```
### 6. 索引
- **创建索引**:提高查询性能
```sql
CREATE INDEX idx_last_name ON employees (last_name);
```
- **删除索引**:
```sql
DROP INDEX idx_last_name;
```
### 7. 视图
- **创建视图**:
```sql
CREATE VIEW employee_names AS
SELECT first_name, last_name FROM employees;
```
- **查询视图**:
```sql
SELECT * FROM employee_names;
```
### 8. 函数
- **创建函数**:
```sql
CREATE FUNCTION get_employee_by_id(emp_id INT) RETURNS TABLE (
employee_id INT,
first_name VARCHAR,
last_name VARCHAR,
birth_date DATE
) AS $$
BEGIN
RETURN QUERY SELECT * FROM employees WHERE employee_id = emp_id;
END;
$$ LANGUAGE plpgsql;
```
- **调用函数**:
```sql
SELECT * FROM get_employee_by_id(1);
```
### 9. 触发器
- **创建触发器函数**:
```sql
CREATE FUNCTION after_insert_employee() RETURNS TRIGGER AS $$
BEGIN
RAISE NOTICE 'A new row has been inserted.';
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
```
- **创建触发器**:
```sql
CREATE TRIGGER trg_after_insert
AFTER INSERT ON employees
FOR EACH ROW
EXECUTE FUNCTION after_insert_employee();
```
### 10. 事务管理
- **事务控制**:`BEGIN`, `COMMIT`, `ROLLBACK`
```sql
BEGIN;
UPDATE employees SET first_name = 'John' WHERE employee_id = 1;
COMMIT;
```
### 11. 安全管理
- **用户和权限**:
```sql
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT SELECT ON employees TO myuser;
```
### 12. 性能优化
- **查询优化**:使用索引、避免不必要的列和表扫描、优化 SQL 语句。
- **数据库维护**:定期重建索引、更新统计信息、备份和恢复。
### 参考资料
- [PostgreSQL 官方文档](https://www.postgresql.org/docs/)
- 《PostgreSQL: Up and Running》 - Regina O. Obe, Leo S. Hsu
以上是 PostgreSQL 基础学习的一个简要教程,希望对你学习 PostgreSQL 有所帮助。
相关文章:
PostgreSQL 教程
## PostgreSQL 教程 ### 1. PostgreSQL 概述 PostgreSQL 是一个开源的对象关系型数据库管理系统(ORDBMS),以其高扩展性和合规性闻名,支持 SQL 和 JSON 查询。 ### 2. 安装与配置 - **下载与安装**:从 PostgreSQL 官方…...
《基于Jmeter的性能测试框架搭建》改进一
《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处,如下所示。 Grafana性能图表实时展现,测试过程中需实时截图形成测试报告,不够人性化。解决方案:自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…...
计算机二进制表示和存储各种数据
目录 计算机二进制是什么 计算机中二进制数作用 不同数据的表示和存储 数字 文字 图片 音频 视频 计算机的中数据的显示和存储 计算机二进制是什么 计算机二进制数:计算机里存储的一切都是以二进制的0和1来表示。二进制是计算机使用的数字编码系统&#x…...
玩机社区 - 2024年最美社区源码开源
玩机社区 - 2024年最美社区源码开源 教程源码文档都内置到压缩包了 https://pan.baidu.com/s/1xwcscTne-JMbmKEntiuAuA?pwd78oi...
Linux系统——面试题分享
目录 1.现在给你三百台服务器,你怎么对他们进行管理? 2.简述 raid0 raid1 raid5 三种工作模式的工作原理及特点 2.1RAID 0 ——可以是一块盘和 N 个盘组合 2.2RAID 1 ——只能2块盘,盘的大小可以不一样,以小的为准 2.3RAID 5 …...
谈恋爱没经验?那就来刷谈恋爱经验宝宝吧
❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…...
element-ui输入框和多行文字输入框字体不一样解决
element-ui的type"textarea"的字体样式与其他样式不同 <el-input type"textarea"></el-input> <el-input ></el-input>设置: .el-textarea__inner::placeholder {font-family: "Helvetica Neue", Helvetic…...
(Java企业 / 公司项目)配置Linux网络-导入虚拟机
公司给了我一个IP地址 ,提供了一个虚拟机或者自己搭建虚拟机,还有提供登录的账号密码 可以查看我之前的文章 VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker, rabbitmq,sentinel&…...
java的unsafe
在Java中,sun.misc.Unsafe 是一个强大且危险的类,它提供了一些直接操作内存、对象和线程的底层功能。这个类通常不鼓励普通开发者使用,因为它绕过了Java语言的一些安全性和内存管理机制,可能会导致难以追踪的错误和安全漏洞。 Un…...
起底震网病毒的来龙去脉
2010年,震网病毒被发现,引起世界哗然,在后续的10年间,陆陆续续有更多关于该病毒的背景和细节曝光。今年,《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息,基于这些信息,我们重新梳理…...
[杂项]优化AMD显卡对DX9游戏(天谕)的支持
目录 关键词平台说明背景RDNA 1、2、3 架构的显卡支持游戏一、 优化方法1.1 下载 二、 举个栗子(以《天谕》为例)2.1 下载微星 afterburner 软件 查看游戏内信息(可跳过)2.2 查看D3D9 帧数2.3 关闭游戏,替换 dll 文件2…...
服务器没有图形界面没有显示器怎么办
可以用vnc。 vnc是开元的。什么是vnc? 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令: start a new session: vncserver。 如果没有会话,一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…...
标准化软件实施方案(直接套用即可)
软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取:(本文末个人名片也可直接获取)软件开发全套资料_数字中台建设指南-CSDN博客 软件产品&am…...
云和恩墨海外首秀在吉隆坡召开的2024中国智能科技与文化展览会
作为中马建交50周年官方重点推荐的活动之一,2024中国智能科技与文化展览会(第四届)于5月20至21日在毗邻吉隆坡双子塔的吉隆坡国际会展中心举办。本次展览会获得马来西亚科学技术创新部、马来西亚通讯部、中国驻马来西亚大使馆和马来西亚中华总…...
什么是react
React 是一个用于构建用户界面的 JavaScript 库,由 Facebook(现在的 Meta)开发和维护。它首次发布于2013年,并迅速成为最受欢迎的前端库之一。React 的主要目标是提供一种高效、灵活的方式来构建用户界面,特别是在大型…...
EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领
EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领 最近Epic一直为玩家们送出各种游戏,从《龙腾世纪审判》到《模拟农场22》,而就在今天,epic又为玩家们送出了IGN评分9分高分的骑士精神2.这款游戏,该游戏是一款由Tripwir…...
【Linux】icmp_seq=1 Destination Host Unreachable
执行ping 命令提示:From 192.168.XX.XX icmp_seq1 Destination Host Unreachable 这个错误消息通常表示以下几种情况之一: 网络连接问题:目标主机可能没有连接到网络,或者网络中的某个路由器无法将数据包转发到目标主机。 目标主…...
java性能优化
系列文章目录 文章目录 系列文章目录前言一、Java后端服务接口性能优化建议1.Java后端服务接口性能优化建议2.如何避免大量创建对象 二、使用步骤1.引入库2.读入数据 前言 提示:这里可以添加本文要记录的大概内容: 一、Java后端服务接口性能优化建议 …...
Apache JMeter操作
中文-新建组配置 测试计划界面介绍 异常信息 右上角那个小三角可以看到jemter的执行信息,如果你的压测执行不了可以去里面看看一般是报错了 用户自定义变量 可以在这里配置压测的全局变量,这样我们在使用的时候就不用传具体的值,传变量的…...
el-table 划入划出方法
<template><div><el-table :data"tableData" style"width: 100%" cell-mouse-enter"handleMouseEnter" cell-mouse-leave"handleMouseLeave"><el-table-column prop"ddd" label"日期2" widt…...
Phi-4-mini-reasoning效果展示:中文长文本多跳推理与隐含前提挖掘
Phi-4-mini-reasoning效果展示:中文长文本多跳推理与隐含前提挖掘 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,在数学推导、逻辑分析和多步推理等场景下展现出独特优势。与通用聊天模型不同,它专为"…...
像素剧本圣殿详细步骤:Qwen2.5-14B-Instruct模型服务健康检查与自动扩缩容配置
像素剧本圣殿详细步骤:Qwen2.5-14B-Instruct模型服务健康检查与自动扩缩容配置 1. 项目概述 像素剧本圣殿(Pixel Script Temple)是基于Qwen2.5-14B-Instruct大模型深度微调的专业剧本创作工具。该系统采用复古未来像素风格UI设计࿰…...
Pixel Epic · Wisdom Terminal参数详解:显存配额与智力同步率调优指南
Pixel Epic Wisdom Terminal参数详解:显存配额与智力同步率调优指南 1. 认识像素史诗 智识终端 像素史诗 (Pixel Epic) 是一款基于 AgentCPM-Report 大模型构建的高端研究报告辅助终端。它将枯燥的科研过程转化为一场充满像素美学的RPG冒险,让用户以…...
OpenClaw自动化简历投递:Qwen3-14B智能匹配职位要求
OpenClaw自动化简历投递:Qwen3-14B智能匹配职位要求 1. 为什么需要自动化简历投递? 去年秋天,当我开始寻找新的工作机会时,面对数百个招聘岗位,我陷入了"海投困境":每份简历都需要根据JD(职位描…...
从MySQL到Doris:手把手教你无缝迁移数据模型(附分区分桶实战配置)
从MySQL到Doris:数据模型迁移实战与分区分桶深度优化 如果你正在使用MySQL处理海量数据分析任务,可能会遇到查询性能瓶颈、复杂聚合计算效率低下等问题。Apache Doris作为新一代MPP分析型数据库,兼容MySQL协议却提供了完全不同的底层架构设计…...
精选 Skills 推荐:10 个让 Coding Agent 如虎添翼的Skills + 优质来源分享
精选 Skills 推荐:10 个让 Coding Agent 如虎添翼的Skills 优质来源分享 本篇是 Vibecoding 系列教程 的工具导向专题篇。 前篇:进阶教程(一):MCP Skills 让 coding agent 有自己的工具系列合集:Vibecodi…...
OpenClaw学习助手:Gemma-3-12b-it生成错题本与定制复习计划
OpenClaw学习助手:Gemma-3-12b-it生成错题本与定制复习计划 1. 为什么需要AI学习助手? 作为一名经常需要处理大量学习资料的开发者,我一直在寻找能够提升学习效率的工具。传统的错题本整理方式需要手动抄写题目、标注知识点、寻找同类练习题…...
2.Pandas在电商数据处理中的核心价值
第1章 Pandas在电商数据处理中应用 1.1 为什么Excel不够用,需要Pandas Pandas是Python里的数据分析核心库。它的名字来自“Panel Data”(面板数据),专门处理表格型数据。电商数据分析里,Pandas主要解决三类问题&#x…...
SEO_10个提升网站排名的实用SEO技巧分享(370 )
SEO:10个提升网站排名的实用SEO技巧分享 在当今的互联网时代,一个网站的成功离不开搜索引擎优化(SEO)。SEO不仅仅是一套技术,更是一种思维方式。本文将详细分享十个实用的SEO技巧,帮助你提升网站的排名,吸…...
linux系统中简单统计java项目代码行数信息
新建脚本文件(最好在项目根目录下):count_java.shvi count_java.sh编辑内容:按一下键盘上的i键,屏幕左下角会出现 -- INSERT --,输入一下内容: #!/bin/bash find . -name "*.java" -p…...
