[SQL] 내멋대로 강좌. 비개발자도 스티밋 통계를 뽑을 때까지 - 2편 - 백문이불여일견 일단 깔고 봅시다.

in #database7 years ago (edited)

실력이 일천한 제가 아는 내에서 SQL 강좌를 한편씩 올리려고 합니다. 비 IT인들도 따라할수 있는 수준으로 진행하려고 노력할 예정이며 최종 목표는 따라하시는 분이 steemsql을 통해 여러가지 통계를 뽑는 수준이 되는 것입니다.

지난 회차를 안보신 분은 지난 회차를 먼저 봐주시길 바랍니다.

1편 - 데이터베이스 개념편

제 개발 스타일은 책과 설명을 나중에 보는 것입니다. 백문이불여일타를 실천하며 무조건 실행을 시키고 봅니다. 개인적인 의견으론 손가락으로 절반을 익히고 머리로 절반을 익히는 것 같습니다.

제가 추천하는 데이터베이스 접속 툴은 mssql의개발사인 마소에서 제공하는 무료이면서 막강한 기능들을 가진 SQL Server Management Studio입니다. 짧게 SSMS라고 부릅니다. 오늘도 따라하기를 시작하기 전에 잠깐 잡설을 해보겠습니다. 강좌 편에 딱딱한 강좌만 넣기보다 잡설이 생각나면 한가지씩 넣어보겠습니다.

데이터베이스 종류

steemsql은 mssql 서비스를 하고 있습니다. mssql은 마이크로소프트사에서 만든 데이터베이스입니다. 마소에서 만들었기에 당연히 윈도우 서버에 설치해서 사용합니다.(최근 리눅스용도 나왔군요) 그래서 일반 유저도 굉장히 편리하게 설치해서 사용할 수 있고 역시 마소에서 만든 오피스와도 찰떡궁합이며 사용 편의성 역시 최상급이라 제가 좋아하는 DBMS(DataBase Management System)입니다. 이게 될까? 해서 해보면 되는 녀석입니다.

물론 오라클이라는 가장 비싸고 사용도 어렵지만 기능이 많고 성능이 막강한 엔터프라이즈급 DB가 있습니다만 가격이 정말 후덜덜합니다. 거품이 잔뜩 있다고 느껴집니다. 국내에서 점유율도 무지막지 하게 높아 영업도 배째라 식입니다. 허나 최근엔 티맥스 소프트의 티베로DB가 나타나며 조금씩 빼앗기니 긴장하는 모습이네요.

요새는 많은 기업이 비용을 낮추기 위해서 기간계나 정보계와 같은 코어 시스템이 아닌 라이트한 시스템의 경우 오라클을 버리고 저렴한 DBMS로 갈아타고 있습니다. 마소의 mssql이 소나타(몇천만원대로 기억합니다.)라면 오라클은 벤츠라고 할수 있겠습니다. (억 소리나는 가격입니다. )

하지만 멍청한 윈도우 서버에서 돌아가기 때문에 명성을 얻지 못하는 비운의 Mssql라고 생각합니다. 윈도우 서버의 불안정성은 악명이 높아 기업의 서버로 잘 사용되지 않거든요. 저도 초년생 때 윈도우 서버로 운영해본 경험이 있는데 정말 문제가 많이 발생하더군요. 갑자기 꺼지질 않나 멈추기도 하고요. 업데이트만 하면 기동이 안되는 등... 항상 업데이트를 할땐 기도를 하며 재기동을 했었던 기억이 납니다.

externalFile-29.gif

그렇다면 경차에 해당하는 DB도 있겠네요? 바로 MySql이라고 할수 있겠습니다만... 무료라 그런 인식이 있어서일까요? 국내에서는 부정적인 인식과 책임을 지기 싫어하는 전산 담당자의 마인드로 인해 잘 사용되지 않는 느낌입니다. 실제 성능 테스트를 수행해본 결과를 보면 MySql도 상당히 훌륭한 DB임을 알수 있습니다. 소형 프로젝트들은 MySql로도 상당히 많이 이루어집니다.

