当前位置: 首页 > news >正文

PostgreSQL 基本SQL语法(二)

1. SELECT 语句

1.1 基本 SELECT 语法

SELECT 语句用于从数据库中检索数据。基本语法如下:

SELECT column1, column2, ... FROM table_name;

例如,从 users 表中检索所有列的数据:

SELECT * FROM users;

1.2 使用 WHERE 条件

WHERE 子句用于过滤数据,仅返回满足条件的记录。基本语法如下:

SELECT column1, column2, ... FROM table_name WHERE condition;

例如,查询用户名为 alice 的用户:

SELECT * FROM users WHERE username = 'alice';

1.3 排序与限制(ORDER BY, LIMIT)

  • ORDER BY 子句用于对查询结果进行排序。
  • LIMIT 子句用于限制返回的记录数。

基本语法如下:

SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC] LIMIT number;

例如,按创建时间排序并返回前 5 条记录:

SELECT * FROM users ORDER BY created_at DESC LIMIT 5;

2. INSERT 语句

2.1 基本 INSERT 语法

INSERT 语句用于向表中插入数据。基本语法如下:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

例如,向 users 表中插入一条新记录:

INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');

2.2 插入多条记录

可以一次插入多条记录:

INSERT INTO users (username, email) VALUES ('charlie', 'charlie@example.com'), ('dave', 'dave@example.com');

2.3 插入数据的注意事项

  • 插入的数据类型必须与列的数据类型匹配。
  • 插入记录时,如果某列没有提供值且该列定义了默认值,则使用默认值。

3. UPDATE 语句

3.1 基本 UPDATE 语法

UPDATE 语句用于更新表中的数据。基本语法如下:

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

例如,更新 bob 的电子邮件地址:

UPDATE users SET email = 'bob@newdomain.com' WHERE username = 'bob';

3.2 更新多个列

可以同时更新多个列:

UPDATE users SET email = 'dave@newdomain.com', username = 'dave_new' WHERE username = 'dave';

3.3 使用 RETURNING 返回更新后的数据

RETURNING 子句用于返回更新后的数据:

UPDATE users SET email = 'bob@anotherdomain.com' WHERE username = 'bob' RETURNING *;

4. DELETE 语句

4.1 基本 DELETE 语法

DELETE 语句用于从表中删除数据。基本语法如下:

DELETE FROM table_name WHERE condition;

例如,删除用户名为 charlie 的用户:

DELETE FROM users WHERE username = 'charlie';

4.2 使用 RETURNING 返回删除的数据

RETURNING 子句用于返回删除的数据:

DELETE FROM users WHERE username = 'charlie' RETURNING *;

5. 实战演练

5.1 练习题目

  1. 创建一个新表 products,包括以下列:

    • id(整数,主键,自增)
    • name(字符串,最大长度 100,不为空)
    • price(浮点数,不为空)
    • created_at(时间戳,默认为当前时间)
  2. products 表中插入以下数据:

    • nameLaptopprice 为 1200.00
    • nameSmartphoneprice 为 800.00
  3. 查询 products 表中所有价格大于 1000 的产品。

  4. Laptop 的价格更新为 1000.00,并返回更新后的记录。

  5. 删除 Smartphone 产品,并返回删除的记录。

5.2 示例答案

  1. 创建表:
CREATE TABLE products (id SERIAL PRIMARY KEY,name VARCHAR(100) NOT NULL,price NUMERIC NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  1. 插入数据:
INSERT INTO products (name, price)
VALUES ('Laptop', 1200.00),('Smartphone', 800.00);
  1. 查询价格大于 1000 的产品:
SELECT * FROM products WHERE price > 1000;
  1. 更新 Laptop 的价格并返回更新后的记录:
UPDATE products SET price = 1000.00 WHERE name = 'Laptop' RETURNING *;
  1. 删除 Smartphone 产品并返回删除的记录:
DELETE FROM products WHERE name = 'Smartphone' RETURNING *;


系统文章目录:

PostgreSQL 简介与基础(一)

PostgreSQL 基本SQL语法(二)

PostgreSQL 高级SQL查询(三)

PostgreSQL 数据库设计与管理(四)

PostgreSQL 高级功能(五)

PostgreSQL 性能优化与调优(六)

PostgreSQL 高可用性与灾难恢复策略(七)

PostgreSQL 安全性与权限管理(八)

PostgreSQL 高级功能与扩展(九)

PostgreSQL 分区表与并行查询(十)

PostgreSQL 索引优化与性能调优(十一)

PostgreSQL 日志管理与故障排查(十二)

PostgreSQL 高可用性与容错性(十三)

相关文章:

PostgreSQL 基本SQL语法(二)

1. SELECT 语句 1.1 基本 SELECT 语法 SELECT 语句用于从数据库中检索数据。基本语法如下: SELECT column1, column2, ... FROM table_name; 例如,从 users 表中检索所有列的数据: SELECT * FROM users; 1.2 使用 WHERE 条件 WHERE 子…...

linux 控制台非常好用的 PS1 设置

直接上代码 IP$(/sbin/ifconfig eth0 | awk /inet / {print $2}) export PS1"\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\w\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]\[\e[0m\]\[\e[34m\]\h(\[\e[31m\]$IP\[\e[m\])\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]…...

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十二章)Wifi透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 适用于板卡型号: 紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano) 一:…...

