iT邦幫忙

2022 iThome 鐵人賽

DAY 7
1
自我挑戰組

三十天,PG與我系列 第 7

Postgres 基本SQL指令(2)

  • 分享至 

  • xImage
  •  

這邊承接昨天建立資料庫及table的練習。

插入資料

INSERT INTO mytable(id, owner)VALUES(123, 'aaa');
左邊第一個括號放指定欄位,右邊括號放入其對應的值。

一次插入多筆資料

INSERT INTO mytable(id, owner)VALUES(123, 'aaa'), (456, 'bbb'), (789, 'ccc');

讀出資料

SELECT * FROM mytable;
SELECT owner FROM mytable;
SELECT後面指定所要讀出的欄位,米字號代表全部欄位,或者輸入一到多個用逗號分隔的欄位名稱。

對查詢結果進行排序

SELECT * FROM mytable ORDER BY id ASC;
ORDER BY後面可接欄位名稱,或者欄位的相對位置,從左到右由1開始計算。欄位後面打ASC代表升冪排列,DESC代表降冪排列。
(如果指定多個排序欄位,其意義為當系統遇到兩筆紀錄在前面的排序欄位數值一樣的時候,會進一步以後面一個排序欄位來做先後順序的判斷)
https://ithelp.ithome.com.tw/upload/images/20220907/20114934uIGa9ZZc2z.png

查詢符合特定條件的欄位

SELECT * FROM mytable WHERE owner='XXX';
SELECT * FROM mytable WHERE owner LIKE 'jack%';
(LIKE可以搜尋局部條件符合的字串,%代表多個字母 '底線'代表一個,好比說上面的例子就是搜尋jack開頭的owner)
SELECT * FROM mytable WHERE owner='XXX' AND id=1;

以空值作為條件

SELECT * FROM mytable WHERE owner IS NULL;
SELECT * FROM mytable WHERE owner IS NOT NULL;

空值在排序的前後設定

SELECT * FROM mytable ORDER BY id ASC, owner ASC NULLS LAST;
可以在排序順序中指定空值在前(NULLS FIRST)或空值在後(NULLS LAST)

更新資料

UPDATE mytable SET owner='lin' WHERE id=1;

刪除資料

DELETE FROM mytable WHERE ${條件};...

限制查詢結果的筆數

SELECT * FROM mytable LIMIT 10;
取出table所有內容之後,輸出前10筆資料。
SELECT * FROM mytable LIMIT 10 OFFSET 20;
取出table所有內容之後,輸出第二十筆之後的十筆資料。

計算查詢結果的筆數

SELECT COUNT('米字號') FROM mytable... ...;


上一篇
Postgres 基本SQL指令(1)
下一篇
資料庫關聯基本概念
系列文
三十天,PG與我30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言