본문 바로가기

My Work/Data Literacy

필수 SQL 개념 - (2/3편)

저번 1편에 이어서 CRUD 중에 Update, Delete에 대한 SQL문을 자세히 알아보겠다.

 

 

Chat GPT4 "SQL"

 

 

일단 이번 블로그 글에서 쓸 테이블을 간단하게 만들어보자면 아래와 같다.

 

테이블명 : friends

Number Name Age Sex
1 James 25 Male
2 John 26 Female
3 Lucas 27 Male

 

 

Update : 기존 행의 데이터 수정

SET을 이용해서 새로운 값을 설정할 수 있다. 

UPDATE friends SET col1=value1, col2=value2, ... WHERE 조건;

 

이 때, 'rowid' 라는 개념을 알면 UPDATE의 조건문을 쉽게 사용할 수 있다. rowid는 인덱스를 나타내며, 고유한 주소록이라고 생각하면 된다. (사실 저번 글에서 다뤘어야 했는데 지나쳤다ㅎㅎ)

 

따라서, 아래와 같이 사용할 수 있다. 1행의 name을 'Sarah'로 바꾸라는 SQL문이다.

UPDATE friends SET name="Sarah" WHERE rowid=1;

 

이렇게 사용하면 테이블은 아래와 같이 수정된다.

Number Name Age Sex
1 Sarah 25 Male
2 John 26 Female
3 Lucas 27 Male

 

 

Delete : 테이블에서 데이터를 삭제

DELETE FROM 테이블명 WHERE 조건;

 

위와 같이 사용하면 된다. 당연히 조건은 고유한 값인 rowid를 사용하면 좋다.

 

DELETE FROM friends WHERE rowid=1;

 

위와 같이 사용하면 friends 테이블에서 1행을 삭제하라는 뜻이 된다. 참고로, 삭제된 rowid는 update할 경우, 재사용된다는 점을 알아야 한다. 

 

 

이외에 유용한 Functions가 있다. 

ORDER BY, 집계 Fuctions(ex. SUM), LIKE, GROUP BY들을 차례대로 배워보자.

 

 

ORDER BY : 조회한 것들을 오름차순이나 내림차순으로 정렬

SELECT * FROM 테이블명 ORDER BY col1 ASC;
SELCET * FROM 테이블명 ORDER BY col1, col2, col3 DESC;

 

ORDER BY는 SELECT로 조회한 값들을 정렬하는데 쓰는데, 여기서 ASC는 오름차순을 뜻하고, DESC는 내림차순을 뜻한다. Default는 ASC(오름차순)이다. 

 

SELECT name FROM friends ORDER BY age ASC;

 

위와 같이 작성했을 경우, age를 오름차순으로 정렬한 name을 나열하라는 뜻이다. Sarah - John - Lucas로 출력값이 예상된다.

 

 

 

집계 함수 (Aggregate Functions)

집계 함수에는 크게 최대값을 나타내는 MAX, 최소값을 가져오는 MIN, 합을 가져오는 SUM, 평균을 나타내는 AVG, 수를 가리키는 COUNT가 있다. 

 

아래와 같이 쓰일 수 있다. 

SELECT MAX(col) FROM 테이블명;
SELECT MIN(col) FROM 테이블명;
SELECT SUM(col) FROM 테이블명;
SELECT AVG(col) FROM 테이블명;
SELECT COUNT(col) FROM 테이블명;

 

 

 

나머지 유용한 함수들은 다음 편에서 간단하게 다루고 프로그래머스 연습 문제를 풀이하면서 다른 함수들도 다뤄보겠다.

 

 

그럼 이만~~!

'My Work > Data Literacy' 카테고리의 다른 글

프로그래머스 연습문제 풀이  (0) 2023.12.09
필수 SQL 개념 - (3/3편)  (0) 2023.11.30
필수 SQL 개념 - (1/3편)  (1) 2023.11.28
AARRR 퍼널별 참고사항  (1) 2023.11.14
AB Test (핵심 요소, 규칙)  (0) 2023.11.13