상세 컨텐츠

본문 제목

[DB기초] SQL의 기본 개념

IT/Database

by J KIMS 2020. 11. 24. 17:33

본문

반응형

 

SQL이란? 

Structure Query Language의 줄임말로 직역하면 구조형 질의어란 의미.

관계형 데이터 베이스를 다루기 위해 특별히 고안된 프로그래밍 언어이다.

 

처음 개발된 것은 1970년대초로 IBM이 만든 SEQUEL가 시초이다. 

1987년 ANSI와 ISO에 의해 국제 표준 관계형 데이터 베이스 언어 SQL이 제정되었다.

그 후 SQL-92, SQL:1999, SQL 2003, SQL 2008, ... , SQL 2019 등등 수차례 개정을 거쳤다.


SQL의 질의 종류

 

크게 다음 세가지로 나눌 수 있다.

 

(1) 단순 질의 (simple query)

(2) 결합 질의 (join query)

(3) 중첩 질의 (nested query)

 

(1) 단순질의 (simple query)

SELECT문에 FROM, WHERE 로 조합된 단순한 질의

 

예를 들면 표 사원의 모든 데이터를 보고 싶을때,

SELECT * FROM 사원

라고 입력하는 것이 해당됨.

 

조건을 덧붙이고 싶으면 WHERE을 이용함 

SELECT 사원명, 사원번호 FROM 사원 WHERE 급여 >= 50

이는 급여가 50 이상인 사원명과 사원번호를 표시함

 

- WHERE 조건 안에 BETWEEN, IN, LIKE, NULL, EXISTS 등의 연산자를 사용 할 수 있다.

- WHERE 뒤에 ORDER BY, GROUP BY, HAVING 등의 조건을 덧붙일 수 있다.

- 다음과 같은 집약함수(aggregate function)를 쓸 수 있다. COUNT, SUM, AVG, MAX, MIN

 

 

(2) 결합 질의 (join query)

 

두 개 이상의 표를 사용해 질의를 하는 경우 결합 질의에 해당한다.

 

SELECT X.사원번호, X.사원명

FROM 사원 X, 부서 Y

WHERE X.소속 = Y.부서번호 AND Y.부서명 = '데이터베이스'

 

표를 두 개 이상 사용하는 경우 임의의 변수로 지정을 하는데 이를 상관명(correlation name) 혹은 튜플 변수(tuple variable)라고 한다. 위의 예시에선 사원을 X로 부서를 Y라는 튜플에 저장했다. 각 튜플에 속한 속성명을 사용할 때는 점.을 붙여야 한다.

 

(3) 중첩 질의 (nested query)

 

중첩 질의는 하나의 질의문 안에 다른 질의문이 또 들어있는 형태이다.

다른 질의문에 속한 질의문을 SQL에서는 서브 쿼리(sub query)라고 한다.

 

SELECT *

FROM 사원

WHERE 급여 > (SELECT AVG(급여) FROM 사원)

 

위에서 괄호로 묶인 부분이 서브쿼리에 해당한다. 위 질의문은 서브쿼리에서 급여의 평균값을 얻어와 WHERE문 안에서 조건을 비교하는데 쓰고 있다.

 

 

📚 REFERENCE

- データベース入門 / サイエンス社

- SQL / WIKIPEDIA

반응형

관련글 더보기

댓글 영역