SQL 공부를 시작했습니다
내가 배운 부분을 누군가에게 알려주면 더 기억에 남는다는다고 들었습니다
그냥 말로 들은건 아니고 실험을 해 봤는데 그렇다고 하더라구요
그래서 저도 해볼려고 합니다!!
자 오늘의 첫번째 SUBSTR + 별칭 입니다.
우선 SUBSTR은 내가 출력하고자 하는 행의 내용들이 길거나, 이 몇 글자로 분류를 할 수 있겠다 할 때 사용 가능합니다
(더 많은 기능이 있을 수 있지만, 제가 배운 내용은 아직은 여기 까지입니다)
자 우선우리의 DATABASE 안에 국내 주식 종목들이 들어 있다고 가정하겠습니다.
그래서 저는 아래 표와 같은 결과를 내고자 합니다
GROUP | STOCK NAME |
삼성 | 삼성전자 |
삼성 | 삼성SDI |
현대 | 현대차 |
현대 | 현대건설 |
SELECT SUBSTR(STOCK_NAME 1, 2) GROUP_NAME, STOCK NAME
1. SUBSTR(STOCK_NAME 1, 2) GROUP_NAME,
여기까지가 하나의 코드 입니다.
STOCK_NAME은 DATA BASE 안에 있는 행의 이름입니다.
이 행에는 삼성전자, 삼성SDI / 현대차, 현대건설 등 아주 많겠죠?
그래서 삼성/현대로 추출될 수 있도록 만드는 코드입니다
SUBSTR은 우리가 원하는 문자 수를 뽑아내게 하는 문법 단어라고 보시면 됩니다
(STOCK_NAME 1, 2) 어느 행에서 단어를 가져올지가 필요하겠죠? 숫자는 1~2번째 문자까지를 의미!
그리고 삼성/현대로 추출은 하면 더이상 종목이 아니니 저는 GROUP_NAME 으로 행 이름을 설정하고자 합니다
그래서 ) 뒤에는 내가 사용하고 싶은 행 이름을 적어 주시면 됩니다
첫번째 SELECT 문법을 썻습니다
그러면 이 데이터를 어디선가 가지고 와야하지 않을까요?
그래서 이번에 그 데이터베이스에 들어가서 가지고 올겁니다
FROM MYDATABASE.STOCK
이 코드를 해석하면 'MYDATABASE 안에 있는 STOCK 파일 데이터로부터' 입니다
이 부분은 쉽죠?? 근데 DATABASE 뒤에 꼭 .(점)을 찍어야 합니다!
자 그럼 이제 어느 행에서 작업을 할거냐 인데요
WHERE (STOCK_NAME LIKE '삼성%' OR STOCK_NAME LIKE '현대%')
원래 데이터의 행 이름은 STOCK_NAME 입니다
이제 거기에 아까 처음 표에서 본 것처럼 삼성전자,SID 등 많겠죠?
그걸 이제 삼성 / 현대로 짤라줘야 합니다
그러기 위해서는 행 이름 뒤에 LIKE를 붙입니다
그리고 삼성% 이거는 맨 앞에 삼성이 나오고 뒤에 아무글자나 와도 상관이 없다 인데요
즉 앞에 삼성이라는 두 글자가 있으면 싹다 가지고 와라 입니다
또한 여기서 중요한 것이 있습니다
LIKE '삼성%' OR LIKE '현대%'라고 썼는데 여기서 OR이 중요합니다.
OR을 씀으로써 종목 중에서 삼성하고 현대 모두를 가지고 올 수 있는 것입니다.
만약 AND를 쓰게 된다면 종목 명이 현대 + 삼성이 모두 들어간 이름을 가지고 오라는 것인데
우리가 알고 있는 종목명에는 그런 종목이 없죠??
그래서 두 종목을 모두 보고 싶기 때문에 OR를 쓴 점 기억해 주세요!
자 이제 출력 전 마지막 코드입니다!!
ORDER BY STOCK_NM;
이 코드는 STOCK_NM 내림 차순으로 정렬해서 TABLE을 보여줘라! 입니다
그리고 출력물을 얻기 위해 코드를 끝내기 위해서는 ; 이 세미콜론을 꼭 적어주셔야
내가 원하는 코드를 다 썼으니 이 하나의 코드를 보고 내가 원하는 것을 출력해라!! 이니
세미콜론 꼭!! 마지막에 한번만 써 주세요~
자 그럼 이제 실제 SQL에서 출력되는 결과물입니다
자 그럼 우리가 지정했던 GROUP_NAME으로 행 이름 지정되 었고
삼성 그룹에 속한 종목 명 들의 GROUP_NAME은 삼성
현대차그룹에 속한 종목 명들은 GROUP_NAME이 현대로 지정되면 저희 코드는 문제 없이 잘 작성된 것입니다!!
여기까지 고생 많으셨고 또 다른 내용으로 찾아올게요 :)