검수요청.png검수요청.png

쿼리

해시넷
이동: 둘러보기, 검색

쿼리(Query)란 데이터베이스파일의 내용 중 원하는 내용을 검색하기 위하여 몇 개의 코드(code)나 (Key)를 기초로 질의하는 것을 말한다.

개요

간단한 홈페이지를 개발할 경우 대부분의 홈페이지는 게시판 혹은 방명록 정도의 데이터를 보관할 수 있는 형태의 데이터베이스를 구축하게 된다. 데이터베이스는 개발자의 의도에 따라 약간씩 다르기는 하지만 대부분 유사한 형태의 구조를 가지는 테이블을 포함하게 되는데, 여기서 사용자 혹은 관리자들은 테이블에서 특정 조건에 해당하는 자료를 조회하거나 출력하는 등의 작업을 한다. 이렇게 데이터가 입력된 데이터베이스에서 원하는 조건의 데이터를 가져오려면 특정한 구조의 프로그램 언어(데이터베이스 언어)를 사용하게 되는데 이러한 데이터베이스용 언어를 SQL(Structed Query Language) 이라고 한다. SQL 언어는 대부분의 데이터베이스가 95% 이상 되는 호환성을 가진 언어로 이루어져 있으며 SQL 언어로서 특정데이터베이스에서 원하는 조건의 데이터를 조작하는 언어의 집합(문장)을 쿼리라 한다. 쿼리는 데이터베이스를 조작하는 여러 가지 형태로 표현될 수 있으며 데이터를 다루는 프로그램에서는 필수적인 요소이다. [1]

SQL

  • SQL : Structured Query Language의 약자로 데이터베이스에서 데이터를 조회하고 입력하고 수정하고 삭제하고 저장하는데 사용되는 질의 언어이다.

SQL은 구조화된 언어로써 '구조화되었다' 라는 것은 어느 일정한 틀, 패턴이 있다는 뜻이다. 그리고 '이 패턴에 맞게 조건들을 선언한다' 라는 의미에서 선언적 언어라고도 한다.[2] SQL은 비절차적인 언어이기 때문에 사용자가 프로그램을 작성할 때 데이터 연상에 대한 처리 과정을 명시하는 것이 아니라, 단지 데이터로부터 얻고자 하는 연산 결과만을 명시하도록 한다. 이는 다른 언어와 달리 사용자 편의 중심의 언어라는 의미로, 사용자 관점에서 어떻게 행해지는가 보다는 무엇을 해야 하는지를 명시하는 언어임을 의미한다.[3]

역사

SQL은 76년 IBM의 관계형 데이터베이스인 시스템R에서 처음 사용된 것으로 알려져 있다. 그러나 SQL의 기초는 이보다 3년 전인 73년 SQUARE(Structuerd Query As Relational Expressions)에 의해 관계형 데이터베이스 언어에 대한 기반이 이루어졌다. 74년에는 SQUARE를 기반으로 SEQUEL이 76년에는 SEQUEL2가 각각 발표됐다가 시스템R, 오라클 등이 발표되면서 SQL이라는 이름으로 사용됐다. 데이터베이스 언어로서 SQL이 정의된 것은 86년으로 ANSI에 의해 제정됐으며 89년 ANSI 스탠더드 SQL은 어떤 프로그래밍 언어에도 독립적인 언어로 등록됐다. 현재 SQL은 오라클과 잉그레스, 인포믹스 등 관계형 데이터베이스 프로그램에서 사용하고 있으며 PC용 데이터베이스 프로그램 중에도 SQL을 사용하는 프로그램이 있을 정도로 보편화됐다. 프로그래밍 언어로는 비주얼 베이식, 비주얼C++, 파워빌더, 델파이 등 프로그래밍 언어도 SQL을 이용해 DB에 접근하기 위한 방법을 제공하고 있다.[4]

특징

배우고 사용하기 쉬운 언어이다. 그리고 프로그래밍 언어들처럼 절차적인 개별 단위로 처리되기보다는 데이터의 집합(set) 단위로 처리된다. 또한, 실제 데이터들이 어떻게 처리되는지에 대한 세부적인 과정은 SQL 문장을 작성하는 사람은 신경 쓰지 않아도 된다는 장점이 있다. [2]

구문

데이터 정의어(DDL)

  • 데이터 정의어(DDL, Data Definition Language) : 데이터베이스를 정의하는 언어이며 데이터를 생성, 수정, 삭제하는 등 데이터 전체의 골격을 결정하는 역할을 하는 언어이다.[5]
구문 설명
CREATE 데이터베이스, 테이블 등을 생성하는 역할을 한다.
ALTER 테이블을 수정하는 역할을 한다.
DROP 데이터베이스, 테이블을 삭제하는 역할을 한다.
TRUNCATE 테이블을 초기화시키는 역할을 한다.

데이터 조작어(DML)

  • 데이터 조작어(DML, Data Manipulation Language) : 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정, 삭제하는 등의 역할을 하는 언어이다.

[5]

구문 설명
SELECT 데이터를 조회하는 역할을 한다.
INSERT 데이터를 삽입하는 역할을 한다.
UPDATE 데이터를 수정하는 역할을 한다.
DELETE 데이터를 삭제하는 역할을 한다.

데이터 제어어(DCL)

  • 데이터 제어어(DCL, Data Control Language) : 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어이다.[5]
구문 설명
GRANT 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여한다.
REVOKE 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수한다.
COMMIT 저장되지 않은 모든 데이터를 데이터베이스에 저장하고 현재의 트랜잭션을 종료하는 역할을 한다.
ROLLBACK 트랜잭션의 작업을 취소 및 복구하는 역할을 한다.

각주

  1. 쿼리마법사, 〈쿼리란
  2. 2.0 2.1 anaque, 〈SQL 정의 SQL 약자, SQL 특징, DML, DDL 〉, 2019년 8월 17일
  3. incodom, 〈SQL 〉, 2016년 8월 23일
  4. 전자신문, 〈용어로 보는 컴퓨터 역사 54 SQL 〉, 1997년 5월 24일
  5. 5.0 5.1 5.2 서버이야기, 〈SQL의 종류 DDL, DML, DCL 이란?

참고자료

같이 보기


  검수요청.png검수요청.png 이 쿼리 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.