PostgreSQL CRUD 操作指南
PostgreSQL CRUD 操作指南
连接数据库
-- 连接到特定数据库
psql -U postgres -d xianxia-- 列出所有数据库
\l-- 切换数据库
\c xianxia-- 列出所有表
\dt-- 查看表结构
\d table_name
基本 CRUD 操作
CREATE(创建)
-- 创建新表
CREATE TABLE users (id SERIAL PRIMARY KEY,username VARCHAR(50) UNIQUE NOT NULL,email VARCHAR(100) UNIQUE NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 插入单条数据
INSERT INTO users (username, email)
VALUES ('admin', 'admin@example.com');-- 插入多条数据
INSERT INTO users (username, email)
VALUES ('user1', 'user1@example.com'),('user2', 'user2@example.com');
READ(查询)
-- 查询所有列
SELECT * FROM users;-- 查询特定列
SELECT username, email FROM users;-- 条件查询
SELECT * FROM users WHERE username = 'admin';-- 排序
SELECT * FROM users ORDER BY created_at DESC;-- 分页查询
SELECT * FROM users
LIMIT 10 OFFSET 0; -- 第一页,每页10条-- 模糊查询
SELECT * FROM users
WHERE username LIKE '%admin%';-- 联表查询
SELECT u.username, p.title
FROM users u
JOIN posts p ON u.id = p.user_id;
UPDATE(更新)
-- 更新单个字段
UPDATE users
SET email = 'newemail@example.com'
WHERE username = 'admin';-- 更新多个字段
UPDATE users
SET email = 'newemail@example.com',username = 'newadmin'
WHERE id = 1;-- 批量更新
UPDATE users
SET status = 'inactive'
WHERE last_login < NOW() - INTERVAL '30 days';
DELETE(删除)
-- 删除特定记录
DELETE FROM users
WHERE username = 'admin';-- 删除所有记录
DELETE FROM users;-- 截断表(更快的清空表方式)
TRUNCATE TABLE users;-- 删除表
DROP TABLE users;
高级操作
事务处理
-- 开始事务
BEGIN;-- 执行操作
INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com');
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;-- 提交事务
COMMIT;-- 回滚事务
ROLLBACK;
索引操作
-- 创建索引
CREATE INDEX idx_username ON users(username);-- 创建唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);-- 删除索引
DROP INDEX idx_username;
常用函数
-- 计数
SELECT COUNT(*) FROM users;-- 分组统计
SELECT status, COUNT(*)
FROM users
GROUP BY status;-- 聚合函数
SELECT AVG(age) as average_age,MAX(age) as max_age,MIN(age) as min_age
FROM users;
实用技巧
备份和恢复
# 备份数据库
pg_dump -U postgres xianxia > backup.sql# 恢复数据库
psql -U postgres xianxia < backup.sql
性能优化
- 使用 EXPLAIN 分析查询
EXPLAIN ANALYZE
SELECT * FROM users WHERE email = 'admin@example.com';
- 创建合适的索引
-- 为经常查询的字段创建索引
CREATE INDEX idx_email ON users(email);
- 定期维护
-- 清理和分析数据库
VACUUM ANALYZE users;
常见问题解决
- 连接问题
-- 查看当前连接
SELECT * FROM pg_stat_activity;-- 终止特定连接
SELECT pg_terminate_backend(pid);
- 权限问题
-- 授予权限
GRANT ALL PRIVILEGES ON DATABASE xianxia TO username;-- 撤销权限
REVOKE ALL PRIVILEGES ON DATABASE xianxia FROM username;
最佳实践
- 总是使用事务来保证数据一致性
- 为频繁查询的字段创建索引
- 定期进行数据库维护和备份
- 使用参数化查询防止SQL注入
- 适当使用视图简化复杂查询
- 遵循命名规范
- 为表添加适当的约束
相关文章:
PostgreSQL CRUD 操作指南
PostgreSQL CRUD 操作指南 连接数据库 -- 连接到特定数据库 psql -U postgres -d xianxia-- 列出所有数据库 \l-- 切换数据库 \c xianxia-- 列出所有表 \dt-- 查看表结构 \d table_name基本 CRUD 操作 CREATE(创建) -- 创建新表 CREATE TABLE users …...

