비전공자의 MYSQL 기초 (1) - MYSQL WORKBENCH 다루기, 비전공자 코딩 공부(MAC)

 

안녕하세요 에이든입니다.

얼마전까지만 해도 윈도우 노트북을 쓰면서, Microsoft SQL Server를 사용하고 있었는데, 얼마전부터 맥으로 넘어와서 MYSQL을 사용하고 있습니다.

 

언어 프로그램을 바꾼데에는 2가지 이유가 있는데, 우선 Micorsoft SQL Server를 맥에 설치하는 과정이 복잡해 보였고, 평소 사용 점유율이 높은 MYSQL로 넘어가야겠다는 생각이 있었습니다. 때마침 듣던 강의 중 하나가 MYSQL을 설명해주는 강의가 있었고, 이 참에 넘어가야겠다 생각했습니다. (Microsoft SQL Server와 MYSQL의 사용 점유율에 대한 정보는 차이가 있을 수 있습니다.) 가장 사용 점유율이 높은 Oracle의 경우, 유료 프로그램이라 처음부터 제외했습니다.

 

 Microsoft SQL Server와 MYSQL을 비교하면, 전반적으로는 유사하지만, MYSQL이 조금 더 직관적인 느낌이었습니다.

 

SQL은 Structured Query Language의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)를 다룰 때 사용되는 언어이고, MYSQL은 그들 중 대표적인 오픈 소스 프로그램입니다. 이것에 대해 개인적으로 이해한 바를 토대로 조금 쉽게 설명해본다면, 여러 묶음의 데이터들이 서로 연관되고, 그 연관성 중에서 원하는 결과 값을 찾기 혹은 만들어 내기 위한 시스템이라고 보입니다.

 

여기에는 테이블과 데이터베이스라는 개념이 존재하는데, 테이블들이 여러 개 묶여있는 그룹을 데이터베이스라고 생각하면 됩니다. 테이블은 입력값들이 행과 열로 정리되어 있습니다.

 

'행/열 -> 테이블 -> 데이터베이스'

 

때문에 기본적으로 '데이터베이스'를 만들고, '테이블'을 만들어야 합니다.

 

MYSQL WORKBENCH 프로그램에서 + 버튼을 눌러줍니다.

 

모든 전제는 이미 MYSQL WORKBENCH가 설치되어 있다는 하에서 시작하겠습니다. MAC의 경우 Homebrew를 통해서 MYSQL 자체를 먼저 설치한 후, 이를 구동하는 프로그램인 MYSQL WORKBENCH를 설치해주면 됩니다. Terminal을 통해서 MYSQL을 구동할 수도 있지만, 저 같은 초보자들에게는 너무 헷갈리므로, WORKBENCH로 진행하겠습니다.

 

그 후 Connection name을 지정해주시면 됩니다.

WORKBENCH 구동 후, 새로운 연결을 만들어줍니다. 이 때 지금 쓰는 OS가 맥이어서 그런지, MYSQL과 Microsoft SQL과의 차이인지 정확하지는 않지만, 연결이 SQL Server에 비해 좀 더 직관적이고 간편했습니다.

 

데이터베이스 생성문을 실행하기 이전

자 우선, MYSQL을 시작하려면, 데이터베이스가 있어야 합니다. 데이터베이스는 앞서 이야기했다시피, 테이블들의 묶음인데요, 테이블을 만들기 위해서는 데이터베이스가 먼저 존재해야 합니다. 지금 좌측에 보이는 Employees는 제가 기존에 공부할 때 사용하던 Database인데요, 지금 제가 적어놓은 작업문을 먼저 보겠습니다.

 

Create database Test_Database;

 

 여기서 Create는 차후에 데이터베이스 뿐아니라 테이블, Stored Procedure, Function 등 다양한 곳에 쓰이는데, 만든다는 의미 정도로 생각하시면 됩니다. 저희는 지금 데이터베이스를 만들기 때문에 'Create Database'라고 만들어줍니다.

 

 그리고 'Test_Database'부분은 '데이터베이스의 이름'인데요, 여기에는 원하는 대로 작성해주시면 됩니다. 다만, 해당 데이터베이스 혹은 해당 코드를 혼자만 볼 것도 아니고, 만들어 놓고 나중에 다시 봐야할 수도 있으니 되도록 직관적인 이름을 사용하는 것이 좋습니다.

 

 그리고 여기서 중요한 것 중 하나가 ';'의 존재인데, 세미콜론은 SQL Server로 작업할 땐 필요 없었지만, MYSQL에서는 한 작업문이 끝났음을 알려주는 중요한 지표입니다. 그래서 만약 문장 끝에 붙이지 않으면, 에러가 발생하니 주의하시길 바랍니다.

 

