PostgreSQL数据库的基本查询操作

目录
  • 查询列
  • 去除重复数据DISTINCT
  • WHERE子句
  • 注释
  • 算术运算符
  • 比较运算符
  • 逻辑运算符

查询列

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_price
  FROM Product;

多行注释:

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

算术运算符

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

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

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

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

比较运算符

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

SELECT product_name, product_type
  FROM Product
 WHERE sale_price = 500;

SELECT product_name, product_type
  FROM Product
 WHERE sale_price <> 500;

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

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

SELECT product_name, product_type, regist_date
  FROM Product
 WHERE regist_date < '2222-06-01';

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

SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price - purchase_price >= 500;

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

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

SELECT product_name, purchase_price
  FROM Product
 WHERE purchase_price IS NULL;

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

SELECT product_name, purchase_price
  FROM Product
 WHERE purchase_price IS NOT NULL;

逻辑运算符

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

下面等价于WHERE sale_price < 1000;

SELECT product_name, product_type, sale_price
  FROM Product
 WHERE NOT sale_price >= 1000;

AND运算符:

SELECT product_name, purchase_price
  FROM Product
 WHERE product_type = '厨房用具'
   AND sale_price >= 3000;

OR运算符:

SELECT product_name, purchase_price
  FROM Product
 WHERE product_type = '厨房用具'
    OR sale_price >= 3000;

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

SELECT product_name, product_type, regist_date
  FROM Product
 WHERE regist_date = '2222-02-22' OR regist_date = '2222-06-22'
   AND product_type = '办公用品';

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

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

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

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

SELECT product_name, purchase_price
  FROM Product
 WHERE purchase_price = 2800;
SELECT product_name, purchase_price
  FROM Product
 WHERE NOT purchase_price = 2800;
SELECT product_name, purchase_price
  FROM Product

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

这是因为数据含有NULL。

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

以上就是PostgreSQL数据库的基本查询操作的详细内容,更多关于PostgreSQL 数据库查询操作的资料请关注我们其它相关文章!

(0)

相关推荐

  • postgresql数据库根据年月查询出本月的所有数据操作

    表里的所有数据: 现在我要根据创建时间的 年月查询 当月所有的数据 比如前台传给我一个年月的字段planTimeMonth,值为2018-06 那么我们需要查询创建时间为6月份的所有数据 sql: java代码中sql拼接: criteria.andCondition("to_char(crt_time, 'yyyy-mm')='"+query.get("planTimeMonth").toString()+"'"); 补充:postgresql

  • PostgreSQL数据库视图及子查询使用操作

    目录 视图 创建视图 使用视图 视图更新: 删除视图: 子查询 关联子查询 视图 表里面保存的是实际数据,视图里面保存的是SELECT语句(视图本身不存储数据). 从视图中读取数据,此时视图在内部执行SELECT语句,创建一张临时表. 使用视图的好处:其一,视图不保存数据,节省存储设备容量.其二,将频繁使用的SELECT语句保存成视图,每次使用这些语句时候,不用重复书写,只需调用视图.其三,数据保存到表中,要显式的执行SQL更新语句才能更新数据,而视图中的数据会随着原表的变化自动更新. 创建视图

  • postgresql数据库连接数和状态查询操作

    查看数据库的当前连接数和状态的几种方式: 只是能看出数据库服务是否正在运行和启动路径 pg_ctl status 统计当前postgresql相关进程数,在大体上可以估算数据库的连接数,非精准,但是目前最常用的 ps -ef |grep postgres |wc -l 包含本窗口的所有数据库连接数 SELECT count(*) FROM pg_stat_activity: 不包含本窗口的所有数据库连接数,其中pg_backend_pid()函数的意思是当前进程相关的后台进程ID SELECT

  • postgresql数据库使用说明_实现时间范围查询

    按照日期查询通常有好几种方法: 按照日期范围查询有好几种方法,日期字段类型一般为: Timestamp without timezone 方法一: select * from user_info where create_date >= '2015-07-01' and create_date < '2015-08-15'; 方法二: select * from user_info where create_date between '2015-07-01' and '2015-08-15';

  • PostgreSQL数据库的基本查询操作

    目录 查询列 去除重复数据DISTINCT WHERE子句 注释 算术运算符 比较运算符 逻辑运算符 查询列 SELECT语句,用于从表中选取数据.格式: SELECT <列名>,... FROM <表名>; 从Product表中,查询三列. SELECT product_id, product_name, purchase_price FROM Product; 查询所有列,格式: SELECT *FROM <表名>; 星号代表全部列. SELECT *FROM Pr

  • Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re from pymongo import MongoClient #创建连接 #10.20.66.106 client = MongoClient('10.20.4.79', 27017) #client = MongoClient('10.20.66.106', 27017) db_name = '

  • MySQL数据库学习之查询操作详解

    目录 1.示例表内容 2.简单查询 3.给列起别名 4.列运算 5.条件查询 1.示例表内容 dept表: +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS

  • 数据库表的查询操作实践演练(实验三)

    继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等,巩固数据库查询操作. 下面就跟着小编一起练习吧! 在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作. (1)将教师'罗莉'的名字改为'罗莉莉'. 复制代码 代码如下: update Teacher set tname='罗莉莉' where tname='罗莉' (2)将两个同学(数据自己临时设置,用后即删除)的两门

  • 数据库表的查询操作(实验二)

    [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识. [实验要求]:掌握利用Select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等. [实验内容] 一.单表查询 1.简单查询 打开查询分析器,根建立teacher表,并加入数据.从teacher表中分别检索出教师的所有信息,以及仅查询教工号.姓名和职称.语句如下: select * from teacher select tno, tname from teacher 如要查询时改变列标题的显示

  • MySQL入门(三) 数据库表的查询操作【重要】

    序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可以让你知道这些基本的复杂查询是怎么实现的,但是建议还是需要多动手去敲,虽然理解了什么是内连接等,但是从理解到学会,是完全不一样的感觉. --WH 一.单表查询 1.1.查

  • 在Java的Hibernate框架中对数据库数据进行查询操作

    Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性. HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作. 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势. 都像SELECT,FROM和WHERE等关键字不区分大小写,但如表名和列名的属性是区分在HQL敏感. FROM 语句 使

随机推荐