[혼공S] 1주차_DB부터 MySQL 활용까지

2025. 1. 9. 16:17·SQL/혼자 공부하는 SQL

 


 


혼자 공부하는 SQL 도서 활용

 

혼자 공부하는 SQL

아무런 사전 지식 없는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’, ‘어떻게’ 학습해야 할지조차 모르는 입문자의 막연한 마음을 살펴, 과외 선생님이 알

www.aladin.co.kr

(도서 구매를 원하시는 분은 제가 산 알라딘 사이트를 연결해놨으니 이용하시기 바랍니다.)

 

혼자 공부하는 SQL

 

✔️ 데이터베이스

✔️ MySQL 설치 

✔️ 데이터베이스 모델링

✔️ 데이터베이스 생성

✔️ 데이터베이스 개체

 

 


 

 

# 데이터베이스(DataBase)

데이터의 집합 / 데이터의 저장소

데이터베이스에 데이터 저장 및 관리

 

 

# DBMS(Database Management System)

데이터베이스를 관리하고 운영하는 소프트웨어

여러 사용자나 응용 프로그램과 공유 및 동시 접근 가능해야 함

 

예시) 학교 DBMS

학교의 다양한 DB와 DBMS의 역할 수행 과정

 

 

# DBMS의 종류

                  - MySQL : 오라클 제작 / 대부분의 운영체제 지원 / 오픈소스(무료) 상용 (MySQL 사용 예정)

                  - MariaDB : MariaDB 제작 / mac을 제외한 대부분의 운영체제 지원 / 오픈소스(무료)

                  - PostgreSQL : PostgreSQL 제작 / 대부분의 운영체제 지원 / 오픈소스(무료)

                  - Oracle : 오라클 제작 / mac을 제외한 대부분의 운영체제 지원 / 상용 시장 점유율 1위 

                  - SQL Server : MS 제작 / 윈도우만 지원 / 중/대형 시장에서 사용

                  - DB2 : IBM 제작 / mac 제외 대부분의 운영체제 지원 / 메인프레임 시장 점유율 1위

                  - Access : MS 제작 / 윈도우만 지원 / PC용

                  - SQLite : SQLite 제작 / 안드로이두, ios 지원 / 모바인 전용, 오픈소스(무료)

 

 

# DBMS 발전 과정

종이에 팬으로 기록

▼

컴퓨터에 파일로 저장(엑셀 등의 프로그램 활용)

▼

DBMS 보급

파일의 단점을 보완 + 대향의 데이터를 효율적 관리 및 운영 가능

DBMS를 활용하여 DB의 데이터 사용하기 위해 SQL 언어 필요

 

 

 

# DBMS의 분류

계층형 DBMS : 각 계층이 트리 형태 가짐(처음 등장한 DBMS 개념)

망형 DBMS : 계층형 DBMS의 단점을 보완(하위끼리의 연결도 존재)

--- 현재는 사용하지 않는 개념 ---

 

관계형 DBMS(RDBMS)

대부분의 DBMS의 형태를 이룸 -> 테이블로 이루어짐(행/열 구성)

+

SQL : 관계형 DB에서 DB 활용 위해 사용되는 언어

 

 


 

 

# MySQL 설치 

도서에서는 윈도우 설치 방법만 존재하지만

저처럼 MAC인 경우를 위해 설치 방법을 알아보겠습니다

 

 

1. Google에 MySQL Community Server 다운로드 진행

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

 

MySQL :: Download MySQL Community Server

Select Version: 9.1.0 Innovation 8.4.3 LTS 8.0.40 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris mac

dev.mysql.com

 

 (맥북 m1 이상의 경우 Arm으로 다운로드 받아 기본으로 설치 진행)

 

 

2. MySQL Workbench 다운로드 진행

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

 

MySQL :: Download MySQL Workbench

 

dev.mysql.com

 

 

3. 맥의 터미널에서 Mysql 비밀번호 설정 진행

 

해당 과정은 제가 참고한 블로그를 첨부해 드립니다!

https://velog.io/@ldw0123/Mac%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

Mac에 MySQL과 Workbench설치하기

데이터베이스를 공부하는 데 MySQL은 빠질 수 없죠 실리콘 맥(M1, M2칩) 컴퓨터에 MySQL을 설치하는 법을 알아봅시다~! 준비하기 우선, 맥에 homebrew가 설치되어 있어야 합니다 링크를 참조해서 homebrew

