🔗SQL 문이 뭔지 알아보자
🔗스팀 데이터를 발로 뽑아보자 (개복치용)
(위의 링크를 보시고 보면 두통에 약간 도움이 됩니다)
전 브라우저로 파이어폭스를 사용합니다
제가 여우를 좋아하는 이유가 이것때문이죠
파폭을 사용하는 이유는 부가기능때문입니다
크롬 역시 뛰어난 부가기능들이 많지만
파폭에 비해서 없는게 아직 많습니다
당장 전 Drag&DropZones 저거 없으면 못삽니다
얘기가 또 샜는데
파폭의 부가기능은 좋지만 썩은 점도 많습니다
그 중 젤 썩은게
스팀쳇이 안된다는 것과 멘션 알림을 모조리 생깐다는 겁니다
그래서 파폭을 쓸때 누군가 저를 멘션해도 전 모릅니다
다만 최근 esteem을 폰에 깔아두니까
멘션 메세지가 오더군요
근데 폰도 썩었거든요-ㅅ-;; 멘션 알림 누르면
약 87%의 확률로 아무것도 안뜹니다
그리고 5% 확률로 폰이 뻗습니다ㅡ,.ㅡ;
여하튼 누군가 날 멘션했는데
볼 수 없다는 초조함에 잠을 설치긴 커녕
꿀잠을 잤는데 그때 신나는 꿈을 꿨습니다
SQL을 이용하여 덴 계정을 해킹하는 꿈이었습니다
그리고 일어나서 덴 계정에 들어가서 보니
멀쩡하더군요. 당연하지만.. 아 내 10000스팀..
한동안 덴 계정을 뒤적거리다가 의식의 흐름을
따라 SQL이 떠올랐습니다
'그걸로 해킹은 못하지만 누가 멘션했는지 다나오잖아?'
SQL 같은건 대학때 교양수업에서 가장 쉬워보이는
수업 'ㅇㅇ의 기초' 시리즈들을 찾다가 들어가서
들었을뿐인데 이렇게 이용할 줄이야..
참고로 수업은 패망했습니다
코드는 이렇습니다
select
author, permlink, body
from
Comments
WHERE
author<>'아이디' and
parent_author <> '아이디' and
body like '%아이디%' and
created >= DATEADD(day, -2, GETDATE())
어려워보이시죠? 하지만 생각보단 쉽습니다
중요한 건 세개뿐입니다
Select - 내가 고를래
From - 여기서
Where - 각종 조건
물건을 고를려면 먼저 물건 종류를 봐야겠죠?
그런 물건들이 고루고루 놓인
이 가판대를 테이블이라고 부릅니다
과일 테이블이면 과일에 관련된 것을 파는 거죠
프로그래머들은 모두 단기기억상실증에 걸려있기에
뭔가 메모하거나 이름을 지을때 절대 대충 짓지 않습니다
안그러면 며칠후
한국드라마를 찍게 됩니다
자기가 지어놓고는 그 이름이 뭘 뜻하는지 까먹어버리죠
그럼 테이블 이름을 한번 봅시다
저게 영어라 글치.. 지내들도 최대한 알기 쉽게 쓴겁니다
한글로 따지면
계정테이블, 블록테이블, 포스팅테이블 이렇습니다
그럼 누군가가 나를 언급한건 어디에 들어있을까요
포스팅 테이블에 있겠죠
그게 Comments 테이블입니다
왜 posting 이 아니냐구요? 전 영어 몰라요.. 묻지마용..ㅠㅠ
여튼 Comments 테이블을 선택하고
옆의 탭을 보면..
요렇게 그 테이블이 취급하는 항목들을 볼 수 있습니다
우리가 원하는건 작가도 아니고, 제목도 아니죠
글의 몸통에 내 아이디를 썼느냐 마느냐입니다
그래서 body를 선택해서 뒤지면 됩니다
그러니
Select body From Comments
이런식으로 쓰게 됩니다
근데 양키애들이야 body 라 써놓으면
지들끼리 알지 모르지만
한국인은 이게 본문을 뜻하는지 제대로 알리가 없죠
그럴땐 직접 그 테이블이 뭘 담고 있는지 보면됩니다
테이블 옆에
데이터를 클릭하면
각 항목들이 뭘 담고 있는지를 볼 수 있죠
저길보면 body가 바로 글 내용을 뜻한다는 걸 알 수 있습니다
한데
Select body From Comments
이렇게 하면 Comments 테이블의 모든 글의 내용을
가져오게 됩니다
원하는 것만 가져와야죠
그래서 있는 것이 바로 Where ( 조건 ) 문입니다
자 그럼 제가 쓴 where 절을 한번 보겠습니다
WHERE
author<>'twinbraid' and
parent_author <> 'twinbraid' and
body like '%twinbraid%' and
created >= DATEADD(day, -2, GETDATE())
일단 기호를 알아보죠. 원시시대로 돌아가봅시다
> 크다, < 작다, = 같다, <> 같지 않아
아니 왜 ≠ 이 좋은 기호를 안쓸까요
답은 키보드에 없으니까. -ㅅ-;
저런 기호 찾기 짜증나니까
어떻게 키보드에 있는걸로 만들기로 한겁니다
tom - ^^?
joe - @-@
sammy - :0
tom - :D <-0->
bang - <>
tom - !?
joe - !?!
sammy - !!!
tom - 저걸루 하자
대충 이렇게 된겁니다
프로그래밍 세계에선 깊게 생각하면
손해인 것들이 상당수 있습니다..ㅡ,.ㅡ;
같지 않다 라는 걸 이제 쓸 수 있게 되었습니다
그럼
author <> 'twinbraid'
이것은?
사람에 따라 자신의 소개를
'안녕하세요~ twinbraid 입니당'
이런식으로 포스팅에 집어넣었다면 자기 게시물이
왕창뜨는겁니다..-ㅅ-;;
그러니 author 글쓴이중에 내 아이디로 된건 다 제외합니다
한마디로 내가 직접 쓴건 다 제외합니다
다음은
parent_author <> 'twinbraid'
이건.. 테이블을 요리조리 데이터랑 비교해보면 알겠지만
얘네들이 댓글은 child, 그 댓글이 달린 원글은 parent 라고 합니다
즉, parent_author 라는 것은
이 댓글의 원글의 글쓴이 라는 것을 뜻합니다
자기글의 댓글도 제외하라는 거죠
자기글 댓글이야 금방 찾아볼 수 있으니까요
아.. 그리고 조건을 여러개 나열할려면
and나 or이 들어가야됩니다
그건 의미 그대로입니다
밥먹고 똥쌌다.. 이러면 반드시 밥 먹은것과 똥싼것을
모조리 포함하는 것을 찾아야되고
밥먹거나 똥쌌다.. 이러면 밥만 먹은거나 똥만 싼것,
밥똥 다 먹은것도 넣어줍니다
요담이 중요한데
body like '%twinbraid%'
'몸은 트윈브레이드를 좋아해'
이런 변태적 조건이 아니고요
몸은 솔직하군.. ㅎㅎ
마돈나의 유명한 곡 (Like a virgin)의 그 라이크입니다
body 내용중에 twinbraid가 들어가긴 가야되는데
그걸 body = 'twinbraid'
이러면 본문에 딸랑 twinbraid 이러고 끝인 글이 됩니다
무슨 도전장도 아니고..
그러니 body의 수많은 문장중에서 twinbraid도
들어가 있는거..
body에 대충 뭐뭐처럼 되어 있는거 찾아줘 라는 거죠
%아이디% 인 것은 아이디 앞뒤로 다른 문장들이 있다
라는 것을 표현한 것입니다
깊게 생각하지 마는거 아시죵? ^^
마지막이
created >= DATEADD(day, -2, GETDATE())
created는 알겠죠. 만들어진 날짜입니다
DATEADD는 이전에 얘기한 해시함수 같은 함수입니다
자판기 같은거죠
함수 이름도 잘 지어야됩니다. 알아보기 쉽게
저것도 알아보기 쉽지 않나요? 날짜를 더한다
너무 깊게 생각하진 말고요.. GETDATE로 오늘 날짜를
가져오고 그 날짜에다가 -2를 더해준다는 의미 입니다
-2를 더해줬으니까 이틀전이란 뜻이죠
그럼 아래와 같이 됩니다
created >= 이틀전
여기서 또 >= 이게 뭔가요 싶으시면 키보드를
쳐다봅시다. ≥ 있나요?
없죠? 그런겁니다..
만든 날짜가 이틀전보다 크거나 같은거
자 이제 다 왔습니다
select
author, permlink, body
from
Comments
WHERE
author<>'아이디' and
parent_author <> '아이디' and
body like '%아이디%' and
created >= DATEADD(day, -2, GETDATE())
select
항목을 선택할께요
author 작가, permlink 글주소, body 글내용
어느 테이블에 있는?
comments 테이블에 있는..
조건은?
author 작가가 내 아이디가 아니고, 즉 내가 아니고..
내 글에 단 댓글도 아닌거..
그리고 글 내용에 내 아이디가 들어가 있는
이틀전부터 지금까지의 글
이 질문을 날려주면..
요렇게 답변이 오게 됩니다
정보를 따라 글을 찾아가면 되는데
좀 귀찬긴 합니다
아이디랑 글 주소 복사해서
https://steemit.com/@ianereht/re-acceptkim-event-600-9-20170709t160011701z
위와 같은 형식으로 만들어서 주소창에 넣으면
이렇게 멘션이 아니더라도 제가 언급된 글과 댓글은
다 스토킹이 가능합니다
그리고 저기에 자기 아이디 말고 찾고 싶은 내용을
입력하면 완전 스토커가 될 수 있습니다
무섭죵? ㅎㅎ
https://mentions.steemdata.com/
뭐 이런 맨션찾는 툴도 있긴한데
성능은 별로더군요.
SQL이 지금은 어렵더라도 쉽게
Select 항목 from 테이블 where 조건
이렇게 기본적으로 조건 한개정도만 넣어서
연습하다보면 이제 찾고 싶은걸 자유자재로 찾는 날이
분명 올 것입니다 +_+
물론 이글 말미쯤에는 개복치 여러분들중 극소수만
살아있을테지만.. 언젠간 읽어서 도움될 날이 올지도
모르죠. 이바닥이 그렇습니다 ㅎㅎ