본문 바로가기

혼공학습단/혼자 공부하는 SQL

[혼공학습단 7기] 2주차 미션 : Chapter 03

혼공 SQL 1주차 미션에 대한 글을 작성하고 페이스북에 업로드를 했을 때 너무 뿌듯했다.

이번 주에 혼공 SQL 2주차 미션을 위해서 SQL 공부를 하고 있었는데 페이스북에 업로드한 글에 댓글이 달렸다는 알람이 울렸다.

오,,,,, 혼공족장님의 댓글이였다! 혼공족장님께서 1주차 미션에 대한 칭찬을 많이 해주셨다.

너무 기쁘고 감동 그 자체였다!(+1주차 우수혼공족에 선정되었다. 감사합니다!!)

'칭찬은 고래도 춤추게 한다'는 말이 있는데 2주차 미션은 더 열심히 해야겠다!ㅎㅎ

그럼 2주차 미션은 과연 무엇일까요?

[기본 미션]
p. 138 - 확인문제 2번 풀고 인증샷
[선택 미션]
데이터 입력, 삭제하는 기본 형식 작성하기

평소에 하던 대로 혼자 공부하는 SQL의 Chapter 03 파트를 유튜브 강의를 보면서 공부했다!

그리고 갑자기 드는 생각이 혼공 SQL 정리 노트를 작성할지 고민중에 있다.

이제 2주차 기본 미션과 선택 미션을 풀어보겠습니다.

[기본 미션]


아래의 이미지는 [기본 미션]에 대한 인증샷이다.

[기본 미션]

[기본 미션]은 Chapter 03-2 좀 더 깊게 알아보는 SELECT 문에 해당하는 내용이고, SELECT 절의 형식을 알고 있어야 문제를 풀 수 있다.

아래의 형식은 [기본 미션]을 풀 때 사용되는 SELECT 절의 형식을 간단하게 표현한 것이다.

SELECT (DISTINCT) 열_이름 -- 중복된 데이터 제거
    FROM 테이블_이름
    ORDER BY 열_이름 (ASC/DESC) -- 결과의 정렬
    LIMIT 숫자 -- 결과의 개수 제한

인증샷만 남기면 확인문제 2번을 이해하기 어려울 수 있으니깐 직접 MySQL에서 코딩을 진행하고 출력 결과를 설명하고자 한다.

USE market_db;
SELECT * FROM member;

SELECT 문


SELECT 문에서 결과의 정렬을 위해 ORDER BY 절을 사용할 수 있다.

ORDER BY 절은 결과의 값이나 개수에 대해서는 영향을 미치지 않지만, 결과가 출력되는 순서를 조절한다.

아래의 코드는 회원테이블에서 키(height)가 작은 순서대로 정렬된 결과이다.

ORDER BY의 기본값은 ASC(오름차순)이고 DESC(내림차순)를 붙여주면 키가 큰 순서대로 정렬할 수 있다.

SELECT * FROM member ORDER BY height; -- 오름차순
SELECT * FROM member ORDER BY height DESC; -- 내림차순

ORDER BY


SELECT 문에서 결과의 개수를 제한하기 위해 LIMIT를 사용할 수 있다.

LIMIT는 출력하는 개수를 제한한다.

LIMIT 형식은 LIMIT 시작, 개수이고, 아래의 코드는 5번째부터 2건이라는 의미이다.

SELECT * FROM member LIMIT 5,2;

LIMIT


SELECT 문에서 중복된 데이터를 제거하기 위해 DISTINCT를 사용할 수 있다.

DISTINCT는 조회된 결과에서 중복된 데이터를 1개만 남긴다.

아래의 코드는 회원들의 연락처의 국번(phone1)을 중복된 데이터를 1개만 남긴 결과로 031, 055, 02, NULL, 061, 054 인 것을 확인할 수 있다.

SELECT DISTINCT phone1 FROM member;

DISTINCT

[선택 미션]


[선택 미션]Chapter 03-3 데이터 변경을 위한 SQL문에 해당하는 내용이다.

데이터베이스안에 테이블을 만들면 데이터를 입력(INSERT 문), 수정(UPDATE 문), 삭제(DELETE 문)를 할 수 있어야 한다.


테이블에 데이터를 입력할 때는 INSERT 문을 사용한다. 아래는 코드는 데이터 입력의 기본 형식이다.

INSERT INTO 테이블이름 [(열1, 열2, ...)] VALUES (값1, 값2, ...);
  • 테이블 이름 다음에 나오는 (열1, 열2, ...) 부분은 생략이 가능함
  • 열 이름을 생략할 경우 VALUES 다음에 나오는 (값1, 값2, ...) 부분의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수와 동일해야 함
  • 열의 순서를 바꿔서 입력하고 싶을 때는 열 이름과 값을 원하는 순서에 맞춰 써야 함

테이블에 있던 기존 데이터를 삭제할 때는 DELETE 문을 사용한다. 아래는 코드는 데이터 삭제의 기본 형식이다.

DELETE FROM 테이블이름 WHERE 조건;
  • DELETE 문은 행 단위로 삭제함

  • 1. 간단한 예로 마켓 데이터베이스(market_db)안에 회원 테이블(member)만 있다고 가정하고 데이터의 입력과 삭제를 진행해보자.

회원 테이블(member)

  • 2. 회원이 새로 가입하면 회원 테이블에 데이터의 입력이 필요하다.
    예를 들면, 열 순서대로 ('ASP', '에스파', 4, '서울', NULL, NULL, 164, '2020.11.17')인 데이터 입력

데이터 입력

  • 3. 회원이 탈퇴하면 회원 테이블에 데이터의 삭제가 필요하다.
    예를 들면, mem_name='에이핑크'인 데이터 삭제

데이터 삭제


이번 주는 지난주보다 조금 더 어려웠지만,, 유튜브 강의를 들으면서 실습을 진행했고, 코딩을 출력을 하면서 결과를 보니깐 이해가 잘 되었다.

2주차 미션 끝~! 이번 주도 혼공SQL과 함께 부지런하게 지낸 것 같다!

다음 주도 여기 블로그에서 또 만나요(._.)

 

'혼공학습단/혼자 공부하는 SQL' 카테고리의 글 목록

노력하는 데이터분석 전문가

so-kr.tistory.com


출처: 한빛미디어, 혼자 공부하는 SQL