쿼리 언어는 데이터베이스나 정보 시스템으로부터 정보를 검색하고, 조작하며, 관리하기 위해 설계된 컴퓨터 언어이다. 사용자가 원하는 데이터를 특정 조건에 따라 요청(쿼리)하고, 그 결과를 얻을 수 있도록 해준다.
주로 다음과 같은 목적으로 사용된다:
- 데이터 검색 (Data Retrieval): 데이터베이스에 저장된 특정 정보를 조회하고 가져온다.
- 데이터 조작 (Data Manipulation): 새로운 데이터를 삽입(INSERT)하거나, 기존 데이터를 수정(UPDATE)하고, 삭제(DELETE)한다.
- 데이터 정의 (Data Definition): 테이블, 인덱스 등 데이터베이스의 구조를 생성, 변경, 삭제한다.
- 데이터 제어 (Data Control): 데이터에 대한 접근 권한을 부여하거나 회수한다.
쿼리 언어는 크게 선언적(Declarative) 언어와 절차적(Procedural) 언어로 나눌 수 있으나, 대부분의 쿼리 언어는 '무엇을' 원하는지 명시하는 선언적 방식을 채택한다. 이는 사용자가 '어떻게' 데이터를 가져올지 구체적인 단계를 지정할 필요 없이, 원하는 결과만을 기술하도록 하여 사용 편의성을 높인다. 또한, 일반적으로 자연어와 유사한 구문 구조를 가지는 경우가 많아 비교적 쉽게 학습하고 사용할 수 있다.
가장 널리 알려지고 표준화된 쿼리 언어는 관계형 데이터베이스를 위한 SQL(Structured Query Language)이다. SQL은 거의 모든 관계형 데이터베이스 관리 시스템(RDBMS)에서 사용되며, 데이터베이스와 상호작용하는 사실상의 표준으로 자리 잡았다.
SQL 외에도 다음과 같은 다양한 쿼리 언어들이 특정 데이터 모델이나 애플리케이션 요구사항에 맞춰 개발되어 사용되고 있다:
- NoSQL 데이터베이스 쿼리 언어: MongoDB Query Language (MQL), Cassandra Query Language (CQL) 등이 있으며, 각 NoSQL 데이터베이스의 특성에 맞춰 최적화되어 있다.
- 그래프 데이터베이스 쿼리 언어: Cypher (Neo4j), Gremlin (Apache TinkerPop) 등이 있으며, 그래프 구조의 데이터를 효율적으로 탐색하고 조작하는 데 특화되어 있다.
- 시맨틱 웹 쿼리 언어: SPARQL (SPARQL Protocol and RDF Query Language)은 RDF(Resource Description Framework) 데이터를 쿼리하는 표준 언어이다.
- XML 쿼리 언어: XQuery는 XML 문서를 쿼리하고 변환하기 위한 언어이다.
- 웹 API 쿼리 언어: GraphQL은 클라이언트가 필요한 데이터를 정확히 요청할 수 있도록 하는 API를 위한 쿼리 언어이다.
쿼리 언어는 데이터베이스 시스템의 핵심적인 구성 요소로서, 개발자, 데이터 분석가, 일반 사용자 등 다양한 주체가 데이터에 접근하고 활용할 수 있도록 하는 필수적인 도구이다.