前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【技术布局】PostgreSql Select初探

【技术布局】PostgreSql Select初探

原创
作者头像
blueflyming
修改2025-01-12 10:09:45
修改2025-01-12 10:09:45
610
举报

最近计划学习rust并使用异步web框架写一个demo,在数据库的选择上我计划使用PostgreSQL,因为它能更好的适配异步开发情况,性能更高。

1、基础Select语句
代码语言:sql
复制
select [field list] from [table_name]

假定我们有这样一个表格

代码语言:sql
复制
CREATE TABLE employee(
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

使用以下SELECT语句从 employee 表中查找所有雇员的名字和地址

代码语言:sql
复制
select name,address from employee;

或者查询所有字段

代码语言:sql
复制
select * from employee;

但是在实际的应用开发中,不建议使用这种方式来查询,主要从下面两个点考虑:

1、数据库性能。假设一个表中包含许多列和大量数据,带有星号 (*) 简写的SELECT语句将从表的所有列中选择数据,但是对于应用的该查询考虑,不是所有字段都是必要的。

2、应用性能。不必要的数据会增加数据库服务器和应用程序服务器之间的流量,这种情况在高并发情况下可能会导致应用性能下降。

2、带表达式的Select

postgreSQL中提供了多种表达式来适应各种需求,比如串联表达式 ||

下面这个sql就是使用串联表达式来获取 姓名和地址的拼接字符串

代码语言:sql
复制
select name || '_' || address from employee;

或者查询一个计算结果,下面这句SQL会在这次查询中,让所有雇员工资翻倍

代码语言:sql
复制
select salary * 2 from employee;
3、给查询的列设置别名

有时候我们在数据库中的字段名称或者计算结果的名称不一定是应用程序想要的名称,或者无法明确表达它在这次查询中的含义,所以postgreSQL允许为SELECT语句的查询列表中的列或表达式分配临时名称,列别名只在查询执行期间临时性的存在。

比如下面这句sql就是将名称拼接一个邮箱后缀,生成邮箱地址,并将这一列设置别名为 email

代码语言:sql
复制
select name || "@qq.com" as email from employee;

当然,as可以省略,如下:

代码语言:sql
复制
select name || "@qq.com"  email from employee;

如果别名中含有空格,直接写出来就会有歧义,所以需要用双引号将别名括起来

代码语言:sql
复制
select name || "@qq.com"  "qq email" from employee;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、基础Select语句
  • 2、带表达式的Select
  • 3、给查询的列设置别名
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档