대표적으로 유명한 세놈을 언급해봤습니다. 엄청나게 다양한 종류의 DB가 있지만 우리에겐 중요하진 않습니다.

이제 잡설 그만하고 프로그램을 설치해볼까요? 다운을 받기 위해선 구글에서 ssms라고 검색을 하면 됩니다~!

SSMS(SQL Server Management Studio) 다운로드 링크


a로 다운로드를 받습니다. 다운이 완료되면 b를 눌러 설치를 진행해주세요. 설치과정에서는 건드릴게 없이 다음 다음만 쭉 누르시면 됩니다.


설치가 완료되었습니다. 이제 달에 처음가는 루이 암스트롱의 마음으로 실행부터 해보시죠~

  • DB 툴중에선 상당히 깔끔하고 정돈된 느낌의 UI를 자랑합니다.

이제 steemsql에 연결을 하는 과정이 있습니다. 파일(F) → 개체탐색기 연결(E)을 선택합니다.

  • 서버 이름에 : sql.steemsql.com
  • 로그인 id에 : steemit
  • 암호에 : steemit

모두 입력하시고 연결을 눌러보세요!

만약에 접속을 하셨는데 DBSteem이 안보이시는 분은 로그인 하단의 옵션을 누르신 후에 '연결속성' 부분에 가셔서 '서버 찾아보기'를 하셔서 DBSteem을 클릭해서 들어오시면 개체 탐색기에 DBSteem이 보이실 겁니다.


오...이제 사용자 정보를 구경하고 마쳐봅시다 ^^ 시작이 반이므로 조급해하지마십시오.

  • '새 쿼리'를 클릭하시거나 Ctrl + N을 누르세요.
  • 다음 문장을 입력 하신 후에 F5(실행)을 눌러보세요
select * from accounts where name = '[본인아이디]'

녹화_2017_10_21_21_43_54_426.gif

오늘 여기까지 따라오신 분들 대단히 수고 많으셨습니다. 결과 창에 나타나는 정보들을 유심히 보시면 컬럼 명만 보고도 어떤 데이터인지 유추가 가능하고도 남습니다. 그렇죠? 우린 슈퍼 스티미언들이니까요. 고생하셨으니...

images-2.jpg


ps. 댓글로 문의를 주신 @leesunmoo님의 데이터 요청에 대한 통계와 쿼리문을 남겨드립니다. 다른 분들도 댓글로 궁금하신 점을 남겨주시면 다음 포스팅이나 댓글을 통해 데이터와 쿼리를 전달해드리겠습니다.

관심 있으신 분은 SQL 을 입력해서 수행해봅시다.

-- promote 금액 월별 합계 리스트
SELECT 
    LEFT(CONVERT(VARCHAR, TIMESTAMP, 112), 6) AS TRANSFER_YYYYMM
    , COUNT(*) CNT
    , SUM( CASE WHEN AMOUNT_SYMBOL = 'STEEM' THEN AMOUNT ELSE 0 END ) AS PROMOTE_STEEM_AMOUNT
    , SUM( CASE WHEN AMOUNT_SYMBOL = 'SBD' THEN AMOUNT ELSE 0 END ) AS PROMOTE_SBD_AMOUNT
FROM DBO.TXTRANSFERS
WHERE [TO] = 'NULL'
GROUP BY LEFT(CONVERT(VARCHAR, TIMESTAMP, 112) , 6)
ORDER BY LEFT(CONVERT(VARCHAR, TIMESTAMP, 112) , 6) ASC

녹화_2017_10_21_23_14_06_330.gif



과제. steemsql의 테이블 리스트는 여기에 있습니다. 다음과 같은 문장으로 결과를 보시고 어떤 테이블인지 유추해보시길 바랍니다.

SELECT TOP 10 * FROM [테이블명]

녹화_2017_10_21_22_29_53_125.gif

