SQL 2

[SQL] where절과 having 절의 차이

오늘은 SQL을 사용할 때 혼동하기 쉬운 문법인 where 절과 having 절의 차이에 대해서 포스팅 하겠다. (단, 아래 내용은 postgre sql 기준이다.) ​ 보통 sql 문법은 select from where 로 이루어져 있는데 여기서 where는 기본적으로 from 에 들어있는 relation에 대한 조건으로써 역할을 하게 된다. ​ 그런데 만약 group by 함수를 통해 데이터의 통계량을 그룹별로 구하였을 때, 그 그룹에 대한 조건을 걸기 위해서는 having 절을 사용해야 한다. ​ 그 예로 ​ select age from patients where age>=30; ​ 이라는 구문을 쓰면 30세 이상의 환자들만 뽑히는 쿼리가 될 것이다. ​ 그런데 만약 ​ select disease,..

[데이터베이스] Key의 종류

(관계형) 데이터베이스 (RDBMS) 의 각 table을 relation이라고 하며 relation은 attribute(column name)와 tuple(rows)들로 이루어져있다. 이때 attribute들의 부분집합으로 super key를 정의할 수 있다. ​ 여기서 key란, 해당 attribute들의 tuple들이 서로 겹치지 않을 때, 그 해당 attribute들은 super key가 될 자격을 가지게 된다. 예를 들어, 아래와 같은 table이 주어졌다고 할 때, {age,sex}, {age,bloodtype} 등은 super key가 될 수 있다. 한편, candidate key란 위의 가능한 super key의 후보들 중 최소한의 개수(cardinality)를 갖는 key이다. 예를 들면,..