일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 혼공S
- 런던
- PRML
- GenAI
- 유럽여행
- 책리뷰
- Linux
- PRIMARY KEY
- 제주2주살이
- digital marketing
- 오블완
- 에이바우트
- R
- 혼자공부하는SQL
- 영국여행
- 제주도
- Github
- 티스토리챌린지
- 맛집
- Jupyter notebook
- 디지털마케팅
- 클러스터형인덱스
- 스플라인
- 제주도여행
- 김호연작가
- RStudio
- SQL
- 보조인덱스
- 독후감
- 스토어드 프로시저
- Today
- Total
목록Study/SQL (16)
Soy Library

스토어드 함수는 스토어드 프로시저와 비슷한데, 사용방법과 용도가 다르기 때문에 별도로 알아둘 필요가 있다. 스토어드 함수 스토어드 함수의 개념과 형식 MySQL에서 제공하는 함수가 아닌 다른 함수를 직접 만들어 쓸 수 있는 것이 스토어드 함수이다. 형식은 아래와 같다. -- 스토어드 함수 만들기 DELIMITER $$ CREATE FUNCTION 스토어드_함수이름(매개변수) RETURNS 반환형식 BEGIN 프로그래밍문 RETURN 반환값 ; END $$ DELIMITER ; -- 스토어드 함수 결과 출력하기 SELECT 스토어드_함수이름() ; 스토어드 함수와 프로시저는 비슷해보이지만 자세히 보면 차이점을 알 수 있다. 숫자 두 개를 합산하는 간단한 스토어드 함수를 만들어보자. -- 스토어드 함수 만들..

스토어드 프로시저(Stored procedure)를 사용하면 MySQL 안에서도 다른 프로그래밍 언어처럼 프로그램 로직의 코딩이 가능하다. 스토어드 프로시저 기본 스토어드 프로시저의 개념과 형식 스토어드 프로시저는 MySQL에서 제공하는 프로그래밍 기능이다. 이는 쿼리 문의 집합으로도 볼 수 있으며, 어떠한 동작을 일괄 처리하기 위한 용도로 사용한다. 스토어드 프로시저의 일반적인 형식은 아래와 같다. -- 스토어드 프로시저 만들기 DELIMITER $$ CREATE PROCEDURE 스토어드_프로시저_이름(IN 또는 OUT 매개변수) BEGIN SQL 문 END $$ DELIMITER ; -- 스토어드 프로시저 호출하기 CALL 스토어드_프로시저_이름() ; 여기서 DELIMITER 라는 것은 '구분자'..

지금까지는 인덱스의 개념을 파악했다면, 실제로 인덱스를 생성하는 SQL을 익히도록 하자. 인덱스의 생성과 제거 문법 인덱스 생성 문법 앞에서 PRIMARY KEY를 지정하면 클러스터형 인덱스가, UNIQUE를 지정하면 보조 인덱스가 생성되는 것을 확인하였다. 이외에 직접 인덱스를 생성하려면 CREATE INDEX 문을 사용해야 한다. -- 인덱스 생성 CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열_이름) [ASC | DESC] ; UNIQUE를 쓰면 중복이 안 되는 고유 인덱스를 만드는 것이고, 이를 생략하면 중복이 허용된다. ASC/DESC는 오름차순, 내림차순을 의미한다. 인덱스 제거 문법 -- 인덱스 제거 DROP INDEX 인덱스_이름 ON 테이블_이름 ; 여기서 기본..

클러스터형 인덱스와 보조 인덱스느 모두 내부적으로 균형 트리로 만들어진다. 여기서 균형 트리(Balanced tree, B-tree)는 자료구조에서 사용되는 데이터의 구조로, 뿌리, 줄기, 잎으로 구성되어 있다. 인덱스의 내부 작동 원리 인덱스의 내부 작동 원리를 이해하면 인덱스를 사용해야 할 경우와 아닌 경우를 선택할 때 도움이 된다. 균형 트리의 개념 균형 트리 구조에서 데이터가 저장되는 공간을 노드(node)라고 한다. 루트 노드(root node)는 가장 상위의 노드를 말하고, 모든 출발은 루트노트에서 시작되고 리프노트(leaf node)로 마무리된다. 이 사이에 있는 노드는 중간 노드(internal node)라고 부른다. MySQL에서는 node 대신 페이지(page)라고 부른다. 균형 트리의..