다음 시간에는 제가 유추한 테이블명과 여러분이 유추한 테이블명이 일치하는지 맞춰보고 오늘 SQL 문장에 대한 설명을 좀더 자세히 쉽게 알아보도록 하겠습니다. 오늘은 실행만 해보며 손가락이 기억하는 과정입니다. 물론 지면관계, 시간관계, 피드백을 주시는 정도에 따라 내용은 바뀌어갑니다.

내용 중 어렵거나 이해가 안되시는 부분은 바로 질문 주시면 제가 열심히 공부해서 알려드리겠습니다. 감사합니다.

지난 회차 살펴보기

Sort:  

역시~!! @nhj12311 님 강의 잘 보고 갑니다~!!
백문의 불여일타~!! 저와 어쩜 이리고 씽크가...ㅎㅎㅎ
예전에 steemsql , steemdb 포스팅 한적이 있었는데,, 한층 업글 되가는 기분 입니다~!! 좋아요~

허헛... 무조건 쳐봐야죠... 암요. 특히나 저는 머리가 나쁜편이라 몸으로 익히는 스타일이랍니다. ㅎㅎ 감사합니다. 앞으로도... 잘 올려보겠습니다.

Cheer Up!

  • from Clean STEEM activity supporter

개발자들의 세계 또 멀지만, 그 세계를 동경하지만
여전히 낯선 세계~^^
어찌해도 수고로운 그래서 감사한 마음을 우선 보냅니다~^^

우선 응원에 감사 드립니다. 요새는 교과과정으로도 들어가는 추세이니 시간 나실때 관심을 가져보시는것도 좋습니다. ^^

유익한 포스팅 감사합니다.
프로그램 설치시 용량이 어느정도 되는지 알려주시면 감사하겠습니다.
SSD를 사용해서인지 항상 용량걱정이 앞서네요^^

840mb 정도 나오네요!
별도의 하드디스크에 설치하시면 좋을것 같은데 .. ^^
아니면 용량 작은 프로그램을 설치하시는것도 방법일것 같습니다~

과연 용량이 크군요..결국 하드를 하나 더 달아야 한다는 결론이네요.
감사합니다^^

나왔군요. 일단 리스팀으로 담아가고 찬찬히 정독해보겠습니다!! ㅎㅎ

시간 나실때 한번 해보세요 ^^;;

아~ 멋있고 유익한 강의이네요~
감사합니다~~~^^

한번 해보시는것도 괜찮으실거에요 ㅎㅎ

@nhj12311님 카톡 확인을 부탁드리겠습니다!!
포스팅은 조금 뒤에 정독하도록 하겠습니다!

Good morning ~!
NIce

윈도우에서 돌아가면 ios에서도 같이 돌아가나요?

원하시면 ios에서도 사용할수잇는 프로그램을 찾아 추천 드려보겠습니다!

감사합니다.
그렇게 해주신다면 너무 감사하지요

제가 맥북이 아직 없어;;; 설치메뉴얼은 못만들거 같고 검색해보니 SQLPro for MSSQL이 좋아보입니다~

https://itunes.apple.com/kr/app/sqlpro-for-mssql/id828466809?mt=12

ios에선 ssms가 안되고 검색해보니 sqlpro가 좋아보입니다. 저도 맥을 곧 사야겠습니다 ㅎ ㅎ

맥에서는 Valentina Studio 라는 프로그램이 좋습니다.
https://www.valentina-db.com/en/developer/database/download-valentina-database-adk

감사합니다 ^^

맥에서도 다운 받아도 되는 건가요? 보니까 윈도우 같은데요 ㅠㅠ

맥을 쓰시면 댓글중에 추천하는 프로그램을 설치해보세요. 제가 맥이 없어 조언해드리긴 힘드나 프로그램 설치는 어렵지 않으실거 같아요 ^^

네 ^^ 감사합니다. :)

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.030
BTC 66975.17
ETH 2594.33
USDT 1.00
SBD 2.67