Create 실행 후 Test_Database가 생성된 것을 확인할 수 있다.

작업문을 실행하고 나면, 좌측에 Test_Database가 생겨난 것을 알 수 있습니다. 이제 데이터베이스 만들기에 성공한 것인데요, 그럼 이제 테이블을 만들어볼까요?

 

아직 테이블 만들기 전이라, Test_Database 아래 Tables에 아무런 Table이 없습니다.

앞서 이야기한 create 문법을 사용하며, 이번에는 데이터베이스가 아닌 테이블을 만들어 줍니다.

 

create table [table_name] (

열_이름 / 해당 열 데이터 타입 / 필수 여부

);

 

정도로 구성되어 있다고 생각하면 쉽습니다. 테이블을 만들 때 열(Column)을 생성할 수가 있는데, 이 때 해당 열에 들어갈 데이터의 타입과 'Null'여부를 정해주어야 합니다. 'Null' 여부란, 이 열이 비어도 되는 가(Null), 비면 안 되는가(Not Null)를 뜻하는 것입니다. 만약 Not Null인데 데이터가 들어가지 않으면, 에러가 납니다.

 

그런데 작업문을 실행하자 에러가 납니ㅏ.

문법을 정상적으로 작성했고, 세미콜론도 잘 붙였는데 에러가 났습니다.

Response를 읽어보니, 'No Database Selected'라고 나와있습니다. 왜냐하면, 테이블을 생성할 데이터베이스를 미리 선정해줘야 하기 때문인데요, 이는 'Use' 문법을 통해 생성합니다.

 

USE 를 통해서 데이터베이스를 선택해줍니다.

USE 문법을 통해서 해당 데이터베이스를 사용한다는 명령을 해줘야 합니다.

명령문이 정상적으로 작동했습니다.

명령문이 정상적으로 작동한 경우에는 'Action Output'란에 초록색으로 표시가 되고, Response부분에 에러코드도 나오지 않습니다.

 

자, 그럼 이제 테이블 생성문을 다시 실행해볼게요.

에러 없이 실행되었습니다.

이번에는 테이블 생성 명령문이 정상적으로 작동한 모습을 볼 수 있습니다.

 

테이블과 열(Column)들이 정상적으로 생성되었습니다.

지금 보면, 아까는 없던 Table이 생긴 것을 알 수 있습니다. 또한 열(Column)도 문제 없이 저희가 만든 이름으로 생성되었음을 알 수 있습니다.

 

다음 포스팅에서는 이 곳에 데이터를 넣는 방법.

기본적인 출력에 대해서 배워보겠습니다.

 

감사합니다.

 

 

'Master of Business Analytics > SQL' 카테고리의 다른 글

django 시작하기  (0) 2020.03.06
파이썬(기초) 공부를 시작했습니다.  (0) 2020.02.16

안녕하세요 남편입니다.

 

요즘 저는 django에 대해 공부하고 있습니다. django는 '장고'라고도 하며, 웹 프레임워크라고 합니다.

 

그런데 코딩 초보인 저는 '웹 프레임워크'가 무엇인지 궁금해지기 시작했습니다.

 

'웹 프레임워크는 동적인 웹 페이지나 웹 애플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다.' - 위키백과

 

자....

 

문과인 저로서는 동적이 뭔지 정적이 뭔지 부터가 어려웠습니다.

 

그래서 우연히 이 둘의 차이를 잘 설명해놓은 글을 찾았는데 요약하자면 이렇습니다.

'정적인' 웹페이지는 클라이언트가 특정 html을 요청하면, 이미 만들어져 있는 페이지가 나타나는 것입니다. 즉, 클라이언트가 어떤 요청을 넣더라도, 정해진 결과값을 돌려받는 셈입니다.

 

반면 '동적인' 웹페이지는 클라이언트의 요청에 따라 페이지에 나타나는 결과값이 달라지는 것을 뜻합니다. 즉, 클라이언트(이용자)의 요청에 따라서 결과값이 달라지면 동적, 요청과 무관하면 정적이라는 뜻이 됩니다.

 

그렇다면, 요청값에 따라 결과값이 달라지는 페이지를 만들기 위해 프레임워크가 필요하다는 뜻이되고, 그것이 django라는 뜻이 됩니다.

 

저는 django의 기반이되는 '파이썬'조차 아직 초급단계입니다. 이제서야 겨우 몇 개의 메소드와 함수를 배우고 있습니다. 하지만 django를 통해서 페이지를 연습하고, 제가 짜놓은 코드들이 실현되는 모습을 보는 일은 정말 설레는 일입니다.

 

