본문 바로가기
데이터베이스

(Database) 쿼리 - QUERY - 질의문 - SQL 에 대해서.

by 언제나초심. 2010. 4. 1.
반응형

QUERY 쿼리 라는 것은 바로 번역을 하면 '질의' 라고 해석이 됩니다.

처음 개발을 하게 되면, 프로그래밍 언어는 알면서도 디비 에 대한 부분을 잘 모르거나, 쿼리에 대해 잘 몰라서 당황하시는 분들을 종종 뵙게 됩니다만.

이해를 쉽게 하기 위해 설명을 드리겠습니다.

DB서버가 구동이 되고 있는 환경에서. (Oracle, Cubrid, MsServer, MySql, Tibero, Altibase 등의 종류가 있습니다)
DB에 명령문을 때리면서 작업을 하게 되는데, 이 때의 명령문을 쿼리 라고 생각을 하시면 되겠습니다.

DB라는 용어는 DataBase 라는 단어의 약자이며, 데이터베이스. 즉, 데이터를 정리하여 보관하고 있는 저장소 처럼 생각을 하시면 되겠습니다. DB Server 라는 얘기는, 데이터를 정리하여 보관하고 있는 저장서버 를 생각하시면 되겠네요.

* 내부 과정 예시
사용자 - > 질의 ( 쿼리문 ) -> DB서버
사용자 <- 결과 <- DB서버


즉, 질의 를 날리고 결과를 얻는 것입니다.
도스를 생각해보시면 커맨드 창에서 [DIR] 을 치면, 해당 위치의 폴더명들이 나열이 되는 것처럼,

특정프로그램(혹은 유틸리티) 창에서 [쿼리]를 날리면, 결과 값이 보여집니다.

하지만, 세세히 따지고 들어가면 개념 자체가 명령문과는 사뭇 다르며, 그러기 때문에 질의문(쿼리) 라고 부르고 있답니다. 이 또한 쿼리 표준이 있기 때문에, DB 종류에 따라서 조금씩은 다르더라도, 큰 틀은 벗어나지 않게 구성이 됩니다.


자. 문제를 내겠습니다.


1. 데이터베이스에 접속을 했고, 데이터를 입력/조회/수정/삭제 등의 작업을 하고 싶습니다. (테이블 생성과 삭제도 마찬가지입니다) 그렇다면 데이터베이스 로 무언가 명령을 내려야 하는데. 이 명령을 무엇이라고 할까요?

답은, 쿼리(질의문 = QUERY) 입니다.


명령문이 존재하지 않다고 보기는 어려우며, 명령문과의 구분짓기 위해 질의문 이라고 기억을 해두시는 것이 낫습니다. 의미상에서도 차이가 있습니다. 프로그램이나 커맨드 등. 일반적으로 이루어지는 명령문 과는 달리, 질의문 이라는 것은 의미상으로 보면, 데이터베이스 서버에 질문을 한다. 라는 의미가 됩니다.

그럴 수 밖에 없는 게, 데이터베이스가 거절 할 수가 있기 때문입니다. 명령문은 실행하거나 취소 하거나 에러를 띄우거나 라는 개념이라면, 질의문은 '님아 죄송, 권한이 없삼' 이라는 듯이 데이터베이스가 산뜻하게 거절 할 수 있다는 의미죠. 그리고 명령문 이라는 개념과 다르게, 질의문은 같은 결과를 내기 위해, 다양한 방법으로 만들 수가 있습니다.

1. A와 B를 합쳐서 주세요.
2. A에 B를 합쳐서 주세요.
3. A에서 B를 빼서 주세요.
4. A에서 B를 뺐다가, B를 다시 추가해서 주세요.

라는 형태가 가능하다는 말이 됩니다. ㅎㅎ
그래서 쿼리를 작성한 사람에 따라서, 속도차이 및 효율 차이가 벌어지게 됩니다.

일반적으로, 질의문 = QUERY = 쿼리. 세 가지가 섞이면서 표현이 되기 때문에. 세 개는 같은 말이다 라고 기억을 해두세요. 책 읽을 때마다 헛갈릴 수가 있습니다.

참고로, SQL 도 같은 용어 입니다. Structure Query Language 의 약자로 기억하고 있는데. 아마 다르더라도 비슷한 의미일 것입니다. ㅎㅎ;;

그러니 총 네 단어를 기억하십시오.

질의문 = QUERY = 쿼리 = SQL

은 같은 말입니다.

반응형