PostgreSQL 从入门到出门 第 9 篇 简单查询
2019-04-22 16:54
591 查看
版权声明:本站不全为博主原创文章,欢迎转载,转载记得标明出处。^-^ https://blog.csdn.net/horses/article/details/89452947
文章目录
我们对于数据库中数据的常见操作,简单来说可以称为增删改查(CRUD,Create、Retrieve、Update、Delete)。其中,使用最多,也最复杂的功能当属数据查询。根据 SQL 标准,查询语句使用
SELECT关键字表示。
本文以及后续示例使用的表和数据来源于《SQL 从入门到出门 示例数据库》。
如果想要了解 SQL:2016(ISO/IEC 9075:2016)标准,以及六种主流数据库中的实现及差异,包括:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、Db2、SQLite,可以参考系列文章《SQL 从入门到出门》。
我们先从简单查询开始,来看一个示例。
SELECT first_name, last_name FROM employees;
基本上不用解释,我们都能知道以上查询语句将会返回员工表(employees)中的名(first_name)和姓(last_name )。
SELECT后面是要返回的信息,比如字段名或表达式,多个值使用逗号分隔;
FROM表示要查询哪个表;分号表示查询语句结束。
SQL 语句不分区大小写,但是通常将关键字(
SELECT、FROM等)进行大写,其他内容使用小写,便于阅读。
如果想要查询某个表的全部字段,可以一一列出字段名称,也可以使用星号(*)表示:
SELECT * FROM employees;
通常,我们只在快速查询时使用星号;在实际项目中,应该避免使用
SELECT *,因为应用程序可能并不需要全部的字段,而且表结构可能会发生改变,明确指定的字段名称可以减少不确定性。
有的时候,我们可能会遇到这样的查询语句:
SELECT 2 + 3;
也就是省略了
FROM子句的查询,这是 PostgreSQL 的扩展语法。这种查询通常用于返回系统信息,或者当作计算器使用。需要注意的是,并非所有的关系数据库都支持这种写法,因此它并不具有可移植性。
现实生活中,存在许多名字相同的人。在执行数据库查询时,也可能会返回重复的值,例如,以下语句查询员工表中的部门编号:
SELECT department_id FROM employees; department_id --------------- 90 90 90 100 100 100 100 100 100 ... (107 rows)
由于一个部门可以存在多个员工,查询结果中包含了大量重复的数据。如果想要知道员工表中存在多少个不同的部门编号,需要针对以上结果进行去重操作。SQL 提供了消除查询结果重复值的
DISTINCT关键字。例如:
SELECT DISTINCT department_id FROM employees; department_id --------------- 70 80 20 10 90 100 110 30 50 40 60 (12 rows)
查询结果只有不重复的 12 条数据。
DISTINCT也可以针对多个字段进行去重操作,例如:
SELECT DISTINCT first_name, last_name FROM employees;
表示查询姓和名组合不重复的数据。
SELECT ... FROM返回表中的全部数据(
DISTINCT基于这些数据再进行处理),如果想要返回满足特定条件的结果,比如某个部门的员工,需要使用 SQL 中的条件过滤,即
WHERE子句。当然,这是下一篇的主题。
人生本来短暂,你又何必匆匆!点个赞再走吧!
相关文章推荐
- oracle入门学习(4) SELECT简单查询
- T-SQL入门攻略之3-SQL简单查询
- 转载:PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询六:执行器执行
- PostgreSQL 从入门到出门 第 11 章 排序显示
- SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(下)
- T-SQL入门攻略之3-SQL简单查询
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询六:执行器执行
- PostgreSQL的存储过程简单入门
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询二:SQL解析为parsetree
- PostgreSQL 数据操作入门,简单对比MySQL
- PostgreSQL的查询语句的连接方式与查询计划比较--简单语句
- spring-data-jpa快速入门(二)——简单查询
- PostgreSQL的存储过程简单入门
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询梗概
- JAVA之Mybatis基础入门--框架搭建与简单查询
- JDBC简单查询 菜鸟入门
- JDBC入门、简单SQL查询
- PostGreSQL入门教程(三)- 数组的简单使用
- windchill开发简单入门之高级条件查询
- MySQL入门之简单数据查询