详述乙级资质企业在城市综合管廊与隧道一体化设计中的挑战与机遇

挑战 1. 技术与设计复杂性 城市综合管廊与隧道项目往往涉及复杂的地质条件、地下水位、周边建筑物影响等因素,要求企业具备高水平的岩土工程、结构工程和流体力学等专业知识。此外,一体化设计需要跨学科合作,协调不同系统的兼容性&#xff…...

如何借助物联网实现农情监测与预警

如何借助物联网实现农情监测与预警? 物联网技术,作为信息技术与传统行业的深度融合产物,正逐步变革着农业生产的管理模式,特别是在农情监测与预警领域展现出巨大潜力。其核心在于通过感知层的各类传感器、通信层的数据传输技术以…...

一个项目学习Vue3---响应式基础

观察下面一段代码&#xff0c;学习响应式基础的全部内容 <template><div><div>将下面的msg属性放到上面来:{{ msg }}</div><button click"count">{{ count }}</button><button click"object.count.value">{{ o…...

白骑士的Python教学基础篇 1.5 数据结构

系列目录​​​​​​​ 上一篇&#xff1a;白骑士的Python教学基础篇 1.4 函数与模块 数据结构是编程语言中用于存储和组织数据的基本构件。在Python中&#xff0c;常见的数据结构包括列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08…...

Go 常用文件操作

查找文件/目录 os.Stat(String)组合路径 dir, _ : homedir.Dir() filename : args[0] path : filepath.Join(dir, filename)homedir.Dir()为home根目录。 filepath.Join 会自动处理分隔符&#xff0c;将目录和文件名组合成文件路径。 检查是否含有后缀.json strings.HasSu…...

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇序言前 必看 【大数据导论】—大数据序言 这是…...

ComfyUI流程图、文生图、图生图步骤教学!

前言 leetcode , 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 …...

CSS基础知识学习指南

CSS基础知识学习指南 1. 介绍 CSS&#xff08;层叠样式表&#xff09;是用于描述HTML文档的呈现样式的语言。通过CSS&#xff0c;可以控制网页的布局、颜色、字体等各种样式&#xff0c;使得网页更加美观和用户友好。 2. CSS基础语法 CSS由选择器和声明块组成。选择器用于选…...

力扣hot100 -- 贪心算法

&#x1f442; ▶ 逍遥叹 - 胡歌&沈以城【Mashup】 (163.com) &#x1f442; 庐州月 - 许嵩 - 单曲 - 网易云音乐 2.7 小时&#xff0c;加上写博客&#xff0c;4 道题&#xff0c;&#x1f602; -- 希望二刷时&#xff0c;可以 3 小时&#xff0c;8 道题.... 目录 &…...

P2P文件传输协议介绍

P2P文件传输协议是一种基于对等网络&#xff08;Peer-to-Peer&#xff0c;简称P2P&#xff09;的文件共享和传输技术。以下是关于P2P文件传输协议的详细介绍&#xff1a; 一、定义与原理 P2P文件传输协议允许网络中的各个节点&#xff08;即计算机或其他设备&#xff09;之间…...

Spring Boot集成Spring Mobile快速入门Demo

1.什么是Spring Mobile&#xff1f; Spring Mobile是一个基于Spring Web MVC框架扩展的一个针对不同移动终端的应用开发框架。通过它我们在适配不同终端方面&#xff0c;就不用费劲心思了。 Spring Mobile的主要功能 自动设备检测: Spring Mobile在 server端内置了一个设备解…...

走进开源企业 | 湖南大学OpenHarmony技术实训活动在开鸿智谷顺利举办!

6月24日-6月26日&#xff0c;2024开放原子校源行之湖南大学信息科学与工程学院师生走进开源企业实训交流活动顺利落下帷幕。湖南大学信息科学与工程学院的师生代表团一行90人参与了湖南开鸿智谷数字产业有限公司&#xff08;以下简称“开鸿智谷”&#xff09;与母公司拓维信息系…...

TCP单进程循环服务器程序与单进程客户端程序

实验目的 理解并掌握以下内容: 网络进程标识(即套接字地址)在Linux中的数据结构与地址转换函数。网络字节序与主机字节序的定义、转换以及相关函数在网络编程中的应用。数据结构内存对齐的基本规则,以及基于数据结构构建PDU的基本方法。TCP单进程循环服务器与单进程客户端的…...

QT+winodow 代码适配调试总结(二)

