SQL (Structured Query Language)
이 페이지는 AI 문맥에서 자주 쓰이는 SQL (Structured Query Language)의 뜻과 쓰임을 입문 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 5개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
SQL(Structured Query Language)은 관계형 데이터베이스의 데이터를 조회·추가·수정·삭제하고 구조를 정의하는 언어입니다. 테이블에서 어떤 열과 행이 필요한지 조건으로 표현하며 데이터베이스가 그 요청을 처리합니다. SQL은 언어의 이름이고 PostgreSQL 같은 제품은 이를 실행하는 시스템이므로, 같은 SQL이라도 지원 문법과 동작 조건은 제품별로 확인합니다.
테이블에 대한 요청을 표현하는 언어
PostgreSQL의 SQL 입문 문서는 테이블 생성과 데이터 입력, 조회, 결합, 집계, 수정과 삭제를 함께 다룹니다. SQL을 읽기 전용 검색 명령으로만 생각하면 데이터와 구조를 바꾸는 문장의 역할을 놓치게 됩니다. 어떤 문장이 데이터를 읽고 어떤 문장이 변경하는지 구분하면 실행할 계정과 작업 범위를 정하기 쉽습니다.
회원 테이블에서 이메일 열과 가입일 열을 골라 읽는 요청은 열 선택과 행 선택을 나누어 표현합니다. 필요한 열을 명시하면 응답에 포함할 정보가 분명해지고, 조건을 붙이면 대상 행의 범위를 줄일 수 있습니다. 테이블 이름이나 열 이름은 실제 데이터 구조에 맞아야 합니다. 자연어로 원하는 결과를 적었다는 사실만으로 존재하지 않는 열이나 잘못된 관계를 데이터베이스가 알아서 고치지는 않습니다.
SQL 문장은 결과에 필요한 조건을 표현하고 데이터베이스는 그 요청을 수행할 방법을 정합니다. 같은 결과를 원하는 문장이라도 테이블 규모와 인덱스, 통계 등에 따라 실제 비용이 달라집니다. 문장이 짧다고 항상 빠르거나 반환 행이 적다고 읽는 데이터도 항상 적은 것은 아닙니다. 실행 속도는 실제 데이터와 실행 계획을 통해 확인할 대상이며 문법이 맞는지만으로 보장되지 않습니다.
조회 조건과 결과 순서
PostgreSQL의 테이블 조회 문서는 SELECT 문장을 반환할 열, 읽을 테이블, 선택 조건으로 나눕니다. WHERE는 조건이 참인 행을 고르고 ORDER BY는 결과 정렬을 지정합니다. 어느 열을 반환할지와 어떤 순서로 반환할지는 별개의 요청입니다. 화면에서 같은 순서를 계속 보여 줄 필요가 있다면 정렬 기준도 쿼리에 표현합니다.
같은 문서는 DISTINCT로 중복 행을 제거하는 예시를 보여 주면서 결과 순서를 별도로 정하라고 설명합니다. 중복 제거가 된 결과를 받았다는 사실만으로 매번 같은 정렬까지 보장되지는 않습니다. 정렬 열의 값이 같은 행이 여러 개라면 그 사이 순서는 여전히 달라질 수 있습니다. 페이지를 나누어 읽거나 결과를 비교할 때는 같은 값을 가진 행을 구별하는 추가 기준도 고려합니다.
SQL은 데이터베이스와 동일한 이름이 아닙니다. PostgreSQL, MySQL 같은 시스템은 SQL을 지원하지만 제품 고유 기능과 자료형도 갖습니다. 한 제품의 문서에서 본 함수를 다른 제품에서 바로 쓸 수 있는지는 별도 문제입니다. 라이브러리나 API가 쿼리를 대신 만들어 주는 경우에도 실제 실행 대상과 반환 데이터 구조는 남아 있으므로, 도구 이름과 저장 시스템의 역할을 구분합니다.
변경 작업과 트랜잭션 경계
PostgreSQL의 트랜잭션 문서는 여러 단계를 하나의 전부 성공 또는 전부 취소 작업으로 묶는 개념을 설명합니다. PostgreSQL에서는 BEGIN과 COMMIT으로 여러 문장의 경계를 지정하고, 확정 전에 ROLLBACK으로 취소할 수 있습니다. 이런 구문은 언어로 표현한 작업을 데이터베이스가 어떤 단위로 확정할지 정합니다.
수정 대상 조건이 잘못되면 문법상 올바른 SQL도 의도와 다른 데이터를 바꿉니다. 실행 전에 대상 데이터와 계정을 확인하고, 변경 범위가 큰 작업은 복구 방법을 함께 준비하는 이유입니다. 트랜잭션은 묶인 변경의 원자성을 제공하지만 잘못된 조건을 업무상 올바른 조건으로 바꾸지는 않습니다. 이미 확정한 변경과 아직 확정하지 않은 변경도 같은 취소 방법으로 다루지 않습니다.
AI가 만든 쿼리를 사용하는 경우에도 실제 테이블과 열, 권한, 대상 범위를 대조합니다. 성공 응답은 데이터베이스가 문장을 처리했다는 뜻이며 업무상 필요한 행을 정확히 골랐다는 판정까지 대신하지 않습니다. 조회 결과와 변경된 행의 범위를 확인한 기록을 남기면 요청 의도와 실행 결과를 비교할 수 있습니다. 데이터가 달라진 뒤에도 같은 조건이 맞는지 다시 확인할 수 있도록 쿼리와 실행 시점을 함께 보관합니다.
관련 용어
SQL (Structured Query Language)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
