[프로그래머스 SQL] 동물데이터 사용해보기 (SQL 쉽고 재밌다!)

파이톨치·2022년 1월 21일
2

SQL

오늘은 SQL에 대해 간단하게 공부를 해보고 SQL에 관련된 문제를 풀어봤다.
처음에 SQL에 대해 공부를 시작하려고 했을 때 굉장히 어려울 것 같은 느낌을 받았다.
데이터를 저장하고 관리하는 언어라니... 하면서 시니어 개발자분들이 쓸 것만 같은 느낌을 받았다.
생활코딩님 사이트와 니꼴라스님 유튜브에서 SQL이 무엇인지 간단하게 이해했다. 근데 막상 코드를 보니까 그다니 안 어렵네? 하는 생각이 들었다. 실제로 써보니까 진입 난이도가 높지 않았다. 내가 아직 깊게 공부하지 않아서 그런 것일수도 있지만 굉장히 쉽고 재밌게 사용했다.

간단하게 사용법을 익힌 후에 프로그래머스에 가서 SQL 1단계 문제들을 전부 풀어보았다. SQL 1단계는 정말 쉽기 때문에 프로그래머스에서도 포인트를 주지 않았다.

문제

개인적으로 제일 흥미로웠던 문제를 한번 보자.

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

데이터가 다음과 같이 구성되어 있을 때 지금 이름의 NULLABLE을 보면 값이 참인 것을 알 수가 있다. 때문에 NAME은 NULL값이 있다는 것이다. 이것을 이용한 문제이다. 만약 이름이 NULL이면 ANIMAL_ID를 출력하는 프로그램을 만들어주는 것이다. ID는 오름차순으로 정렬되어야 한다고 한다.
테이블은 ANIMAL_INS이다.

코드

MySQL문법은 간단하다. 내가 출력하고 싶은 열을 선택하는 것은

SELECT 열 이름

이런식으로 사용한다. 지금 내가 ANIMAL_ID를 보고 싶기 때문에 나는

SELECT ANIMAL_ID

이렇게 해주어야 한다.

다음으로 내가 어떤 테이블에서 데이터를 가져와야 할지 선택해야 한다.
파이썬을 공부하는 입장에서 FROM이 먼저와야 할 것 같은데 SELECT를 먼저 써서 조금 어색하다? 신기하다? 라는 느낌을 받았다.
본론으로 돌아와서 테이블은 ANIMAL_INS 이니까

FROM ANIMAL_INS 

다음과 같이 넣어주면 저 테이블에서 값을 선택하는 것이다.

이제 우리는 조건을 하나 씩 넣어주고 싶다.
다른 언어들에서 IF문과 비슷한 역할을 하는 것이 WHERE이다.
데이터가 어디있는지 조건을 넣어주기 때문에 언어를 만든 사람이 WHERE이라는 이름을 지어준 것 같다.

WHERE NAME IS NULL

다음과 같이 사용해주면 된다. 파이썬이랑 비슷하게 굉장히 영어 같이 쓸 수 있다. 나도 처음에 혹시 이런식으로 되나 하고 해봤는데 어? 되네? 하면서 신기해했다. IS라는 문법이 있다는 것이 신기했다. == 대신에 IS를 쓰는 것 같다.

다음으로 순서를 넣어주어야 한다. 다른 문법이었으면 SORTING을 따로 해주어야 하기 때문에 처음 배울 때 귀찮을 수 있다. 처음 배울 때는 버블 소팅이나 인서트 소팅을 쓰면서 공부해야하기 때문이다. 하지만 SQL은 소팅을 하는게 당연하다는 듯이 이미 이런 명령어를 가지고 있다. 간단하다.

ORDER BY ANIMAL_ID ASC

굉장히 물 흐르듯이 이해할 수 있다. ASC라는 단어 빼고 말이다. ASC는 ascending power의 앞글자를 따온 것이다. 이것초자 그냥 오름차순의 앞글자이다. 굉장히 쉽고 간단하지만 강력한 언어라는 생각이 들었다.

profile
안알랴줌

0개의 댓글