[메타코드 강의 후기] SQL 부트캠프 | DataType & Table 생성

2024. 6. 23. 23:45Portfolio/메타코드M 서포터즈 5기

Contents 접기

오늘부터 메타코드M AI 교육 플랫폼에서 무료로 강의를 수강하고,

블로그에 공부 후기를 작성하는 메타코드 서포터즈 5기를 신청하게 되었다.

 

메타코드는 인공지능, 데이터분석과 같은 최근 중요도가 높은 분야에 대해서

현직자 분들이나 KAIST, 서울대 박사 분들께서 직접 강의를 찍어주시고 계신다.

 

따라서, 실무에서 쓰이는 스킬들을 핵심만 짚어서 학습할 수 있다는 점에서 꼭 추천하고 싶다.

 

또한, 메타코드 회원 가입을 하면 12,000 포인트를 지급해주는데,

이 포인트를 이용해서 상시로 진행하는 이벤트에 응모할 수도 있으니 한 번 도전해보시길!

신규 개설된 유료 강의를  선착순으로 무료로 들을 수 있는 기회도 있으니 놓치지 말자!

 


DataType

SQL 문법 중 가장 기본이 되는 DataType, 즉 자료형 중 이번 강의에서는 문자형, 숫자형, 날짜형에 대해 학습해보자

 

자료형 각각의 byte에 대해, 할당하기 위해서 필요한 byte를 지금 단계에서 구체적으로 학습하기 보단,

공부를 하면서 필요한 부분들을 추가로 학습하는 것이 더욱 효과적이라는 강사님께서 말씀하셨다.

일단은, 강의에서 소개한 데이터 타입에 관해 이런게 있었구나 하고 넘어가보자

Encodng : 문자를 컴퓨터가 이해할 수 있는 신호로 만드는 것

 

 

문자형, 숫자형

먼저, 문자형에는 다음과 같이 데이터 타입을 나눌 수 있다.

CHAR(n) : 고정길이 문자형
VARCHAR(n) : 가변길이 문자형
TEXT : N 크기의 TEXT 데이터 값

 

데이터분석가 적으로는 각 타입의 Byte에 대한 고민을 하지 않아도 되지만,

DB 엔지니어는 DB 최적화를 위해 Byte를 신경써야 한다.

 

다음으로, 숫자형 데이터 타입 중에서는 실무에서 TINYINT, INT 타입을 많이 사용한다고 한다.

 

 

 

DataBase

본격적으로 HeidiSQL을 이용하여 DB를 생성하기 전 약간의 설명을 덧붙이자면,

데이터베이스란 데이터를 저장하는 저장소이고,

DB를 생성한다는 것과 하나의 저장소가 아닌 여러 개의 저장소를 만드는 이유는

여러 데이터를 저장하고, 각 데이터가 저장된 데이터베이스에 접근 권한을 나누기 위함이다.

 

 

DataBase 생성

HeidiSQL을 실행해서, test라는 이름의 데이터베이스를 새로 생성하면,

다음과 같이 test DB가 생성되는데,

MySQL을 직접 실행해서, DB를 생성하기 위해서는 사진과 같이 직접 Query문을 작성해야 하지만,

HeidiSQL을 이용하면 마우스 클릭 몇 번으로 생성할 수 있는 것이다. 

왜 HeidiSQL이 사용자에게 편리한 interface를 제공한다는 지 이해할 수 있었다.

 

 

 

Table

다음으로 Table은 데이터베이스를 생성하고, 그 안에 저장되는 데이터들을 의미한다.

쉽게 예를 들면, 엑셀의 표를 생각하면 이해가 쉽다.

 

 

 

CREATE

CREATE 문으로 테이블 생성

 

Table을 생성하기 위해서는 CREATE 구문으로 각 테이블의 이름과 자료형을 추가하여 테이블을 생성 할 수 있다.

 

실행결과를 보면, 테이블의 이름, 데이터 유형, 길이, 부호 유/무, NULL 허용, 0으로 채움, 기본값을 볼 수 있는데,

이때, NULL 0이 아닌 결측치 Na값을 의미한다. 따라서, 분석하는 데이터에 따라서 NULL처리는 달라질 수 있는 것!

 

