MySQL

Python 25. MySQL 첫걸음...

아리벱 2024. 3. 25. 17:23

데이터를 저장하고 관리하기 위해서는 데이터베이스가 필요합니다.  MySQL은  오픈 소스 관계형 데이터 중 하나입니다. 웹 애플리케이션 스택의 핵심 부분이며 많은 애플리케이션, 웹사이트, 서비스를 지원합니다. DB-Engines에서 두 번째로 인기 있는 데이터베이스로 선정되었습니다.

 

DB-Engines

https://db-engines.com/en/ranking

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

 

데이터베이스 관리 시스템 중 MySQL에 대해서 알아보겠습니다!

 

MySQL
MySQL은 오픈소스 관계형 데이터베이스 관리 시스템입니다. 다른 관계형 데이터베이스와 마찬가지로 행과 열로 구성된 테이블에 데이터를 저장합니다. 사용자는 일반적으로 SQL이라고 하는 구조화된 쿼리 언어를 사용하여 데이터를 정의, 조작, 제어, 쿼리할 수 있습니다. MySQL은 오픈소스이므로 사용자와 긴밀히 협력하여 개발한 여러 기능이 포함되어 있습니다.

여기서 관계형 데이터베이스가 무엇인지 답답해 하실 수 있을 것 같습니다.

 

관계형 데이터베이스
MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)이라는 데이터베이스 카테고리에 속합니다. 관계형 데이터베이스는 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음입니다. 관계는 이러한 테이블 간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적 연결입니다.

 

 

MySQL 설치 링크입니다. 

https://dev.mysql.com/downloads/installer/

 

 

MySQL :: Download MySQL Installer

Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.

dev.mysql.com

 

설치가 완료되면 MySQL Workbench를 실행하면 다음과 같은 창이 열릴 것입니다.

 

 

 

1. 데이터

데이터는 정보를 나타내는 숫자, 문자, 기호의 집합으로 컴퓨터 또는 디지털 장치에서 처리하고 저장할 수 있는 형태

 

2. 데이터베이스(DataBase)

- 체계적으로 구성된 데이터의 집합이며 특정 목적을 위해 조직화되고 관리
- 정보를 효율적으로 저장, 검색, 업데이트, 관리할 수 있는 기술적인 도구와 구조를 제공

- 데이터베이스를 관리할 수 있는 기술적인 소프트웨어를 데이터베이스 관리 시스템(DataBase Management System)이라고 함
- 데이터베이스 시스템에서는 관계형 데이터베이스 시스템(RDBMS)이 있으며 이는 SQL을 사용하여 데이터를 관리

 

MySQL의 기본적인 문법에 대해 학습해보겠습니다!

 

3. SQL(Structured Query Language)

-데이터베이스 관리 시스템(DBMS)에서 데이터를 관리하긱 위해 사용되는 표준화된 프로그래밍 언어
-주석문: #, --, /* */, ''' 
-대소문자를 구별하지 않음
-문자열을 저장할 때 ''(작은 따옴표)만 사용

 

4. MySQL

 

데이터베이스 확인하기

필드는 여기서 열을 의미합니다.

create문을 통해 테이블을 생성할 수 있습니다.

필드는 열인 것을 알았으나 데이터 타입, 제약 조건이 어떤 것인지에 대해서 알아보겠습니다.

 

5. 데이터 타입

5-1. 숫자형 타입

 

정수

tinyint 정수(1byte)
smallint 정수(2byte)
int 정수(4byte), 약 21억 ~ 약21억 # 주로 사용
bigint  정수(8byte)

 

소수

float 부동 소수형 데이터 타입(4byte)
double 부동 소수형 데이터 타입(8byte) # 소수점 사용시 주로 사용
decimal(길이, 소수) 고정 소수형 데이터 타입

 

5-2. 문자형 타입

char()
고정 길이 데이터 타입(최대 255byte) 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채워서 낭비함
varchar()
가변 길이 데이터 타입(최대 65535byte) 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채우지 않아 아낄 수 있음
text()
문자열 데이터 타입(최대 65535byte) 길이 정하지 않고 많은 데이터가 있을 때 사용
longtext() 무제한 문자열 데이터 타입

 

5-3. 이진 데이터 타입

binary, byte char의 형태의 이진 데이터 타입(최대 255byte)
varbinary varchar의 형태의 이진 데이터 타입(최대 65535byte)

 

5-4. 날짜 데이터 타입

date 날짜(년도, 월, 일) 형태의 테이터 타입(3byte)
time 시간(시, 분, 초) 형태의 타입(3byte)
datatime 날짜와 시간 형태의 데이터 타입(8byte)
timestamp 1970년 1월 1일 0시 0분 0초부터 시자한 ms타입의 시간이 저장(4byte)

 

 

6. 제약 조건(Constraint)

데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사 규칙을 의미

not null null 값을 허용하지 않는 대신 중복값은 허용
unique 중복값을 허용하지 않는 대신 null 값은 허용
primary key null값을 허용하지 않고 중복값을 허용하지 않음
테이블에 단 하나만 설정
참조키와 쌍으로 연결됨(참조한 데이터가 주테이블에 없으면 담을 수 없음)
인덱싱을 설정
default null값을 삽입할 때 기본이 되는 값을 설정
enum 원하는 범위를 설정하고 해당 범위의 값만 저장
권장하지 않음
foregin key 기본키와 쌍으로 연결됨

 

실제로 배웠던 내용들을 토대로 데이터베이스를 만들어보겠습니다.

 

 

 

오늘은 간단한 MySQL의 테이블의 필드명, 데이터 타입, 제약조건이 어떤 것인지, 만드는 방법에 대해서 확인해보았습니다. 

 

데이터를 다루는 대에 데이터 베이스는 필수적이기 때문에 앞으로 MySQL 문법을 완벽히 익혀봅시다!