SQL

혼자 공부하는 SQL / Chapter 01~02 데이터베이스와 SQL, 실전용 SQL 미리 맛보기

Bay Im 2024. 1. 3. 16:18

Chapter 01 데이터베이스와 SQL

01-1 데이터베이스 알아보기

  • 데이터베이스(database, DB)
    • 정보가 저장되고 관리되므로 데이터의 집합이라고 할 수 있다.
  • DBMS(Database Management System)
    • 데이터베이스를 관리하고 운영하는 소프트웨어
    • 데이터베이스에는 여러 명이 동시에 접근할 수 있다.
    • 종류
      • MySQL, 오라클, SQL 서버, MariaDB
  • SQL(Structured Query Language)
    • 구조화된 질의 언어라고 표현되며 DBMS에 데이터를 구축, 관리, 활용을 위해 사용되는 언어
    • 표준 SQL
      • 국제표준화기구에서 SQL에 대한 표준을 정한 것
  • DBMS의 유형
    • 계층형 DBMS
      • 트리 형태
      • 처음 구성을 완료 후 변경하기 까다로워서 지금은 미사용
    • 망형 DBMS
      • 활용하려면 모든 구조를 이해해야 하므로 지금은 미사용
    • 관계형 DBMS(RDBMS)
      • 대부분의 DBMS 형태
      • 테이블이라는 최소 단위로 구성, 테이블에는 하나 이상의 열과 행으로 이루어져 있다. (2차원 구조)

 

01-2 MySQL 설치하기

  • MySQL 8.0 설치 완료
  • 데이터베이스의 목록 출력하는 SQL 문
    • SHOW DATABASES;

 


 

Chapter 02 실전용 SQL 미리 맛보기

02-1 건물을 짓기 위한 설계도: 데이터베이스 모델링

  • 데이터베이스 모델링(database modeling)
    • 테이블의 구조를 미리 설계하는 개념
    • 특징들을 추출해서 각각의 테이블로 변환
  • 폭포수 모델(waterfall model)
    • 소프트웨어 개발 절차 중 하나 (단계별)
    • 프로젝트 진행 단계
      1. 프로젝트 계획
      2. 업무 분석
        1. 데이터베이스 모델링 해당
      3. 시스템 설계
        1. 데이터베이스 모델링 해당
      4. 프로그램 구현
      5. 테스트
      6. 유지보수
  • 데이터베이스 구성도
    • 데이터(data)
      • 하나하나의 단편적인 정보
    • 테이블(table)
      • 표 형태로 표현한 것
    • 데이터베이스(database, DB)
      • 테이블이 저장되는 저장소
      • 각 데이터베이스는 이름이 서로 달라야하고, 구성도에서 원통 모양으로 표현
    • DBMS(Database Management System)
      • 데이터베이스 관리 시스템
    • 열(Column)
      • 테이블의 세로
      • 열 이름은 각 테이블 내에서는 서로 달라야 한다.
    • 데이터 형식
      • 열에 저장될 데이터 형식을 말한다.
    • 행(row)
      • 실질적인 진짜 데이터
      • 행의 개수가 데이터의 개수이다.
    • 기본키(Primary key, PK)
      • 각 행을 구분하는 유일한 열 (1개의 열에 지정)
      • 기본키는 중복 불가, Null 불가
    • SQL(Structured Query Language)
      • 구조화된 질의 언어

 

02-2 데이터베이스 시작부터 끝까지

  • 데이터베이스 구축 절차
    1. 데이터베이스 만들기
    2. 테이블 만들기
      1. 열 이름, 데이터 형식 지정
    3. 데이터 입력/수정/삭제 하기
      1. INSERT, UPDATE, DELETE
    4. 데이터 조회/활용 하기
      1. SELECT, WHERE
      2. 여러 열 조회 시 콤마(,)로 분리
      3. 필요한 부분만 드래그해서 실행 가능
  • 데이터베이스 생성 쿼리문
    • CREATE DATABASE;
  • 데이터 형식
    • CHAR: 문자
    • INT: 소수점이 없는 정수
    • DATE: 연, 월, 일
    • NULL: 빈 것을 의미 ↔ NOT NULL: 반드시 입력
  • 열 이름
    • 띄어쓰기는 하지 않고, 언더바(_)로 구분
    • * 는 모든 열을 의미

 

02-3 데이터베이스 개체

  • 인덱스(index)
    • 데이터를 조회할 때 속도를 빠르게 해준다. (인덱스 검색)
    • 인덱스 생성 쿼리문
      • CREATE INDEX index_name ON table_name(column_name);
      • 해당 테이블의 열에 인덱스를 지정하라는 의미
      • 결과는 눈에 보이지 않음
  • 뷰(view)
    • 가상의 테이블 (실제 데이터를 가지고 있지 않다.)
    • 보안에 도움이 되고, 긴 SQL을 간략하게 만들 수 있다.
    • 뷰 생성 쿼리문
      • CREATE VIEW view_name AS SELECT * FROM table_name;
      • 뷰 조회 시 SELECT * FROM view_name;
  • 스토어드 프로시저(stored procedure)
    • MySQL에서 제공하는 프로그래밍 기능으로 여러 개의 SQL문을 하나로 묶어서 실행 가능
    • 연산식, 조건문, 반복문 사용 가능
    • 스토어드 프로시저 생성 쿼리문
      • 결과는 눈에 보이지 않음
      DELIMITER //
      CREATE PROCEDURE procedure_name()
      BEGIN
      	SELECT * FROM table_name1 WHERE column_name1 = '가나다';
      	SELECT * FROM table_name2 WHERE column_name2 = '마바사';
      END //
      DELIMITER;
      
    • 스토어드 프로시저 호출 쿼리문
      • CALL procedure_name();
    • 스토어드 프로시저 삭제 쿼리문
      • DROP PROCEDURE procedure_name;

 


 

미션

  • 기본 미션
    • p. 80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기

  • 선택 미션
    • 데이터베이스 개체 3가지 설명하기
      • 인덱스(index)
        • 데이터를 조회할 때 속도를 빠르게 해준다. (인덱스 검색)
      • 뷰(view)
        • 가상의 테이블 (실제 데이터를 가지고 있지 않다.)
        • 보안에 도움이 되고, 긴 SQL을 간략하게 만들 수 있다
      • 스토어드 프로시저(stored procedure)
        • MySQL에서 제공하는 프로그래밍 기능으로 여러 개의 SQL문을 하나로 묶어서 실행 가능
        • 연산식, 조건문, 반복문 사용 가능