velog.io

 

4. Workbench에 들어가서 Local instance 3306에 비밀번호를 입력하고 실행된다면 준비 완료

 

 


 

 

# 프로젝트

현실 세계의 업무를 컴퓨터 시스템으로 옮겨 놓는 과정

프로젝트 진행을 위해 폭포수 모델 사용

 

 

폭포수 모델

프로젝트 계획 ▶︎ 업무 분석 ▶︎ 시스템 설계 ▶︎ 프로그램 구현 ▶︎ 테스트 ▶︎ 유지 보수

 

 

데이터베이스 모델링

테이블의 구조를 미리 설계하는 개념

폭포수 모델의 업무 분석과 시스템 설계 단계에 해당

-> 테이블 구조 결정됨

 

 

# 전체 데이터베이스 구성도

                  데이터 : 단편적 정보(테이블을 이루는 정보)

                  테이블 : 데이터를 입력하기 위한 표 형태

                               (DBMS 안에는 여러 개의 테이블로 구성될 수 있음)

                  데이터베이스 : 테이블이 저장되는 저장소

                  DBMS : MySQL(DB 관리 시스템 또는 소프트웨어)

                  열 : 테이블의 세로(여러 개의 열로 구성)

                  열 이름 : 각 열의 구분을 위한 이름

                  데이터 형식 : 열에 저장되는 데이터 형식(문자, 숫자 형식 등)

                  행 : 실질적인 진짜 데이터 = 행 데이터

                  기본키 : 각 행을 구분하는 유일한 행(중복X, 비어있어도 X(Null 값 허용X))

                  SQL : 구조화된 질의 언어 -> DBMS에서 DB의 데이터를 활용하기 위함

 

 


 

 

# 데이터베이스 생성

 

1. MySQL 워크벤치 실행

Local instance 3306에 비밀번호 입력후 실행

 

 

2. schema > 우클릭 > create schema

원하는 DB의 이름 설정, defalut값으로 apply 진행 

> 비어있는 데이터베이스 생성됨

(스키마 : Mysql 안의 데이터베이스 )

SCHEMAS에 생성된 shop_db 확인 가능

 

 

3. 테이블 생성

쇼핑 데이터베이스에 회원 / 제품 테이블 생성 진행

스키마 창에서 create table 선택

 

 

회원 테이블 생성

 

 

제품 테이블 생성

 

 

테이블이 정상적으로 생성되었다면 스카마 창에 각 테이블이 보이게 됨 

 

 

4. 각 테이블에 데이터 입력 진행

스키마 창 > shop_db > Tables > 각 테이블 우클릭 > Select Rows - Limits 1000 선택 

상단에 select * from shop_db.member; 가 생성되며 하단에 결과 보임

테이블 결과에 NULL부분을 클릭하고 데이터 입력 > apply 진행

 

 

동일하게 Product 테이블도 데이터 입력 및 apply 진행

 

 

수정, 삭제를 위한 데이터 추가 진행

member 테이블 선택 > Select Rows - Limits 1000 > 새로운 데이터 입력 진행

 

 

해당 데이터에서 '미국 텍사스 사막' -> '영국 런던 먹자골목'으로 변경 후 apply 진행

 

 

데이터 삭제 시, 원하는 데이터를 선택하고 우클릭 > Delete Row(s) 선택 > 삭제 진행

 

 


 

 

# 데이터 활용

SCHEMAS에서 shop_db를 더블 클릭하거나

use shop_db; 라고 작성하면 동일하게 데이터베이스 사용 가능합니다.

 

select 
	* 
from member;

위와 동일한 결과가 나오게 됨

 

 

select 
	member_name, 
    member_addr
from member;

 

+

 

Where절 : 특정한 조건에 해당하는 데이터만 조회 가능

select 
	* 
from member
where member_name = '아이유';

 

 


 

 

# 데이터베이스 개체

 

1. 인덱스(Index) 

DB에서 데이터 검색 성능 향상을 위해 사용되는 데이터베이스 개체

예를 들어, 책에서 찾고자 하는 문장이 있다면 전체를 보는 것이 아닌 

문장에 있는 단어를 먼저 찾고 단어에 해당하는 페이지에 가서 원하는 문장 찾을 수 있음

create index idx_member_name on member(member_name);

 

 

2. 뷰(View)

