상세 컨텐츠

본문 제목

SQL 기초 DAY 1

오늘의 SQL

by Good to Know 2024. 1. 18. 20:36

본문

728x90
반응형

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이 현대로 지정되면 저희 코드는 문제 없이 잘 작성된 것입니다!!

 

여기까지 고생 많으셨고 또 다른 내용으로 찾아올게요 :)

728x90
반응형