SQL(22)
-
[SQL 독학] 인덱스 내부 작동 원리와 구조, 데이터 검색
인덱스의 내부 작동 원리 이전에 말했듯 인덱스가 늘 좋은 것이 아니므로 정확히 판단하여 적절히 활용하는 것이 중요하다. 이때 내부 작동 원리를 이해하고 있으면 도움이 된다. 균형 트리의 개념 '자료 구조'에 나오는 범용적으로 사용되는 데이터의 구조로 클러스터형/보조 인덱스 모두 내부적으로 균형 트리로 만들어진다. 여기서 데이터가 저장되는 공간을 노드라고 한다. 루트 노드(페이지) : 가장 상위 노드 리프 노드(페이지) : 가장 마지막 존재 노드 중간 노드(페이지) : 루트와 리프 사이의 노드들 ※ MySQL에서는 페이지라고 한다. 리프 페이지만 있는 경우 찾고 싶은 정보를 처음부터 끝까지, 전체 테이블 검색 방식으로 일일히 뒤져보는 수밖에 없다. 하지만 균형트리라면 무조건 루트 페이지부터 검색을 한다. ..
2022.07.25 -
[SQL 독학] 인덱스의 개념과 종류, 장단점
인덱스 개념 SELECT를 사용하여 테이블을 조회할 때 결과를 빠르게 추출할 수 있도록 도와주는 기능이다. 책 뒤의 '찾아보기', '색인'같은 개념으로 필수조건은 아니지만 사실상 업무를 할 때에 반드시 사용한다고 보면 된다. (데이터 분량이 워낙 방대하기 때문에) 인덱스 장단점 영양제와 같다. 적정하게 사용하면 기존보다 SELECT문으로 검색하는 속도가 매우 빨라진다. 그 결과 컴퓨터의 부담이 줄어들어 시스템의 성능이 향상되고 전체적인 업무 속도가 빨라진다. 하지만 과용하면 오히려 부작용이 일어난다. 필요 없는 인덱스까지 만들면 데이터베이스가 차지하는 공간만 더 늘어나고 인덱스를 이용하여 데이터를 찾는 것이 전체 테이블을 찾아보는 것보다 더 느려지는 상황이 발생할 것이다. 인덱스의 종류 인덱스엔 크게 2..
2022.07.20 -
[SQL 독학] 가상의 테이블 : 뷰(생성, 수정, 삭제)
뷰 (View) 데이터베이스 개체 중 하나로 '가상의 테이블'이라고 생각하면 된다. 한 번 생성해 놓으면 테이블이라고 생각하고 사용해도 될 정도로 사용자의 입장에서 테이블과 거의 동일한 개체로 취급하기도 한다. 가장 잘 와닿는 비유로는 바로가기 아이콘이다. 뷰는 단순 뷰와 복합 뷰로 나뉘는데 단순 뷰는 하나의 테이블과 연관된 뷰를 말하고, 복합 뷰는 2개 이상의 테이블과 연관된 뷰를 말한다. 뷰의 기본 생성 USE market_db; SELECT man_id, man_name, man_addr FROM memebers; 위와 같이 USE로 DB에 접속한 후 SELECT문을 입력하면 요청한 항목에 대한 output 테이블 형태로 나올 것이다. 그래서 가상의 '테이블'이라고 하는 것이고, 이 SELECT문이..
2022.07.19 -
[SQL 독학] SQL 테이블 제약조건(기본키, 외래키, 고유키)
제약조건의 기본 개념과 종류 제약조건 개념 데이터의 무결성을 지키기 위해 제한하는 조건으로 여기서 '무결성'이란 '데이터에 결함이 없음'이란 의미다. 사이트에 회원가입을 할 때에 ID가 중복되지 않도록 중복 확인 과정을 거치는 것이 대표적인 예이다. 만일 ID가 동일 사람이 다수 있다면 해당 ID를 가진 회원들의 개인 정보에 혼선이 올 수밖에 없다. 이 혼란은 데이털의 결함이 된다. 이런 결함을 방지하기 위해서 기본 키라는 것이 있는 것이다. 대게 ID를 기본 키로 지정한다. 제약조건에는 기본키만 있는 것은 아니고, PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT, NULL과 같은 제약조건들이 존재한다. 기본 키 제약조건(PRIMARY KEY) 데이터를 구분할 수 ..
2022.06.23 -
[SQL 독학] GUI 환경에서 테이블 생성하기+SQL로 테이블 만들기
테이블은 표 형태로 구성된 2차원 구조로, 행 = 로우(row) = 레고드(record) 열 = 컬럼(column) = 필드(field) 라고 부른다. 테이블을 만들 때엔 2가지 방법이 있는데 마우스로 클릭해서 편리하게 만드는 방법, - 이전에 앞장에서 테이블 만들 때 했던 방식 - 이걸 GUI방식이라고 한다. 그리고 그 외엔 직접 SQL문을 입력하는 방식이 있다. GUI 환경에서 테이블 만들기 https://my-own-record-210621.tistory.com/26 방법은 이전과 동일한데 조금 추가 사항이 있다. Workbench 에서 CREATE DATABASE naver_db; 입력하여 새로운 데이터베이스를 생성해준다. 네비게이터에 새로 생성된 걸 확인하고 naver_db 더블클릭. (혹은 U..
2022.06.23 -
[SQL 독학] SQL 프로그래밍(IF문, CASE문, WHILE문, 동적SQL)
스토어드 프로시저는 MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체로 SQL 프로그래밍은 기본적으로 스토어드 프로시저 안에 만들어야 한다. 구조는 다음과 같다. ※ 작성은 DELIMITER $$ ~ END $$ 안에 작성하고 CALL로 호출한다. IF 문 프로그래밍 언어에서 사용하는 다른 if문들과 동일한 형식이다. 이와 같은 순서도를 가지고 형식은 아래와 같다. IF THEN SQL문장들 END IF; 이때 이 두 문장 이상이라면 BEGIN~END로 묶어줘야 한다. 설사 당장 한 문장만 썼어도 나중에 추가될지도 모르는 일이니 그냥 편하게 BEGIN~END 묶는 습관을 들이는 것을 권장한다고 한다. **최종 예시** DROP PROCEDURE IF EXISTS ifProc1;# 기존..
2022.06.11