4X4规模S盒分量布尔函数计算工具(附各大常见分组加密算法S盒查找表和其对应分量布尔函数截图)
文章结尾有S盒分量布尔函数计算工具下载地址 Serpent {0x3,0x8,0xF,0x1,0xA,0x6,0x5,0xB,0xE,0xD,0x4,0x2,0x7,0x0,0x9,0xC} LBlock {0xE,0x9,0xF,0x0,0xD,0x4,0xA,0xB,0x1,0x2,0x8,0x3,0x7,0x6,0xC,0x5} GOST {0x4,0xA,0x9,0x2,0xD,0x8,0x0,0xE,0x6,0xB,0x1,0xC,0x7,0xF,0x5,0…...

模拟——郑益慧_笔记1_绪论
B站视频链接 模电是数电的基础;参考书: 模拟电子技术基础(第四版)华成英、童诗白主编,高等教育出版社;电子技术基础 模拟部分 康华光主编,高等教育出版社; 电子技术的发展史 电子…...

金融租赁系统的发展与全球化战略实施探讨
内容概要 金融租赁系统的演变并非一帆风顺,像一场跌宕起伏的电影。首先,咱们得看看它的起源及现状。随着经济的快速发展,金融租赁逐渐作为一种灵活的融资手段崭露头角。在中国市场中,企业对设备和技术更新换代的需求日益迫切&…...
vue3入门教程:计算属性
计算属性的基本用法 计算属性是通过computed函数创建的,它接受一个getter函数作为参数,并返回一个只读的响应式ref对象。该ref对象通过.value属性暴露getter函数的返回值。 <template><div><p>原始数据: {{ count }}</p><p…...

Docker怎么关闭容器开机自启,批量好几个容器一起操作?
环境: WSL2 docker v25 问题描述: Docker怎么关闭容器开机自启,批量好几个容器一起操作? 解决方案: 在 Docker 中,您可以使用多种方法来关闭容器并配置它们是否在系统启动时自动启动。以下是具体步骤和…...

shell脚本(全)
shell脚本概述 第一个shell脚本 shell注释 shell变量 shell位置参数 shell字符串 shell内置命令 shell命令替换 输出 流程控制IF export命令 退出脚本 运行Shell脚本 实例导航 shell脚本概述 在说什么是shell脚本之前,先说说什么是shell。 从程序员的…...
华为手机建议使用adb卸载的app
按需求自行卸载 echo 卸载智慧搜索 adb shell pm uninstall -k --user 0 com.huawei.search echo 卸载智慧助手 adb shell pm uninstall -k --user 0 com.huawei.intelligent echo 卸载讯飞语音引擎 adb shell pm uninstall -k --user 0 com.iflytek.speechsuite echo 卸载快应…...

论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 王志豪,厦门大学博士生 刘诗雨,厦门大学硕士生 内容简介 新数据的不断涌现使版本更新成为大型语言模型(LLMsÿ…...

Java基础(Json和Java对象)
定义好实体类 package com.pyb.pojo; /*** version 1.0* Author 彭彦彬* Date 2024/12/24 20:47* 注释*/ public class Person {private String username;private String password; public Person() {} public Person(String username, String password) {this.username…...
Linux 中检查 Apache Web Server (httpd) 正常运行时间的 4 种方法
注:机翻,未校。 4 Ways To Check Uptime of Apache Web Server (httpd) on Linux November 28, 2019 by Magesh Maruthamuthu We all know about the purpose of uptime command in Linux. 我们都知道 Linux 中 uptime 命令的目的。 It is used to c…...

Linux驱动开发--字符设备驱动开发
一、概述 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节 流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI, LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 Linux 应用程序对驱动程…...

MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式) 本文目录: 零、时光宝盒🌻 一、简介 二、安装 三、使用方法 3.1、使用命令行形式 3.2、用 Python 调用 四、总结 五、参考资料 零、时光宝盒🌻 &a…...

一文彻底拿捏DevEco Studio的使用小技巧
程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 0.安装DevEco Studio DevEco Studio面向HarmonyOS应用及元服务开发者提供的集成开…...

R9000P键盘失灵解决办法
问题描述 突然,就是很突然,我买的R9000P 2024不到三个月,键盘突然都不能用了,是所有键盘按键都无效的那种。(可以使用外接键盘) 解决办法 我本科室友说的好哈,全坏全没坏。 (该解…...

【Linux之Shell脚本实战】编写简单计算器shell脚本
【Linux之Shell脚本实战】编写简单计算器shell脚本 一、Shell脚本介绍1.1 Shell脚本简介1.2 Shell脚本特点二、脚本要求三、检查本地环境3.1 本地环境规划3.2 检查本地系统3.3 检查系统内核版本四、编写脚本4.1 脚本内容4.2 脚本分析整体逻辑各功能实现使用方法4.3 执行效果五、…...

【0x001D】HCI_Read_Remote_Version_Information命令详解
目录 一、命令概述 二、命令格式及参数说明 2.12. HCI_Read_Remote_Version_Information 命令格式 2.2. Connection_Handle 三、生成事件 3.1. HCI_Command_Status 事件 3.2. HCI_Read_Remote_Version_Information_Complete 事件 四、命令执行流程 4.1. 命令发起阶段(…...

秒鲨后端之MyBatis【2】默认的类型别名、MyBatis的增删改查、idea中设置文件的配置模板、MyBatis获取参数值的两种方式、特殊SQL的执行
别忘了请点个赞收藏关注支持一下博主喵!!!! ! ! 下篇更新: 秒鲨后端之MyBatis【3】自定义映射resultMap、动态SQL、MyBatis的缓存、MyBatis的逆向工程、分页插件。 默认的类型别名 MyBatis的增删改查 添加 <!--int insertUs…...

python中使用selenium执行组合快捷键ctrl+v不生效问题
在执行ctrlv进行粘贴时,绑定一个页面上的元素对象(无论元素对象是否是引用过期或者是粘贴的目标文本区,但前提需要粘贴的目标文本区获取焦点)执行ctrlv后可以生效。执行粘贴组合快捷键(ctrlv)的示例代码 se…...
大语言模型中的Agent;常见的Agent开发工具或框架
大语言模型中的Agent 大语言模型中的Agent是指以大语言模型为核心驱动,具有自主理解、感知、规划、记忆和使用工具等能力,能够自动化执行复杂任务的系统.以下是一些例子: AutoGPT:它相当于一个完整的工具包,可以为各种项目构建和运行自定义AI Agent。使用OpenAI的GPT-4和…...

Centos环境下安装/重装MySQL完整教程
目录 一、卸载残留的MySQL环境: 二、安装MySQL: 1、下载MySQL官方的yum源: 2、更新系统yum源: 3、确保系统中有了对应的MySQL安装包: 4、安装MySQL服务: 5、密钥问题安装失败解决方法: …...
让大模型看得见自己的推理 — KnowTrace结构化知识追踪
让大模型“看得见”自己的推理 —— KnowTrace 结构化知识追踪式 RAG 全解析 一句话概括:把检索-推理“改造”成 动态知识图构建任务,再让 LLM 只关注这张不断精炼的小图 —— 这就是显式知识追踪的核心价值。 1. 背景:为什么 RAG 仍难以搞定多跳推理? 长上下文负担 传统 I…...

Three.js搭建小米SU7三维汽车实战(6)颜色切换
颜色切换 接下来我们来实现懂车帝的颜色切换效果 可以让ai帮我们生成页面结构以及样式,注意changeCarBodyColor这个函数需要我们自己来写 // 创建颜色选择器UI function createColorSelector() {const colors [{ name: "深海蓝", hex: "#1A9CB0&qu…...

Maven工程演示
软件:idea 一、项目创建 操作截图file -> New -> Projectnextnext -> Name:工程名称;Location:项目路径;项目创建完成;文件夹基本样例:(如果不完整自己创建即可)MANIFEST.MF内容 二、导入依赖 …...

PowerBI企业运营分析——线性回归销售预测
PowerBI企业运营分析——线性回归销售预测 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据,实现关键指标的实时监控,从而迅速洞察业务动态,精准…...
如何成为一名优秀的产品经理
一、 夯实核心基础 深入理解智能驾驶技术栈: 感知: 摄像头、雷达(毫米波、激光雷达)、超声波传感器的工作原理、优缺点、融合策略。了解目标检测、跟踪、SLAM等基础算法概念。 定位: GNSS、IMU、高精地图、轮速计等定…...

进程同步:生产者-消费者 题目
正确答案: 问题类型: 经典生产者 - 消费者问题 同时涉及同步和互斥。 同步:生产者与消费者通过信号量协调生产 / 消费节奏(如缓冲区满时生产者等待,空时消费者等待)。互斥:对共享缓冲区的访问需…...

【论文精读】2024 CVPR--Upscale-A-Video现实世界视频超分辨率(RealWorld VSR)
文章目录 一、摘要二、挑战三、Method3.1 前置知识3.1.1 预训练SD 4 Upscaler3.1.2 Inflated 2D Convolution 扩展2D卷积 3.2 Local Consistency within Video Segments 视频片段中的一致性3.2.1 微调时序U-Net3.2.2 微调时序VAE-Decoder 3.3 跨片段的全局一致性 Global Consis…...

嵌入式学习--江协stm32day3
这是我目前为止认为最重要的模块--TIM定时器,这里我们主要学习通用定时器 最小的计数计时单元为时基单元,包括PSC,ARR,CNT CK_PSC(Prescaler,预分频器):作用是对输入时钟信号进行分…...

各种数据库,行式、列式、文档型、KV、时序、向量、图究竟怎么选?
慕然回首,发现这些年来涌现出了许多类型的数据库,今天抽空简单回顾一下,以便于后面用到时能快速选择。 1. 关系型数据库(行式) 关系型数据库(RDBMS),我们常说的数据库就是指的关系型数据库。 它的全称是关…...