2026/03 11

[Real MySQL] 4-2. 아키텍쳐: InnoDB 스토리지 엔진 아키텍쳐 (3)

7. 클러스터링 클러스터형 인덱스테이블 자체가 프라이머리 키 인덱스와 결합되어 저장되는 구조InnoDB에서는 프라이머리 키가 클러스터형 인덱스 역할을 하며, 해당 인덱스 안에 테이블의 모든 컬럼 데이터가 함께 저장됨.항목자세한 설명테이블 = 인덱스별도의 테이블 파일에 데이터를 따로 저장하지 않음프라이머리 키 인덱스의 B+ Tree 구조의 리프(Leaf) 노드에 모든 데이터가 포함됨.정렬 저장이 구조 때문에 데이터가 프라이머리 키 순서대로 물리적으로 정렬되어 저장됨 → 범위 조회에 특히 효율적. 보조 인덱스프라이머리 키가 아닌 다른 컬럼에 대해 생성한 인덱스 (예: email, username 등).항목자세한 설명구조적 특징인덱스 컬럼 값 + 해당 레코드의 프라이머리 키 값만을 저장함데이터 접근 방식1. ..

Database/Mysql 2026.03.14

[리눅스 마스터] 6-2. 쉘

1. 분기문코드) if더보기a=10if [ $a -gt 5 ]; then echo "a는 5보다 크다"firead aif [ $a -gt 0 ]; then echo "양수"elif [ $a -eq 0 ]; then echo "0"else echo "음수"fi 표) 조건 연산자더보기연산자의미-eq같다-ne같지 않다-gt크다-lt작다-ge크거나 같다-le작거나 같다 2. 산술 연산코드) $(( ))더보기echo $((a-b)) 3. 문자열head텍스트 파일이나 표준 입력의 앞부분을 출력하는 명령어 표) 주요 옵션더보기옵션의미-n출력할 줄 수 지정-c출력할 문자 수 지정 tail파일이나 입력 데이터의 마지막 부분을 출력 표) 주요 옵션더보기옵션의미-n마지막 n줄 출력-c마지막 n 문자(..

OS 2026.03.10

[MySQL][SQL] 8. TCL

1. TCL데이터베이스에서 트랜잭션의 실행 흐름을 제어하는 SQL 명령어 2. 명령어명령어설명특징START TRANSACTION트랜잭션 시작 COMMIT변경 사항을 확정트랜잭션 종료 (Rollback 불가)ROLLBACK변경 사항 취소- 트랜잭션에서 수행한 내용 모두 취소됨- 트랜잭션이 비정상 종료되면 자동 롤백됨SAVEPOINT트랜잭션 내 특정 지점 지정이 지점을 기준으로 부분 롤백이 가능함ROLLBACK TO SAVEPOINT지정된 지점으로 되돌림트랜잭션 실행 중 오류로 인해 재실행 시, 전체 롤백이 아닌 부분롤백으로 계산량을 줄일 수 있음 예시더보기START TRANSACTION;INSERT INTO tc_test VALUES('a');INSERT INTO tc_test VALUES('b');INS..

Database/Mysql 2026.03.08

[MySQL][SQL] 7. DCL

1. DCL사용자 계정과 권한을 제어하는 SQL 명령어mysql 시스템 스키마의 권한 테이블에 반영됨 2. 명령어Grant사용자 또는 역할에 데이터베이스 객체에 대해 권한을 부여하는 명령어✅ Grant Option: 자신이 가진 권한을 다른 사용자에게 다시 부여할 수 있음 표) Scope더보기Scope예시GlobalGRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';DatabaseGRANT SELECT ON sales_db.* TO 'user1'@'localhost';TableGRANT SELECT, INSERT ON sales_db.orders TO 'user1'@'localhost';ColumnGRANT SELECT(name, price) ON sales_db...

Database/Mysql 2026.03.08

[MySQL][SQL] 5. Set Operation

1. 합집합UNION두 개 이상의 Select 결과를 합쳐서 하나의 결과 집합으로 만드는 연산자 (중복 제거)✅ 위 → 아래 순서로 합침✅ 컬럼 개수, 컬럼 타입, 컬럼 순서가 맞아야 함 코드) Union더보기(SELECT column1, column2FROM table1)UNION(SELECT column1, column2FROM table2;) UNION ALL두 개 이상의 Select 결과를 합쳐서 하나의 결과 집합으로 만드는 연산자 (중복 포함)✅ 성능이 Union보다 빠름✅ 컬럼 개수, 컬럼 타입, 컬럼 순서가 맞아야 함 코드) Union All더보기(SELECT column1, column2FROM table1)UNION ALL(SELECT column1, column2FROM table2;)..

Database/Mysql 2026.03.07