已经好多年了&#xff0c; linux环境下不同版本的QT程序开发和部署&#xff0c;突然需要适配window环境程序调试&#xff0c;一堆大坑&#xff0c;还真是一个艰巨的任务&#xff0c;可是kpi下的任务计划&#xff0c;开始吧&#xff01;&#xff01; 1、首先我们自定义的动态库…...

百家讲坛 | 裴伟伟:企业中安全团队应当如何反馈漏洞

作者简介&#xff1a;裴伟伟&#xff0c;洞源实验室创始人&#xff0c;国家网安基地网络安全行业专家&#xff0c;网安加社区特聘专家&#xff0c;持有CISSP、PMP证书&#xff0c;曾在HITCON、可信云大会、开源产业大会等安全论坛发表演讲。曾任国内某安全实验室负责人、某互金…...

巧用Fiddler中的Comments提升接口测试效率

有没有同学在使用Fiddler时跟我遇到了同样的问题&#xff0c;就是想给某个抓包的请求进行注释&#xff01;&#xff01;&#xff01;但是奇怪的是&#xff0c;根本没有Comments相关信息呀&#xff1f; 设置Comments 设置Comments非常容易&#xff0c;选中一个请求&#xff0c…...

停车场车牌识别计费系统,用Python如何实现?

关注星标&#xff0c;每天学习Python新技能 前段时间练习过的一个小项目&#xff0c;今天再看看&#xff0c;记录一下~ 项目结构 说明&#xff1a; datefile文件夹&#xff1a;保存车辆信息表的xlsx文件 file文件夹&#xff1a;保存图片文件夹。ic_launcher.jpg是窗体的右上角…...

Linux内核——Linux内核体系模式(二)

1 Linux系统的中断机制 Linux内核将中断分为两类&#xff1a;硬件中断和软件中断&#xff08;异常&#xff09;。每个中断是由0-255之间的一个数字进行标识。 中断int0-int31&#xff08;0x00-0x1f&#xff09;作为异常int32-int255由用户自己设定 int32-int47对应与8259A中断…...

Spring MVC的高级功能——异常处理(一)简单异常处理器

一、HandlerExceptionResolver接口 如果希望对Spring MVC中所有异常进行统一处理&#xff0c;可以使用Spring MVC提供的异常处理器HandlerExceptionResolver接口。Spring MVC内部提供了HandlerExceptionResolver的实现类SimpleMappingExceptionResolver。它实现了简单的异常处理…...

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java编程语言中&#xff0c;static是一个关键字&#xff0c;它可…...

软件工程实验

实验环境和需求 用户可以对相片进行按类别管理&#xff0c;用户可以设定不同的类别&#xff0c;然后上传照片到相应的类别中&#xff0c;并能进行照片的删除&#xff0c;注释 运行 运行并访问 localhost 8090,图片在数据库中的信息是D&#xff1a;/upgrade 后面的内容 se…...

对于复杂的网页布局,如多列布局和网格布局,CSS 有哪些最佳实践和技巧?

对于复杂的网页布局&#xff0c;如多列布局和网格布局&#xff0c;以下是一些CSS的最佳实践和技巧&#xff1a; 使用Flexbox或CSS Grid布局&#xff1a;Flexbox和CSS Grid是两个强大的CSS布局模型&#xff0c;可用于实现复杂的网页布局。Flexbox适用于单行或单列布局&#xff0…...

Spring Boot中集成Redis实现缓存功能

Spring Boot中集成Redis实现缓存功能 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何在Spring Boot应用程序中集成Redis&#xff0c;实现…...

arco disign vue 日期组件的样式穿透

问题描述: 对日期组件进行样式穿透. 原因分析: 如图,日期组件被展开时它默认将dom元素挂载到body下, 我们的页面在idroot的div 里层, 里层想要穿透外层是万万行不通的. 解决问题: 其实官网提供了参数,但是并没有提供例子, 只能自己摸索着过河. 对于日期组件穿透样式,我们能…...

【深度学习】pytorch训练中的一个大坑

使用的命令&#xff1a;iostat -x 5 可以看到 ssd的利用率已经满了。 之前在的数据集放在了 hdd上&#xff0c;训练结果特别慢。 所以我把它移动到了ssd上&#xff0c;然后训练参数用的 resume&#xff0c; 但是&#xff01;&#xff01;&#xff01;&#xff01;它把历史记住…...

python全局解释器锁(GIL)

文章目录 1.cpu工作方式2.python全局解释器锁与多线程3.其他语言的多线程4.如何解决假的多线程 1.cpu工作方式 先来先服务&#xff08;First Come, First Served&#xff0c;FCFS&#xff09;&#xff1a; 最简单的调度算法&#xff0c;按照作业或进程到达的顺序依次执行。没有…...

无人机的起源

无人机起源于20世纪初的早期实验阶段&#xff0c;并随着技术进步逐步发展。无人机&#xff0c;作为现代科技领域中的一项重要创新&#xff0c;已经在全球范围内展现出其巨大的潜力和应用价值。 无人机的历史可以追溯到1917年&#xff0c;美国人艾德温.奥斯特林发明了“飞行训练…...