最近计划学习rust并使用异步web框架写一个demo,在数据库的选择上我计划使用PostgreSQL,因为它能更好的适配异步开发情况,性能更高。
select [field list] from [table_name]
假定我们有这样一个表格
CREATE TABLE employee(
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL
);
使用以下SELECT语句从 employee 表中查找所有雇员的名字和地址
select name,address from employee;
或者查询所有字段
select * from employee;
但是在实际的应用开发中,不建议使用这种方式来查询,主要从下面两个点考虑:
1、数据库性能。假设一个表中包含许多列和大量数据,带有星号 (*) 简写的SELECT语句将从表的所有列中选择数据,但是对于应用的该查询考虑,不是所有字段都是必要的。
2、应用性能。不必要的数据会增加数据库服务器和应用程序服务器之间的流量,这种情况在高并发情况下可能会导致应用性能下降。
postgreSQL中提供了多种表达式来适应各种需求,比如串联表达式 ||
下面这个sql就是使用串联表达式来获取 姓名和地址的拼接字符串
select name || '_' || address from employee;
或者查询一个计算结果,下面这句SQL会在这次查询中,让所有雇员工资翻倍
select salary * 2 from employee;
有时候我们在数据库中的字段名称或者计算结果的名称不一定是应用程序想要的名称,或者无法明确表达它在这次查询中的含义,所以postgreSQL允许为SELECT语句的查询列表中的列或表达式分配临时名称,列别名只在查询执行期间临时性的存在。
比如下面这句sql就是将名称拼接一个邮箱后缀,生成邮箱地址,并将这一列设置别名为 email
select name || "@qq.com" as email from employee;
当然,as
可以省略,如下:
select name || "@qq.com" email from employee;
如果别名中含有空格,直接写出来就会有歧义,所以需要用双引号将别名括起来
select name || "@qq.com" "qq email" from employee;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。