[MySQL][SQL] 4. Subquery

1. SubquerySQL 문 안에 포함된 또 다른 SELECT 문✅ 결과 기반 처리 (다른 쿼리 결과를 조건으로 사용)✅ 중첩 가능 종류구분정의특징Nested SubqueryWHERE 절 내부에 작성되는 서브쿼리조건 필터링에 사용, 여러 행 반환 가능Scalar Subquery하나의 값만 반환하는 서브쿼리반환값 1행 1열, 여러 값 반환 시 오류FROM SubqueryFROM 절에 작성되는 서브쿼리가상 테이블 생성, alias 필수, JOIN 가능Correlated Subquery외부 쿼리의 값을 사용하는 서브쿼리외부값 참조, 행마다 실행, 성능이 JOIN보다 느릴 수 있음 코드) Nested Subquery더보기SELECT *FROM employeesWHERE department_id IN ( ..

Database/Mysql 2026.03.05

[MySQL][SQL] 3-2. Inner Function: Multi Row

1. Aggregation여러 행의 데이터를 하나로 요약하여 집계값을 반환하는 연산 Group By특정 컬럼 기준으로 행을 그룹화✅ Null 값도 하나의 그룹으로 포함됨✅ True/False 값은 1/0으로 처리됨 Having그룹의 결과를 필터링함✅ Group By 이후 집계 결과에서 포함될지 결정됨 2. Column Functions✅ 함수 값이 없을 경우 Null로 표기됨 기본 집계 함수함수설명예시COUNT()행 개수COUNT(*)SUM()합계SUM(price)AVG()평균AVG(score)MAX()최대값MAX(salary)MIN()최소값MIN(age) 비트 집계 함수함수설명BIT_AND()비트 AND 집계BIT_OR()비트 OR 집계BIT_XOR()비트 XOR 집계 문자열 집계 함수함수설명GROUP..

Database/Mysql 2026.03.05

[MySQL][SQL] 6. Join

1. Join여러 테이블의 데이터를 조인 조건에 따라 결합하여 하나의 결과 집합을 생성하는 연산✅ 정규화로 나뉜 테이블의 데이터를 함께 조회하기 위해 사용 성능DB는 조인 순서에 따라 테이블을 읽고 결과를 결합하며 조인을 수행➡️ 작은 테이블부터 읽는것이 성능상 유리함 (반복 탐색 횟수가 줄어듬) 2. 종류구분설명조인 조건특징INNER JOIN두 테이블에 공통으로 존재하는 데이터만 조회✅가장 일반적인 JOINLEFT JOIN왼쪽 테이블 기준으로 모든 데이터 조회✅오른쪽 테이블에 매칭 없으면 NULLRIGHT JOIN오른쪽 테이블 기준으로 모든 데이터 조회✅왼쪽 테이블에 매칭 없으면 NULLCROSS JOIN두 테이블의 모든 조합 생성 (Cartesian Product)❌결과 행 수 = A×BSELF JO..

Database/Mysql 2026.03.04

[MySQL][SQL] 3-1. Inner Function: Single Row

1. Number함수설명예시결과ABS(n)절대값 반환ABS(-5)5CEILING(n)올림CEILING(3.2)4FLOOR(n)내림FLOOR(3.9)3ROUND(n,i)반올림 (소수 i자리)ROUND(3.456,2)3.46TRUNCATE(n,i)버림 (소수 i자리)TRUNCATE(3.456,2)3.45GREATEST(n1,n2,…)가장 큰 값GREATEST(3,7,5)7LEAST(n1,n2,…)가장 작은 값LEAST(3,7,5)3POW(x,y)x의 y제곱POW(2,3)8MOD(n,m)나머지MOD(10,3)1 2. String함수설명예시결과ASCII(s)첫 글자의 ASCII 코드 반환ASCII('A')65CONCAT(s1,s2,…)문자열 연결CONCAT('Hello',' ','World')Hello Worl..

Database/Mysql 2026.03.04

[MySQL][SQL] 2. DML

0. Null값이 없음 (0, 빈 문자열 ❌)✅ Null과 연산하면 결과도 Null 임 표) Null 표현더보기종류표현결과동등 연산자NULL = 1NULL사칙 연산10 / NULLNULL비교 연산자NULL > 5NULL논리 연산자 (AND)NULL AND TRUENULL논리 연산자 (OR)NULL OR TRUETRUE부정NOT NULLNULL 표) Null 함수더보기SELECT IFNULL(salary, 0) FROM emp; SELECT COALESCE(col1, col2, 0) FROM table1;SELECT salary / NULLIF(bonus, 0);SELECT * FROM emp WHERE salary IS NULL; # ⚠️ = NULL 사용불가SELECT * FROM emp WHERE s..

Database/Mysql 2026.03.04