개요

데이터베이스를 효율적으로 다루기 위해서는 SQL문의 이해와 활용이 필수입니다! 그 중에서도 SELECT 문은 데이터를 조회하고 원하는 정보를 가져오는 데에 사용되며, 데이터베이스의 가장 기본적인 기능 중 하나입니다. 이번 포스팅에서는 프로그래머스 SQL 고득점 Kit문제와 함께 SELECT 문에 대해 자세히 알아보고자 합니다.

진행에 앞서 SELECT 문의 가장 기본이 되는 형식입니다. 잘 기억 해주세요 :)

SELECT [열] FROM [테이블] WHERE [조건]

문제

FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.*

우선 가장 기본이 되는 명령어 부터 입력 해볼까요?

SELECT * FROM FOOD_FACTORY

참고로 *은 모든 것 을 의미합니다. 여기서는 [열] 에 해당하는 위치에 *이 있으니 모든 열을 다 출력하라는 의미가 되겠네요! 다시 말해 위 명령문은 FOOD_FACTORY 테이블에 있는 모든 열을 선택해줘~” 라는 의미가 됩니다.

FACTORY_ID	FACTORY_NAME	ADDRESS	TLNO
FT19980001	()맛있는라면	경기도 동두천시 강변로850번길 120	031-231-1032
FT19980002	()맛있는기름	충청북도 음성군 생극면 음성로 1506-275	043-641-9900
FT19980003	()맛있는라면	강원도 정선군 남면 칠현로 679	033-431-3122
FT19980004	()맛있는기름	경기도 평택시 포승읍 포승공단순환로 245	031-651-2410
FT20000001	()맛있는소스	경기도 안양시 동안구 흥안대로 405	031-221-7211
FT20000002	()맛있는통조림	경기도 파주시 파주읍 파발로 65	031-641-1900
FT20010001	()맛있는소스	경상북도 구미시 1공단로758-11	054-231-2121
FT20010002	()맛있는통조림	전라남도 영암군 미암면 곤미현로 1336	061-341-5210
FT20020001	()맛있는차	충청남도 논산시 은진면 관촉로58번길 138	041-241-1420
FT20020002	()맛있는김치	경기도 평택시 포승읍 포승공단로 2	031-541-5400
FT20040001	()맛있는음료	경기도 평택시 안중읍 서해로 1427	031-722-2430
FT20040002	()맛있는국	경상남도 거제시 사등면 거제대로 5382	055-351-1240
FT20070001	()맛있는라면	경상북도 경산시 하양읍 대경로 541	054-423-3122
FT20070002	()맛있는기름	대전광역시 대덕구 신일서로67번길 57	042-121-2410
FT20070009	()맛있는소스	부산광역시 영도구 봉래길 113	051-551-7721
FT20080002	()맛있는통조림	부산광역시 사하구 다대로170번길	051-841-5810
FT20080003	()맛있는차	전라남도 무안군 삼향읍 왕산로 91	061-221-9920
FT20090001	()맛있는밥	경기도 안성시 공단229	031-761-1359
FT20090002	()맛있는과자	부산광역시 강서구 녹산산단26173번길 48	051-821-4259
FT20100001	()맛있는차	전라남도 장성군 서삼면 장산리 233-1번지	061-661-1420
FT20100002	()맛있는김치	충청남도 아산시 탕정면 탕정면로 485	041-241-5421
FT20100003	()맛있는음료	강원도 원주시 문막읍 문막공단길 154	033-232-7630
FT20100004	()맛있는국	강원도 평창군 봉평면 진조길 227-35	033-323-6640
FT20110001	()맛있는밥	경기도 화성시 팔탄면 가재리 34번지	031-661-1532
FT20110002	()맛있는과자	광주광역시 북구 하서로 222	062-211-7759
FT20150004	()맛있는김치	전라북도 익산시 석암로731-17	063-981-5421
FT20150005	()맛있는음료	전라북도 익산시 석암로1199	063-932-1672
FT20160005	()맛있는국	전라남도 광양시 옥곡면 신금산단14	061-923-6940
FT20180005	()맛있는밥	충청남도 천안시 서북구 성거읍 천흥867	041-861-1432
FT20200005	()맛있는과자	충청북도 청주시 흥덕구 공단로 48	043-911-5759

그렇다면 강원도에 위치한 식품공장은 어떻게 출력할까요? 바로 WHERE 뒤 [조건]을 이용해야 합니다.

SELECT * from FOOD_FACTORY WHERE ADDRESS LIKE '%강원도%’

LIKE 연산자는 문자열의 패턴을 검색하는데 사용됩니다. 또한 여기서 사용한 %는 모든 문자를 의미하는데요 예를 들어 %강원도라면 어떤 문자가 오던지 끝이 강원도로 끝나야 하고, 강원도%라면 어떤 문자가 오던지 시작이 강원도여야 합니다.

따라서 %강원도% 는 문자열에 강원도라는 단어가 포함되어 있다면 다 조건에 부합하다고 생각하면 됩니다.

다음 명령어를 사용하면 출력결과는 다음과 같습니다.

FT19980003	()맛있는라면	강원도 정선군 남면 칠현로 679	033-431-3122
FT20100003	()맛있는음료	강원도 원주시 문막읍 문막공단길 154	033-232-7630
FT20100004	()맛있는국	강원도 평창군 봉평면 진조길 227-35	033-323-6640

문제에서는 강원도 말고도 다른 조건이 있는데요, 바로 공장 ID, 공장 이름, 주소 조회하며, ID를 기준으로 오름차순 정렬을 해야합니다.

이제는 * 을 건드려줄 차례인데요, SELECT [열] 에 해당하는 자리에 * (모든 것) 을 넣는게 아니라 조회하고 싶은 열만 추가해주어야 합니다. 추가적으로 정렬은 ORDER BY [열][ASC|DESC] 로 해결할 수 있습니다.

최종 명령어는 다음과 같습니다.

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE '%강원도%' ORDER BY FACTORY_ID ASC;

그러면 다음과 같은 출력 결과가 생성됩니다.

profile
배움이 즐거워요 ! 함께 그 즐거움을 나눴으면 좋겠습니다 :)

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

많은 도움이 되었습니다, 감사합니다.

답글 달기
Powered by GraphCDN, the GraphQL CDN