하나 이상의 테이블에서 데이터를 가상으로 만든 데이터베이스 개체

(진짜 테이블에 링크된 개념)

뷰 활용시, 데이터 접근 데어와 보안 강화, 쿼리의 단순화 가능

create view member_view as (
	select 
		* 
	from member
);

Views에 member_view 생성된 것 확인 가능

 

생성된 뷰를 활용하여 select 진행

select * from member_view;

member 테이블과 동일한 데이터가 나오는 것을 확인할 수 있음

 

 

3. 스토이드 프로시저

SQL 안에서도 프로그래밍 언어처럼 코딩하며 프로그래밍 로직을 작성

특정 작업을 자동화하여 프로시저를 호출하면 저장된 명령어가 실행됨

 

select * from member where member_name = '나훈아';
select * from product where product_name = '삼각김밥';

 

 

두 SQL 쿼리를 하나의 스토어드 프로시저로 생성

delimiter //
create procedure myProc()
begin 
	select * from member where member_name = '나훈아';
	select * from product where product_name = '삼각김밥';
end //
delimiter ; -- 한칸 띄어야 정상적으로 작동 가능

(delimiter에서 세미콜론을 꼭 한 칸 띄운 후 작성해야 오류가 발생하지 않습니다!)

 

 

생성된 스토어드 프로시저를 실행

call myProc();

 

위 사진처럼 2개의 결과로 보이게 됩니다

 

 


 

 

이상으로 1주차 내용 정리를 마치겠습니다

혹시 위와 같은 내용을 더 자세히 공부해보고 싶다면

https://www.youtube.com/watch?v=0cRhit1EJM0&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=1

 

0강부터 5강까지의 내용으로 이루어져 있으니 원하시는 분은 링크를 참조하여 

공부하는데 도움 되시길 바랍니다 감사합니다😊

 

 

반응형

'SQL > 혼자 공부하는 SQL' 카테고리의 다른 글

[혼공S] 4주차_제약조건을 활용한 테이블 및 가상 테이블(VIEW) 생성 및 활용  (0) 2025.02.03
[혼공S] 3주차_MySQL 데이터 형식과 JOIN(조인), SQL 프로그래밍 활용  (1) 2025.01.23
[혼공S] 2주차_SELECT문과 WHERE절 활용  (0) 2025.01.18
[혼공S] 2주차 _SELECT문의 ORDER BY와 GROUP BY 활용  (0) 2025.01.18
[혼공S] 2주차_테이블의 데이터 입력, 수정, 삭제까지  (0) 2025.01.18
'SQL/혼자 공부하는 SQL' 카테고리의 다른 글
  • [혼공S] 3주차_MySQL 데이터 형식과 JOIN(조인), SQL 프로그래밍 활용
  • [혼공S] 2주차_SELECT문과 WHERE절 활용
  • [혼공S] 2주차 _SELECT문의 ORDER BY와 GROUP BY 활용
  • [혼공S] 2주차_테이블의 데이터 입력, 수정, 삭제까지
DAILYSEEKER
DAILYSEEKER
데이터 분석 공부 열심히 하는 중😁
  • DAILYSEEKER
    ECODATALIST
    DAILYSEEKER
  • 전체
    오늘
    어제
  • 글쓰기 관리자
    • DATA (224)
      • SQL (18)
        • SQLD (3)
        • 데이터 분석을 위한 MySQL (5)
        • 혼자 공부하는 SQL (10)
      • Python (39)
        • 데이터 분석을 위한 Python (32)
        • 데이터 분석을 위한 데이터 스크래핑 (4)
        • 데이터 분석 프로젝트 (3)
      • 기획 (3)
        • 서비스 기획 (1)
        • 기업 분석 (2)
      • Frontend(프론트엔드) (22)
        • 데이터 분석을 위한 웹 개발 언어 (9)
        • 자바스크립트 (13)
        • 타입스크립트 (0)
      • 코딩 테스트 (86)
        • 프로그래머스_MySQL (86)
      • Data Driven (12)
        • 코드 없이 배우는 데이터 분석 (6)
        • Excel (5)
      • UI & UX (24)
        • 피그마(Figma) (24)
      • BDA 학회 (20)
        • BDA학회_8기 (4)
        • BDA학회_9기 (16)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
DAILYSEEKER
[혼공S] 1주차_DB부터 MySQL 활용까지
상단으로

티스토리툴바