Structure Query Language의 줄임말로 직역하면 구조형 질의어란 의미.
관계형 데이터 베이스를 다루기 위해 특별히 고안된 프로그래밍 언어이다.
처음 개발된 것은 1970년대초로 IBM이 만든 SEQUEL가 시초이다.
1987년 ANSI와 ISO에 의해 국제 표준 관계형 데이터 베이스 언어 SQL이 제정되었다.
그 후 SQL-92, SQL:1999, SQL 2003, SQL 2008, ... , SQL 2019 등등 수차례 개정을 거쳤다.
크게 다음 세가지로 나눌 수 있다.
(1) 단순 질의 (simple query)
(2) 결합 질의 (join query)
(3) 중첩 질의 (nested 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
두 개 이상의 표를 사용해 질의를 하는 경우 결합 질의에 해당한다.
SELECT X.사원번호, X.사원명
FROM 사원 X, 부서 Y
WHERE X.소속 = Y.부서번호 AND Y.부서명 = '데이터베이스'
표를 두 개 이상 사용하는 경우 임의의 변수로 지정을 하는데 이를 상관명(correlation name) 혹은 튜플 변수(tuple variable)라고 한다. 위의 예시에선 사원을 X로 부서를 Y라는 튜플에 저장했다. 각 튜플에 속한 속성명을 사용할 때는 점.을 붙여야 한다.
중첩 질의는 하나의 질의문 안에 다른 질의문이 또 들어있는 형태이다.
다른 질의문에 속한 질의문을 SQL에서는 서브 쿼리(sub query)라고 한다.
SELECT *
FROM 사원
WHERE 급여 > (SELECT AVG(급여) FROM 사원)
위에서 괄호로 묶인 부분이 서브쿼리에 해당한다. 위 질의문은 서브쿼리에서 급여의 평균값을 얻어와 WHERE문 안에서 조건을 비교하는데 쓰고 있다.
📚 REFERENCE
- データベース入門 / サイエンス社
데이터베이스 인덱스, 필드, 페치, 데이터페이지 용어 뜻 메모 (0) | 2020.12.07 |
---|---|
[DB기초] ER모델과 개체, 관계 개념 설명 (0) | 2020.11.28 |
[DB기초] 관계형 데이터베이스의 관계 대수 연산 (0) | 2020.11.18 |
[DB기초] 관계형 데이터 베이스 주 키와 후보키, 키 제약이란? (0) | 2020.11.16 |
[DB기초] 관계형 데이터베이스 용어, 릴레이션의 정의 (0) | 2020.11.11 |
댓글 영역