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차원 구조)
- 계층형 DBMS
01-2 MySQL 설치하기
- MySQL 8.0 설치 완료
- 데이터베이스의 목록 출력하는 SQL 문
- SHOW DATABASES;
Chapter 02 실전용 SQL 미리 맛보기
02-1 건물을 짓기 위한 설계도: 데이터베이스 모델링
- 데이터베이스 모델링(database modeling)
- 테이블의 구조를 미리 설계하는 개념
- 특징들을 추출해서 각각의 테이블로 변환
- 폭포수 모델(waterfall model)
- 소프트웨어 개발 절차 중 하나 (단계별)
- 프로젝트 진행 단계
- 프로젝트 계획
- 업무 분석
- 데이터베이스 모델링 해당
- 시스템 설계
- 데이터베이스 모델링 해당
- 프로그램 구현
- 테스트
- 유지보수
- 데이터베이스 구성도
- 데이터(data)
- 하나하나의 단편적인 정보
- 테이블(table)
- 표 형태로 표현한 것
- 데이터베이스(database, DB)
- 테이블이 저장되는 저장소
- 각 데이터베이스는 이름이 서로 달라야하고, 구성도에서 원통 모양으로 표현
- DBMS(Database Management System)
- 데이터베이스 관리 시스템
- 열(Column)
- 테이블의 세로
- 열 이름은 각 테이블 내에서는 서로 달라야 한다.
- 데이터 형식
- 열에 저장될 데이터 형식을 말한다.
- 행(row)
- 실질적인 진짜 데이터
- 행의 개수가 데이터의 개수이다.
- 기본키(Primary key, PK)
- 각 행을 구분하는 유일한 열 (1개의 열에 지정)
- 기본키는 중복 불가, Null 불가
- SQL(Structured Query Language)
- 구조화된 질의 언어
- 데이터(data)
02-2 데이터베이스 시작부터 끝까지
- 데이터베이스 구축 절차
- 데이터베이스 만들기
- 테이블 만들기
- 열 이름, 데이터 형식 지정
- 데이터 입력/수정/삭제 하기
- INSERT, UPDATE, DELETE
- 데이터 조회/활용 하기
- SELECT, WHERE
- 여러 열 조회 시 콤마(,)로 분리
- 필요한 부분만 드래그해서 실행 가능
- 데이터베이스 생성 쿼리문
- 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문을 하나로 묶어서 실행 가능
- 연산식, 조건문, 반복문 사용 가능
- 인덱스(index)
- 데이터베이스 개체 3가지 설명하기
'SQL' 카테고리의 다른 글
혼자 공부하는 SQL / Chapter 07 스토어드 프로시저 (0) | 2024.02.09 |
---|---|
혼자 공부하는 SQL / Chapter 06 인덱스 (0) | 2024.02.04 |
혼자 공부하는 SQL / Chapter 05 테이블과 뷰 (1) | 2024.01.29 |
혼자 공부하는 SQL / Chapter 04 SQL 고급 문법 (0) | 2024.01.21 |
혼자 공부하는 SQL / Chapter 03 SQL 기본 문법 (1) | 2024.01.10 |