Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 도커 엔진
- LIST
- java
- 알고리즘
- 스레드
- 자료구조
- 실전 자바 고급 1편
- 리스트
- 자바
- 도커
- 인프런
- Kubernetes
- 자바 io 보조스트림
- Collection
- java socket
- filewriter filereader
- 동시성
- 쿠버네티스
- 컨테이너
- 멀티 쓰레드
- container
- Thread
- Docker
- 스레드 제어와 생명 주기
- 쓰레드
- java network
- Java IO
- 자바 입출력 스트림
- 시작하세요 도커 & 쿠버네티스
- 김영한
Archives
- Today
- Total
쌩로그
혼공 SQL - ch02(실전 SQL 미리 맛보기) 본문
반응형
목록
- 포스팅 개요
- 본론
2-1. 건물을 짓기 위한 설계도 : 데이터베이스 모델링
2-2.데이터베이스 시작부터 끝까지
2-3. 데이터베이스 개체 - 요약
1. 포스팅 개요
혼자 공부하는 SQL 챕터 2를 요약 및 정리한 포스팅
2. 본론
2-1. 건물을 짓기 위한 설계도 : 데이터베이스 모델링
데이터베이스 모델링
- 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업
- 테이블의 구조를 미리 설계하는 개념
- 건축 설계도를 그리는 과정과 비슷
데이터베이스의 구성요소
데이터(data)
- 하나하나의 단편적인 정보
테이블(table)
- 데이터를 입력하기 위해 표 형태로 표현한 것
- 데이터베이스 안에 있음.
데이터베이스(Database : DB)
- 테이블이 저장되는 저장소
DBMS(Database Management System)
- 데이터베이스 관리 시스템 또는 소프트웨어
- ex) MySQL, Oracle
열(Column)
- 테이블의 세로
열 이름
- 각 열을 구분하기 위한 이름
- 열 이름은 각 테이블 내에서는 서로 달라야 한다.
데이터 형식
- 열에 저장될 데이터의 형식
- 데이터 형식은 테이블을 생성할 때 열 이름과 함께 지정한다.
행(row)
- 실질적인 진짜 데이터
- 행 데이터라고도도 부름.
- 행의 개수가 곧 데이터의 개수
기본 키(Primary Key : PK)
- 주키라고도 함.
- 각 행을 구분하는 유일한 열
- 중복되어서는 안 되고, 비어 있어서도 안 된다.(null 허용 X)
SQL(Structured Query Language)
- 구조화된 질의 언어
- DBMS와 사람이 소통하기 위한 언어
2-2.데이터베이스 시작부터 끝까지
스키마
- MySQL 안의 데이터베이스
- 데이터베이스와 동일한 용어
데이터베이스
- 데이터를 저장하는 공간
테이블
- 2차원의 표 형태로 이루어져있다.
- 각 열에 해당하는 데이터를 한 행씩 입력할 수 있다.
- 행에 데이터를 입력, 수정, 삭제, 조회 할 수 있다.
테이블 자동정렬
- 기본키로 설정한 열이 기준이 되어 오름차순으로 자동정렬된다.
참고로 SQL은 대소문자를 구분하지 않는다.
SELECT 기본 형식
SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]
*
는 모든 열을 의미
2-3. 데이터베이스 개체
데이터베이스 개체는 독립적으로 존재하는 것이 아니라 테이블과 상호 연관이 있다.
인덱스
- 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해준다
- 책의 찾아보기와 비슷한 개념
- 인덱스 생성 여부에 따라 결과가 달라지는 것은 아니다. 단지 시간이 단축된다.
- 당연한 말이지만, 시간이 단축되는 점을 통해 성능 향상을 기대해볼 수 있을 거 같다.(나의 생각)
Full Table Scan VS Index Scan
Full Table Scan
- 전체 테이블 검색
- 처음부터 끝까지 데이터를 찾는 것.
Index Scan
- 인덱스를 이용해서 데이터를 찾는 것.
뷰
- 테이블의 일부를 제한적으로 표현할 때 주로 사용
- 뷰를 활용하면 보안도 강화하고, SQL 문도 간단하게 사용 가능하다.
- '가상의 테이블'이라고도 할 수 있다.
- 일반 사용자의 입장에서는 테이블과 뷰를 구분할 수 없다.
- 뷰는 실제 데이터를 가지고 있지 않으며, 실제 테이블에 링크(link)된 개념.
- 뷰의 실체는 SELECT문이다.
뷰의 생성문 기본
CREATE VIEW [뷰이름] AS [접근하려는 SQL문];
다음과 같이 VIEW를 만들었을 때, 다음과 같은 실행결과가 나온다.
CREATE VIEW member_view
AS
SELECT * FROM member;

이처럼 만든 view에 접근할 수 있다.
SELECT * FROM member_view;
다음 쿼리를 통해서 소스코드를 확인할 수 있다.
SHOW CREATE VIEW member_view;
MySQL의 'From Editor'에서 확인할 수 있는데,
소스 코드를 보면 SELECT 문이 저장됨을 확인할 수 있다.
AS select `member`.`member_id` AS `member_id`,`member`.`member_name` AS `member_name`,`member`.`member_addr` AS `member_addr` from `member`
간략하게 하면,
select * from member;
이와 동일하다.
스토어드 프로시저
- MySQL에서 제공하는 프로그래밍 기능.
- SQL에서 프로그래밍이 가능하도록 해준다.
생성 구조
DELIMITER //
CREATE PROCEDURE myProc() -- 스토어드 프로시저 이름 지정
BEGIN
-- 자주 쓰는 SQL문
-- ...
-- ...
-- 자주 쓰는 SQL문
END //
DELIMITER ;
생성한 스토어드 프로시저는 다음 명령어로 호출할 수 있다.
CALL myProc();
트리거
- 잘못된 데이터가 들어가는 것을 미연에 방지.
데이터베이스 개체에 대한 내용은 이후에 더 자세히 다룸.
3. 요약
용어 설명이 주다.
용어
- 스키마
- 데이터베이스
- 데이터베이스 모델링
데이터베이스 구성요소
- 테이블
- 데이터
- DBMS
- 열 , 열이름
- 행
- 기본 키
- SQL
- 데이터 형식
SELECT문 기본 형식.
데이터베이스 개체
- 인덱스
- 뷰
- 스토어드 프로시저
728x90
'DB > RDB' 카테고리의 다른 글
혼공 SQL - ch05(테이블과 뷰) (0) | 2023.08.08 |
---|---|
혼공 SQL - ch04(SQL 고호오급 문법) (0) | 2023.08.08 |
혼공 SQL - ch03(SQL 기본 문법) (0) | 2023.08.06 |
혼공 SQL - ch01(데이터베이스와 SQL) (0) | 2023.07.28 |
면접을 위한 CS 전공지식 - ch04. 데이터베이스 - 데이터베이스의 기본(1) (1) | 2023.07.27 |
Comments