查询列

SELECT语句,用于从表中选取数据。
格式:

SELECT <列名>,...
FROM <表名>;

从Product表中,查询三列。

SELECT product_id, product_name, purchase_price
FROM Product;

查询所有列,格式:

SELECT *
FROM <表名>;

星号代表全部列。

SELECT *
FROM Product;

可以用AS关键字给列设定别名。

SELECT product_id     AS "商品编号",product_name   AS "商品名称",purchase_price AS "进货单价"
FROM Product;

去除重复数据DISTINCT

SELECT DISTINCT product_type
FROM Product;

这里的去除并不是真的就把重复的数据给删了,只是展示出来的数据是不重复的。

也可以在多列之前使用DISTINCT。

SELECT DISTINCT product_type, regist_date
FROM Product;

WHERE子句

SELECT语句使用WHERE子句,查询出符合指定条件的数据。

格式:

SELECT <列名>,...
FROM <表名>
WHERE <条件表达式>;

例子:选取product_type = '衣服’的商品。

SELECT product_name, product_type
FROM Product
WHERE product_type = '衣服';

也可以按下面这个方式

SELECT product_name
FROM Product
WHERE product_type = '衣服';

注释

一行注释:

-- 本SELECT语句会从结果中删除重复行。
SELECT DISTINCT product_id, purchase_priceFROM Product;

多行注释:

/* 本SELECT语句,会从结果中删除重复行。*/
SELECT DISTINCT product_id, purchase_priceFROM Product;

算术运算符

算术运算符:+、-、*、/。

运算表达式中也可以用括号。

SELECT product_name, sale_price,sale_price * 2 AS “sale_price_x2"FROM Product;

含有NULL的运算,结果都是NULL。

比较运算符

=表示等于、<>表示不等于、>=、<=、>、<。

SELECT product_name, product_typeFROM ProductWHERE sale_price = 500;

SELECT product_name, product_typeFROM ProductWHERE sale_price <> 500;

比较运算符,可以对几乎所有数据类型进行比较。

对字符串比较的时候,按照字典顺序比较。比如‘10’比‘2’小。

SELECT product_name, product_type, regist_dateFROM ProductWHERE regist_date < '2222-06-01';

WHERE子句的条件表达式中,可用计算表达式。

SELECT product_name, sale_price, purchase_priceFROM ProductWHERE sale_price - purchase_price >= 500;

不能对NULL使用比较运算符。

如果选取NULL的记录,使用IS NULL运算符。

SELECT product_name, purchase_priceFROM ProductWHERE purchase_price IS NULL;

选取不是NULL的记录,使用IS NOT NULL运算符。

SELECT product_name, purchase_priceFROM ProductWHERE purchase_price IS NOT NULL;

逻辑运算符

NOT运算符:用于否定某一条件。

下面等价于WHERE sale_price < 1000;

SELECT product_name, product_type, sale_priceFROM ProductWHERE NOT sale_price >= 1000;

AND运算符:

SELECT product_name, purchase_priceFROM ProductWHERE product_type = '厨房用具'AND sale_price >= 3000;

OR运算符:

SELECT product_name, purchase_priceFROM ProductWHERE product_type = '厨房用具'OR sale_price >= 3000;

AND运算符的优先级高于OR运算符,如果想要选出product_type = ‘办公用品’,而且登记日期为2222-02-22或2222-06-22,按照下面这个方式是不行的。

SELECT product_name, product_type, regist_dateFROM ProductWHERE regist_date = '2222-02-22' OR regist_date = '2222-06-22'AND product_type = '办公用品';

要优先执行OR运算符可以使用括号,如下所示。

SELECT product_name, product_type, regist_dateFROM ProductWHERE product_type = '办公用品'AND (   regist_date = '2222-02-22'OR regist_date = '2222-06-22');

比较运算符会把运算结果以真值形式返回,结果成立为真,不成立为假。

可以通过创建真值表,理解一些复杂的条件。

SELECT product_name, purchase_priceFROM ProductWHERE purchase_price = 2800;
SELECT product_name, purchase_priceFROM ProductWHERE NOT purchase_price = 2800;
SELECT product_name, purchase_priceFROM Product

经观察发现,SQL中真值还有一种,叫UNKNOWN,既不真也不假,称之为不确定。

这是因为数据含有NULL。