또한, 주의해야 할 점은 꼭 마지막에 세미콜론(;)을 이용하여 쿼리문을 닫아줘야 한다는 것이다. 쿼리문 작성 이후,

전체 쿼리문 실행시키고 싶을 때는 단축키는 F9, 현재 쿼리문만 실행시키고 싶을 때는 Shift+Ctrl+F9를 누르자. 

 

 

INSERT

INSERT 문으로 테이블에 데이터 추가

 

다음으로 INSERT문은 데이터베이스에 만든 table에 데이터를 추가하는 구문이다.

기본적으로 사용법은 테이블을 선택하고,

추가할 데이터를 데이터 타입에 맞게 순서대로 나열하여 레코드를 추가하는데,

Column의 값은 테이블에 정의되어 있는 순서대로 입력해야 한다!!

 

 

 

UPDATE & ALTER 

 

만약, 테이블 내의 데이터를 수정하고 싶은 경우는? 'UPDATE' 구문과 'ALTER' 구문을 사용할 수 있다.

UPDATE는 테이블 내 데이터를 직접 수정하는 데 사용하는 것이고,

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

 

ALTER는 데이터베이스 테이블의 구조를 변경하는 데 사용한다.

-- 컬럼 이름 변경
ALTER TABLE table_name
CHANGE '기존컬럼명' '새컬럼명' datatype;

-- 컬럼 추가
ALTER TABLE table_name
ADD column_name datatype;

-- 컬럼 수정
ALTER TABLE table_name
MODIFY column_name datatype;

-- 컬럼 삭제
ALTER TABLE table_name
DROP COLUMN column_name;

 

 

 

데이터를 테이블에 넣는 방법

.CSV import 

HEIDISQL을 이용한 csv 파일 import

 

직접 쿼리문을 작성하여 데이터베이스를 구축하여 테이블을 생성하는 방법도 있지만,

CSV 파일을 데이터베이스 테이블에 가져오는 작업을 SQL과 DBMS를 사용하여 수행할 수 있다. 

이 과정은 DBMS에 따라 약간씩 다를 수 있지만, 일반적으로는 다음과 같은 절차를 따른다.

1. 테이블 생성
2. CSV 파일 준비
3. CSV 파일을 테이블에 가져오기 (DBMS별 명령어 사용)
4. 예외 처리 및 데이터 검증

 

가져오기 클릭시 LOCAL에서 데이터를 가져오는 것이 허용되어 있지 않아 생기는 오류가 발생할 수 있으므로,

다음과 같은 구문으로 'LOCAL_INFILE' value값을 OFF에서 ON으로 허용해줘야 함..

SET GLOBAL LOCAL_INFILE=TRUE
SHOW GLOBAL VARIABLES LIKE 'LOCAL_INFILE';

 

 

 

MySQL Sample Database

MySQL Samle Database

 

다음으로 MySQL Sample Database를 가져오는 방법이 있다.

앞으로 진행되는 수업과 실습을 위해 가져와서 사용할 예정이고,

현업에서 쓰이는 SQL 쿼리문 구조와 유사하므로 집중해서 공부해야 할 것 같다.

 

https://www.mysqltutorial.org/getting-started-with-mysql/mysql-sample-database/

 

MySQL Sample Database

This page provides you with a MySQL sample database that helps you to practice with MySQL effectively and quickly.

www.mysqltutorial.org

 

 

 

 

 


오늘 강의 후기

드디어 SQL을 이용한 Database, 테이블 생성, 여러 기본 쿼리 구문들을 배웠는데,

뭔가 기존에 책으로 공부하던 것보다 핵심만 딱 요약해서 설명해주시는 느낌이라서

공부하는 데도 지루하지 않고 조금 더 내용적으로도 잘 이해되는 것 같다.

앞으로 강의와 실습을 바탕으로 SQL 마스터 해보자 ,,

 

 

해당 강의를 들을 지 말지 고민말고 한 번 들어보시길!
이상훈 강사님의 데이터분석가 입문 필수 SQL 부트캠프
데이터 분석가 공부를 시작하려는 학생들에게 강추합니다!

 

 

 

 

 

 

* 서포터즈 지원을 받아 작성하였습니다