SQL
SQL이란?
- 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 조작하기 위한 표준화된 프로그래밍 언어 / 명령어
- SQL을 사용하면 데이터베이스에서 데이터를 저장, 검색, 수정 삭제할 수 있으며, 데이터베이스 구조를 정의하고 관리할 수 있다.
SQL의 주요 특징
- 비절차적 언어 -> 원하는 결과를 명시하면 시스템이 실행 방법을 결정
- 표준화된 문법
- 다양한 데이터베이스 시스템 지원
- 강력한 데이터 조작 기능 -> 복잡한 쿼리와 대용량 데이터 처리 가능
SQL의 주요 구성 요소
- DDL(Data Definition Language) : 데이터베이스 구조 정의
- CREATE : 데이터베이스 객체 생성
- ALTER : 객체 구조 변경
- DROP : 객체 삭제
- TRUNCATE : 테이블 데이터 전체 삭제
- DML(Data Manipulation Language) : 데이터 조작
- SELECT : 데이터 조회
- INSERT : 새 데이터 삽입
- UPDATE : 기존 데이터 수정
- DELETE : 데이터 삭제
- DCL(Date Control Language) : 데이터 접근 권한 관리
- GRANT : 사용자에게 권한 부여
- REVOKE : 사용자의 권한 철회
기본 SQL 명령어
- SELECT
- INSERT
- UPDATE
- DELETE
- CREATE TABLE : 테이블 생성
- ALTER TABLE
- DROP TABLE : 테이블 삭제
- SHOW DATABASES : 전체 데이터베이스 리스팅
- USE
DB이름 : 특정 데이터베이스 선택(특정 폴더(DB)로 접속)
- SHOW TABLES : 현재 접속해 있는 DB안의 모든 테이블들을 리스팅
SQL 제약 조건
- PRIMARY KEY : 고유 식별자
- FOREIGN KEY : 다른 테이블과의 관계 정의
- UNIQUE : 중복 값 방지
- NOT NULL : NULL값 방지
- CHECK : 특정 조건 충족 확인
- DEFAULT : 기본값 설정
SQL 조인
- INNER JOIN : 두 테이블에서 일치하는 행만 반환
- LEFT JOIN : 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행 반환
- RIGHT JOIN : 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행 반환
- FULL OUTER JOIN : 양쪽 테이블의 모든 행 반환
=> 나중에 자세히 다룰 것이다.
SQL 함수
- 집계 함수 : COUNT(), SUM(), AVG(), MAX(), MIN()
- 문자열 함수 : CONCAT(), SUBSTRING(), UPPER(), LOWER()
- 날짜 함수 : DATE(), YEAR(), MONTH(), DAY()
- 수학 함수: ROUND(), ABS(), CEILING(), FLOOR()
SQL 인덱스
- 인덱스는 데이터베이스 성능을 향상키는 데 사용된다.
CREATE INDEX idx_name ON table_name (column_name);
- 장점 : 검색 속도 향상 / 단점 : 추가 저장 공간이 필요, 데이터 수정시 성능 저하
SQL 성능 최적화
- 적절한 인덱스 사용
- 불필요한 조인 피하기
- 서브쿼리 대신 조인 사용
- LIKE 연산자 사용시 와일드카드 위치 주의
- 적절한 데이터 타입 선택
- 실행 계획 분석