因此,SQL中逻辑运算被称为三值逻辑。

PostgreSQL 简单的查询相关推荐

  1. PostgreSQL中的查询:1.查询执行阶段

    PostgreSQL中的查询:1.查询执行阶段 开始关于PG内部执行机制的文章系列.这一篇侧重于查询计划和执行机制. 本系列包括: 1.查询执行阶段(本文) 2.统计数据 3.顺序扫描 4.索引扫描 ...

  2. SpringDataJpa开发--继承JpaRepository实现简单条件查询

    1.Spring Data JPA 是 Spring Data 技术下的子项目,使用Spring Data JPA 访问数据只需要数据访问层接口实现JpaRepository接口即可. 2.JpaRe ...

  3. 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

    文章目录 前言 一.SELECT 子句 (一)投影指定的列和投影全部列 (二)AS子句修改查询结构的列标题 例题1 (三)TOP谓词限制结果集中的行数 (四)INTO子句将结果插入新表中 例题2 (五 ...

  4. mysql怎样查表的模式_mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】...

    1.mysql简单的查询:select 字段1,字段2... from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是 ...

  5. mysql mongo关联查询语句_MySQL与Mongo简单的查询实例代码 筋斗云网络

    简介 本文通过一个实例给大家用MySQL和mongodb分别写一个查询,本文图片并茂给大家介绍的非常详细,感兴趣的朋友参考下吧 首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多 ...

  6. JDBC简单连接查询MySQL数据库

    代码: DButil.java(连接关闭数据库的类) import java.sql.DriverManager; import java.sql.SQLException; import java. ...

  7. 数据库的实例化操作——员工信息的查询——简单表查询(二)

    员工信息的查询--简单表查询(二) 表信息查看  -->表信息 简单查询 查询所有的职位 select distinct job from emp;      查询出来的job是所有人的职位,用 ...

  8. mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

    1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都 ...

  9. 【C#Windows 窗体应用】实现简单学生查询成绩,管理员管理学生成绩

    [C#Windows 窗体应用]实现简单学生查询成绩,管理员管理学生成绩功能 已经上传到 https://gitee.com/biflcy/student-management-system 给颗小心 ...

最新文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(不同分组配置不同的箱体填充色+Brewer调色板)实战
  2. js ajax 浏览器兼容,JS跨浏览器兼容,一点点总结
  3. Sales Volume Analysis PoC app test - environment setup finished
  4. 豪斯荷尔德变换 matlab,隐式QR法求实矩阵的全部特征值matlab实现
  5. 虚拟机Ubuntu18.04 root下 连接 windows 中 winScp
  6. 【服务器】一次对Close_Wait 状态故障的排查经历
  7. “这辈子不可能打工男子”出狱了,司法所将重点关注,网友:《今瓶没》今日上映!...
  8. Maya2020入门:标题栏+菜单栏+状态栏
  9. 蓝桥杯题目练习 提升篇 [蓝桥杯2018初赛]三体攻击
  10. qt web混合编程_Qt+VS混合编程教程
  11. Gensim库之Doc2Vec模型详解
  12. 查看你的姓氏排名和姓氏来源
  13. 国家网信办《网络数据安全管理条例(征求意见稿)》为企业带来哪些新思考?
  14. 劳易测BCB G40 H47 L030 - 条码带
  15. Android百度地图短链分享的使用
  16. hass智能 小米扫地机器人_搭建智能家居第三篇:小米系列接入homeassistant的教程分享...
  17. MySQL学习笔记-恶补基础篇
  18. 基于Python+Django的项目申报审核平台系统
  19. locust之简介(1)
  20. 谷歌给应届毕业生的八条建议

热门文章

  1. 【MATLAB】混合粒子群算法原理、代码及详解
  2. SqlServer用SQL语句将查出的数据直接插入到另一个张的表中
  3. python变量名要求_Python中用中文变量名、函数名,会影响性能吗?
  4. linux nginx 安装出错,Linux Nginx安装以及可能出现错误
  5. react实现上传文件进度条功能_React.js 可拖放文件的上传表单(支持多文件和进度显示)...
  6. 计算机网络课设题目java_java课程设计参考题目
  7. 两种参数类型_布尔参数这些缺点不能忍?不如试试枚举吧
  8. svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件
  9. 谷歌浏览器78如何安装拓展程序
  10. std::tuple还是struct?