DBGuide

SQL이란 무엇인가

📖 약 2🏷 SQL 기초

SQL이란?

SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조회, 삽입, 수정, 삭제하기 위한 표준 언어입니다. 1970년대 IBM에서 개발되었고, 지금도 전 세계 개발자가 매일 사용합니다.

SQL은 "어떻게 찾아라"가 아니라 "무엇을 원하는지" 선언하는 언어입니다. 예를 들어 "주문 금액이 5만원 이상인 고객 목록"을 달라고 선언하면, 데이터베이스 엔진이 가장 효율적인 방법을 스스로 찾아냅니다.

왜 SQL을 배워야 할까?

거의 모든 애플리케이션은 데이터를 저장합니다. 사용자 정보, 주문 내역, 게시물 — 이 모든 것이 데이터베이스에 들어갑니다. SQL을 모르면 이 데이터를 제대로 다룰 수 없어요.

백엔드 개발자뿐만 아니라 데이터 분석가, 프론트엔드 개발자, 기획자도 SQL을 알면 데이터를 직접 조회하고 검증할 수 있어서 업무 효율이 크게 달라집니다.

PostgreSQL이란?

PostgreSQL은 오픈소스 관계형 데이터베이스 중 가장 강력한 것 중 하나입니다. 단순 데이터 저장을 넘어 JSON, 배열, 지리 데이터까지 처리할 수 있어요. 2023년 기준 개발자 선호도 1위를 달성했고, 대형 스타트업부터 금융권까지 폭넓게 쓰입니다.

-- 가장 간단한 SQL: 테이블의 모든 데이터 조회
SELECT * FROM users;

PostgreSQL vs MySQL vs SQLite: SQLite는 파일 기반으로 모바일/임베디드 앱에 적합하고, MySQL은 단순한 웹 서비스에 많이 쓰입니다. PostgreSQL은 복잡한 쿼리, JSONB, 고급 인덱싱 등 기능이 가장 풍부해서 복잡한 비즈니스 로직을 처리하는 서비스에 유리합니다.

관계형 데이터베이스 핵심 개념

개념 설명
테이블 데이터를 행(row)과 열(column)로 구성한 구조
행 (Row) 테이블의 한 레코드. 예: 사용자 한 명의 정보
열 (Column) 데이터의 속성. 예: name, email, created_at
기본 키 (Primary Key) 각 행을 유일하게 식별하는 값
외래 키 (Foreign Key) 다른 테이블의 행을 참조하는 값. 테이블 간 관계를 정의
스키마 (Schema) 테이블 구조와 제약 조건의 설계도

관계형 DB의 핵심 아이디어는 중복을 최소화하고 참조로 연결하는 것입니다. 주문 테이블에 고객 이름을 매번 저장하지 않고, 고객 ID만 저장하고 고객 테이블을 JOIN해서 가져옵니다. 이렇게 하면 고객 이름이 바뀌어도 한 곳만 수정하면 됩니다.

SQL vs NoSQL

SQL이 항상 정답은 아닙니다. 상황에 따라 NoSQL도 고려해야 합니다.

특성 관계형 DB (SQL) NoSQL
데이터 구조 엄격한 스키마 유연한 구조
장점 일관성, 복잡한 조회, 트랜잭션 수평 확장, 빠른 개발, 대용량
적합한 경우 금융, 주문, 사용자 관리 로그, 캐시, 문서 저장
대표 제품 PostgreSQL, MySQL MongoDB, Redis, Cassandra

팁: 실무에서는 SQL과 NoSQL을 함께 씁니다. 예를 들어 주문 데이터는 PostgreSQL에, 세션 정보는 Redis에, 검색 인덱스는 Elasticsearch에 저장하는 식입니다.

SQL의 4가지 주요 명령

  • SELECT — 데이터 조회
  • INSERT — 데이터 삽입
  • UPDATE — 데이터 수정
  • DELETE — 데이터 삭제

이 네 가지를 CRUD(Create, Read, Update, Delete)라고 부릅니다. 여기에 테이블을 만들고 구조를 바꾸는 DDL(CREATE, ALTER, DROP), 권한을 관리하는 DCL(GRANT, REVOKE)도 있습니다.

다음 챕터에서 SELECT부터 자세히 배워봅니다.

댓글

... 으로 작성됩니다

댓글을 불러오는 중...