首頁 > 軟體

PostgreSQL資料庫的基本查詢操作

2022-04-11 19:02:00

查詢列

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 資料庫查詢操作的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com