본문 바로가기

DataBase/MySQL

MySQL 1편 - MySQL 구조와 시작

1. MySQL에 대한 간단 개념


1.1. MySQL이란

MySQL은 ORACLE에서 출시된 RDBMS(Relational DataBase Management System)으로써 관계형 데이터베이스 관리 시스템이다. 그럼 여기서 관계형 데이터베이스란 무엇일까? 관계형 데이터베이스란 데이터들이 테이블로 나타나지며 key값과 value값의 관계로 나타나는 종류의 데이터베이스를 뜻한다. 우리가 흔히 사용하는 마이크로소프트의 엑셀이 관계형 데이터베이스를 표현하는 가장 좋은 예이다.

1.2. MySQL의 구조

MySQL의 구조는 데이터베이스 서버 -> 스키마 -> 테이블의 순서로 정의할 수 있을 것 같다. 다시말해서 데이터베이스 서버는 여러개의 스키마(schema)=데이터베이스(database)를 담고 있고 schema는 여러개의 테이블을 담고 있다.

그럼 본격적으로 MySQL을 시작해보자.

2. MySQL 시작하기


2.1 데이터베이스 만들기

앞서 말한것처럼 데이터베이스 서버는 다수의 데이터베이스들을 포함하고 있다. 이러한 데이터베이스들은 스키마(schema)라고도 불리우며 데이터 저장을 위한 테이블들을 만들기 위해서는 이들을 담을 데이터베이스를 먼저 만들어주어야한다.

데이터베이스는 다음의 명령어를 통해 만들수 있다.

CREATE DATABASE {데이터베이스명};

 

예를 들어 myFirstDB라는 데이터베이스를 만든다고 하면 다음과 같이 명령어를 입력하면 된다.

CREATE DATABASE myFirstDB;

 

사실 SQL 자체에서는 대문자 소문자 구분을 하지 않는다. 그래서 create database myfirstdbcreate DATABASE myfirstDB 전부 동일하게 인식된다. 하지만 공식 문서에서 대부분의 명령어는 대문자로 설명되어있으니 이러한 convention에 따르는 것을 추천한다. 아무튼 이제 우리의 데이터를 저장할 테이블을 품어줄 데이터베이스 하나를 만들었다. 여기서 주의할점! 테이블을 만들기전 MySQL에게 이 데이터베이스를 사용할거요~~ 라고 전달해줘야한다. 다음의 명령어를 통해 MySQL에게 이를 전달해줄 수 있다.


이제 준비가 끝났다. 테이블을 만들어보자.

2.2 테이블 만들기

테이블을 만들기 위해서는 데이터베이스를 만들때와 비슷하다. 하지만 다른점이 있다면 테이블을 만들때에는 무조건 한개의 column을 선언해주어야한다. 다음의 코드를 보자.

CREATE TABLE myFirstTable(title VARCHAR(50) NOT NULL);

 

위의 명령어는 myFirstTable이란 테이블을 만들고 그 테이블에 최대 50 bytes 입력이 가능하고 공란이 불가능한 title이란 이름의 컬럼을 만들어달라는 명령어이다. 이 열에 대한 세팅은 괄호안에서 볼수 있다. 하나 하나씩 자세히 들여다보면, VARCHAR은 문자열 자료를 뜻하고 (50)은 최대크기를 나타낸다. NOT NULL은 NULL이 허용안된다는, 즉 테이블에 입력할때 title은 공백으로 입력될 수 없다는 설정을 해준것이다.

테이블을 만들면서 하나의 컬럼만 선언할 수 있는 것은 아니다. 다음과 같이 여러개의 컬럼을 만들어줄수도 있다.

CREATE TABLE myFirstTable(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(50) NOT NULL, content VARCHAR(50) NOT NULL);

 

위의 명령어를 실행하면 myFirstTable을 생성하는 동시의 id, title, content라는 컬럼을 생성하였다. 여기서 이전의 명령어와 다른점은 id 뒤에 int로 바뀌었다는 점, 그리고 AUTO_INCREMENTPRIMARY_KEY가 새로 붙었다는 것이다. 먼저 int는 여러분도 익숙할 것 같이 숫자형 자료형이다. MySQL에는 다양한 자료형들이 존재하는데 이에 대해서는 자료형에 대한 공식문서(링크)를 참고하면 자세히 공부할 수 있을것이다.AUTO_INCREMENT와  PRIMARY_KEY에 대한 설명은 나중에 자세히 하겠지만 간략히 설정하자면 AUTO_INCREMENT는 데이터가 추가될때마다 이에 해당하는 컬럼값을 자동으로 증가시켜준다는 것이고 PRIMARY KEY는 각 데이터에 대한 고유값을 말한다.

테이블을 완성하였다. 그럼 이제 우리가 할일은 테이블에 데이터를 입력해줌으로써 진정한 데이터베이스의 역할을 하게 해주는 것이다. 이에 대한 내용은 다음편에 이어서 하겠다.

 

아직 미흡한 점이 많은 내용들입니다. 개인적으로 공부한 내용을 정리하는 블로그에 작성하는 글이며 만약 잘못된 부분이나 개선해야 할 부분이 있으면 언제든지 의견 주시길 바랍니다. 

'DataBase > MySQL' 카테고리의 다른 글

MySQL 2편 - 데이터의 입력과 수정  (0) 2020.04.15