저는 유튜브 '김왼손의 미운코딩새끼'를 통해 파이썬 기초 강좌를 다졌고, 지금은 '인프런'의 django 입문 강의를 보며 공부하고 있습니다. 퇴근하고 곧장 컴퓨터를 켜서 공부하는 일은 만만하지는 않은 일이지만 정말 보람찬 일이라고 생각합니다.

 

'인프런' 인강 사이트

 

django를 구글에 검색해보았습니다.

django를 구글에 검색하면, django를 설치할 수 있는 사이트가 나옵니다.

 

장고 설치 과정을 설명해줍니다.

해당 사이트에 들어가면 django를 설치하는 과정을 보여줍니다. 우선 장고는 파이썬 기반 웹 프레임워크이기 때문에 파이썬이 설치되어 있어야 합니다. 그리고 'PyCharm'을 사용해서 django를 구현합니다.

 

사실 여기서 'PyCharm'에 대해 이해가 조금 부족한 편이라고 생각합니다. '파이썬'이 프로그래밍 언어이고, '장고'가 웹 프레임워크라고 한다면, '파이참'은 무슨 역할을 하는 것일까요? 아직 학습이 부족한 탓에 완전히 이해하지는 못했지만, '툴(Tool)'이라고만 생각하고 있습니다. 언어를 통해 어떤 작업을 하기 위해 사용하는 '도구'라는 것입니다. '도구'는 '파이참' 말고, 'Visual Studio Code'라는 툴도 있습니다. 저는 유튜브를 통해 처음 배울 때는 visual studio code를 깔았으나, '인프런' 강의에서 파이참을 이용하기에 파이참을 다시 깔았습니다.

 

파이참을 구동시킨 화면입니다.

아, 그런데 장고를 구현하기 위해서는 '가상환경'이라는 것을 먼저 구성해야 합니다. 이 가상환경이라는 것은 일종의 개발환경입니다. 작업을 하기 위한 작업실이라고 볼 수 있는데, 가상환경이 없으면 여러 코드를 테스트하기가 어렵습니다. 예를 들어 A라는 가상환경에서 작업을 하다가, 갑자기 가상환경 밖에서 작업을 하려고 하면 작업이 되지 않습니다. 작업실 바깥이기 때문입니다. 또한 A라는 가상환경과 B라는 가상환경을 둘 다 켜놓는다면, 작업이 실행이 되지 않습니다. 왜냐하면 한 페이지를 두고 두 개의 작업실이 작업을 하기 때문입니다.

 

다만, 위의 내용은 '제가 이해한 내용을 바탕으로 한 것'입니다. 저게 정확한 이해와 설명은 아닙니다.

 

코딩의 길은 쉽지만은 않은 것 같습니다.

안녕하세요 남편입니다.

 

저는 이번에 파이썬 공부를 새로 시작했습니다.

본래 프로그래밍쪽에 관심은 많았지만, 도전하기를 망설이고 있었습니다.

하지만, 언제까지 고민만 할 수 없다는 생각에 언어를 배우기로 마음먹었고, 접근하기 쉬운편이라는 파이썬을 시작하게 되었습니다.

 

본래 C++언어를 잠깐 했었는데, 중학생까지 했던거라 기억도 안나지만 초보 수준에 머물러 있었습니다.

그래도 알고리즘에 대한 느낌은 알고 있고, 언어에 대한 거부감은 적어서 열심히 해보려고 합니다.

 

우선 저는 '프로그래머스'라는 사이트를 이욯하고 있습니다.

출처 : 프로그래머스 사이트

기업들이 개발자 채용을 위해 코딩테스트를 이곳을 통해 열기도 하고, 저처럼 프로그래밍에 입문하려는 사람들을 위해 강의도 개설해놓고 있습니다.

 

무엇보다 제가 풀어본 문제를 채점하고 제출해볼 수 있다는 것이 장점이라고 생각합니다.

 

스택/큐에대한 알고리즘을 찾아보다 우연히 발견한 사이트라 스택/큐 코딩테스트 연습문제부터 풀어보고 있습니다.

'프린터 순서'라는 문제입니다

저는 파이썬(3.8.2) 버전을 사용중이며, 여기에 풀어본 풀이를 프로그래머스 사이트에 입력해서 채점해보는 방식으로 공부하고 있습니다.

 

앞으로 제가 공부하고 있는 내용들을, 제가 생각한 풀이법과 다른 이들이 풀어본 풀이법을 비교해보고 새로 배운 것들을 적어보도록 하겠습니다.

+ Recent posts