오늘은 PostgreSQL에서 SQL로 CRUD를 하는 방법을 알아보겠습니다.
CRUD
CRUD는 Create, Read, Update, Delete를 뜻합니다. 이 작업을 수행하는 SQL 명령은 각각 Insert, Select, Update, Delete입니다.
Insert
pgAdmin 4에서 Table을 선택한 뒤, Object Explorer와 같은 라인에 있는 View Data를 누릅니다.
Data Output 아래에 있는 Add row 버튼을 눌러 행을 추가할 수 있습니다.
id, created는 자동으로 값이 채워지기 때문에 default로 놔두고, title과 body를 각각 입력합니다.
Save Data Changes를 눌러 입력한 정보대로 Table에 행이 추가됩니다.
id와 created도 자동으로 채워진 것을 볼 수 있습니다.
이번에는 SQL문을 통해 행을 추가하겠습니다.
Table을 선택한 뒤, Object Explorer과 같은 라인에 있는 Query Tool을 누릅니다.
Query 공간에 Insert 문을 다음과 같이 작성합니다.
INSERT INTO table (column1, column2) VALUES('column1 value', 'column2 value');
Execute/Refresh 버튼을 누르면, SQL문이 Database Server로 전송되어 Data가 생성됩니다. 그 결과도 아래에 Messages로 나타납니다.
Select
Query Tool을 누른 후, Query 공간에 Select 문을 다음과 같이 작성합니다.
SELECT * FROM table;
Execute/Refresh 버튼을 누르면, Data Output으로 Table 행들이 출력됩니다.
만약, 특정 Column만 출력하고 싶다면 다음과 같이 작성합니다.
SELECT column1, column2 FROM table;
id, title Column만 잘 출력된 것을 볼 수 있습니다.
Column 조건에 만족하는 행만 출력할수도 있습니다. 다음과 같이 작성합니다.
SELECT column1, column2 FROM table WHERE column1 = n; -- Column1이 n인 행만 출력
SELECT column1, column2 FROM table WHERE column1 <> n; -- Column1이 n과 다른 행만 출력
SELECT column1, column2 FROM table WHERE column1 < n; -- Column1이 n보다 작은 행만 출력
SELECT column1, column2 FROM table WHERE column1 <= n; -- Column1이 n보다 작거나 같은 행만 출력
SELECT column1, column2 FROM table WHERE column1 > n; -- Column1이 n보다 큰 행만 출력
SELECT column1, column2 FROM table WHERE column1 >= n; -- Column1이 n보다 크거나 같은 행만 출력
id 값이 1인 행만 출력해보겠습니다.
이번에는 id 값이 1이 아닌 행만 출력해보겠습니다.
Column 값에 따라 행들을 정렬하여 출력할수도 있습니다. 다음과 같이 작성합니다.
SELECT column1, column2 FROM table WHERE 조건 ORDER BY id ASC; -- id에 따라 오름차순 정렬
SELECT column1, column2 FROM table WHERE 조건 ORDER BY id DESC; -- id에 따라 내림차순 정렬
id 값이 1인 행을 제외하고, id 값에 따라 내림차순 정렬을 해보겠습니다.
출력되는 행의 수가 너무 많을 때, 행의 수를 제한할수도 있습니다. 다음과 같이 작성합니다.
SELECT column1, column2 FROM table WHERE 조건 ORDER BY id ASC LIMIT n; -- n개의 행만 출력
2개의 행만 출력해보겠습니다.
이외에도 많은 옵션들을 사용하여 원하는 행이나 열만 출력할 수 있습니다.
Update
View Data를 눌러 값을 수정하고, Save Data Changes를 누르면 값이 변경됩니다.
혹은 Query 공간에 Update 문을 다음과 같이 작성합니다. column3이 n인 행들에서 column1의 값을 'change1'로 변경하고, column2의 값을 'change2'로 변경합니다. WHERE 조건을 작성하지 않으면 모든 행에서 변경이 이루어지므로 주의해야 합니다.
UPDATE table SET column1 = 'change1', column2 = 'change2' WHERE column3 = n;
id 값이 4인 행에서 title은 'Delete'로, body는 'Delete is ...'로 변경이 잘 된 것을 확인할 수 있습니다.
Delete
삭제할 행들을 선택하고, Delete를 누릅니다.
Save Data Changes를 누르면 행이 삭제됩니다.
혹은 Query 공간에 Delete 문을 다음과 같이 작성합니다. column1이 n인 행들을 삭제하며, WHERE 조건을 지정하지 않으면 모든 행들이 삭제되니 주의해야 합니다.
DELETE FROM table WHERE column1=n;
id가 4인 행을 삭제해보겠습니다.
삭제가 잘 된 것을 볼 수 있습니다.
오늘의 글은 여기까지입니다. 감사합니다!
참고
https://postgrescheatsheet.com/#/queries
Postgres Cheatsheet
postgrescheatsheet.com
https://www.youtube.com/watch?v=dKuLA5BGPTY
'Database' 카테고리의 다른 글
[Database] PostgreSQL 입문 (with 생활코딩) - (2) Database, Schema, Table 생성 (0) | 2023.10.07 |
---|---|
[Database] PostgreSQL 입문 (with 생활코딩) - (1) 개념, 설치, 접속 (0) | 2023.10.03 |