인덱스는 SELECT를 사용해서 테이블을 조회할 때 결과를 빠르게 추출하도록 도와주는 것으로, 실무에서는 현실적으로 인덱스 없이 데이터베이스 운영이 불가능하다. 클러스터형 인덱스(cluetered index)와 보조 인덱스(secondary index)가 있다. 인덱스의 개념 인덱스는 데이터를 빠르게 찾을 수 있도록 해주는 도구이다. 인덱스의 문제점 필요 없는 인덱스를 만든 것은 데이터베이스가 차지하는 공간만 늘어나고, 인덱스를 이용하여 데이터를 찾는 것이 전체 테이블을 찾아보는 것보다 느려질 수도 있다. 인덱스의 장점과 단점 장점) 적절한 인덱스를 생성하고 인덱스를 사용하는 쿼리문을 만들면 기존보다 아주 빠른 응답 속도를 얻을 수 있다. 그 결과 컴퓨터의 부담이 줄어서 전체 시스템의 성능이 향상된다. ..

뷰(view)를 사용하면 사용자에게 필요한 정보만을 보여줄 수 있다. 뷰는 데이터베이스 개체 중 하나로, 실제로 데이터를 가지고 있지는 않다. 뷰는 단순 뷰와 복합 뷰로 나뉘는데, 단순 뷰는 하나의 테이블과 연관된 뷰를 의미하고 복합 뷰는 2개 이상의 테이블과 연관된 뷰를 의미한다. 뷰의 개념 뷰의 기본 생성 먼저 market_db 에 있는 member 테이블에서 mem_id, mem_name, addr의 열만을 출력해보자. USE market_db ; SELECT * FROM member ; SELECT mem_id, mem_name, addr FROM member ; 위에서 보이는 것처럼, 출력 결과는 세 개의 열을 갖고 있는 '테이블'로 볼 수도 있다. 즉, 뷰의 실체란 SELECT 문이 되는 것이..

테이블을 만들 때에는 PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT 등과 같은 제약조건을 설정해줘야 한다. 이를 잘 이해하고 활용하면 데이터의 오류를 줄여 완전무결한 코드를 만들 수 있다. 제약조건의 기본 개념과 종류 제약조건이란 데이터의 무결성을 지키기 위해 제한하는 조건이다. ※ 데이터의 무결성: 데이터에 결함이 없음. 기본 키(PRIMARY KEY) 제약조건 데이터를 구분할 수 있는 식별자를 PRIMARY KEY, 기본 키라고 부른다. 회원 테이블의 아이디, 학생 테이블의 학번 등을 예로 들 수 있다. NULL값 입력 불가 중복값 입력 불가 테이블에서 기본 키는 1개만 가질 수 있음. CREATE TABLE에서 설정하는 기본 키 제약조건 CREATE TABL..

테이블(table)은 표 형태로 구성된 2차원 구조로, 행과 열로 구성되어 있다. 여기서 행(row)은 레코드(record)라고도 불리며 열(column)은 필드(field)라고도 불린다. 데이터베이스와 테이블 설계하기 테이블을 만들기 전에는 설계를 먼저해야한다. 테이블 설계는 테이블 이름, 열 이름, 데이터 형식, 기본 키 등을 설정하는 것이다. GUI 환경에서 테이블 만들기 데이터 베이스 생성하기 간단한 쿼리문을 통해 naver_db라는 데이터베이스를 만들어보기로 하자. # 간단한 SQL 문으로 데이터베이스 만들기 CREATE DATABASE naver_db ; SQL로 만든 데이터베이스는 화면에 바로 적용되지 않기 때문에 SCHEMAS 패널에 보이지 않는다. 그때는 SCHEMAS 패널의 빈 곳에서 ..