Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- SQL
- PHP객체지향
- 객체복제
- dhgrp
- ai 에이전트
- 소프트웨어설계
- 디자인패턴
- SQL기초
- 데이터베이스
- 매직메서드
- 객체지향
- PHP
- LLM
- 라라벨
- 어댑터패턴
- 인덱스
- OOP
- Tool Calling
- SQL문법
- MCP
- docker
- MySQL
- docker network
- mcp client
- 데코레이터패턴
- Agent Loop
- mcp server
- ai agent
- Laravel
- linux 권한
Archives
- Today
- Total
개발블로그
[SQL] SQL 개념 본문
Contents
접기
SQL이란
Structured Query Language
관계형 데이터베이스 관리 시스템에 데이터 작업을 요청하는 언어
애플리케이션 또는 사용자
↓ SQL -- DBMS에 작업을 요청하는 언어
↓
DBMS - 데이터베이스를 관리하는 소프트웨어
↓
데이터베이스 작업 처리
| 작업 | 설명 |
| 데이터 조회 | 필요한 데이터를 검색 |
| 데이터 추가 | 새로운 행을 저장 |
| 데이터 수정 | 기존 데이터를 변경 |
| 데이터 삭제 | 저장된 데이터를 제거 |
| 구조 정의 | 테이블과 컬럼을 생성·변경 |
| 권한 관리 | 사용자의 접근 권한 설정 |
| 트랜잭션 제어 | 여러 작업을 확정하거나 취소 |
특징
선언적 언어 (원하는 결과가 무엇인지 표현)
필요한 데이터의 조건을 작성하고, 실제 처리 과정은 DBMS에 맡긴다.
처리 과정보다 원하는 결과를 표현함
- 어떤 테이블에서
- 어떤 데이터를
- 어떤 조건으로 가져올 것인지 요청
=> 실제 데이터를 어떻게 처리할지는 DBMS가 결정
cf) 일반적인 프로그래밍 언어 => 작업 과정을 직접 작성함
ex) 데이터를 읽는다 / 각 데이터를 반복해서 확인한다 / 조건을 비교한다 / 조건에 맞는 데이터만 결과에 넣는다
ex)
SELECT *
FROM users
WHERE status = 'active';
users 테이블에서 status가 active인 회원 데이터를 조회한다.
=> 개발자는 데이터를 찾는 세부 절차까지 직접 작성하지 않는다.
(어떤 행부터 읽을 것인가, 어떤 순서로 데이터를 확인할 것인가, 인덱스를 사용할 것인가, 테이블 전체를 읽을 것인가)
종류
| 분류 | 역할 | 대표 명령 |
| DDL | 데이터 구조 정의 | CREATE, ALTER, DROP |
| DML | 실제 데이터 조회·변경 | SELECT, INSERT, UPDATE, DELETE |
| DCL | 사용자 권한 관리 | GRANT, REVOKE |
| TCL | 트랜잭션 제어 | COMMIT, ROLLBACK |
'STUDY > SQL' 카테고리의 다른 글
| [SQL] JOIN (0) | 2026.07.29 |
|---|---|
| [SQL] SQL 기본 조회 (0) | 2026.07.29 |
| [데이터베이스와 DBMS 기초] 관계형 데이터베이스의 기본 구조 (0) | 2026.07.28 |
| [데이터베이스와 DBMS 기초] 데이터베이스와 DBMS (0) | 2026.07.27 |
| [인덱스] MySQL 쿼리에서 인덱스가 활용되는 원리: WHERE, ORDER BY, GROUP BY, JOIN (0) | 2026.07.27 |