집합 연산 이론 집합 연산자 UNION연산자 : 합집합 : 여러 데이터 집합을 결합할 수 있음 UNION : 결합된 집합을 정렬하고 중복을 제거함 UNION ALL : 그렇지 않음 SELECT 'CUST' TYP, C.FIRST_NAME, C.LAST_NAME FROM CUSTOMER C UNION ALL SELECT 'ACTR' TYP, A.FIRST_NAME, A.LAST_NAME FROM ACTOR A; SELECT C.FIRST_NAME, C.LAST_NAME FROM CUSTOMER C WHERE C.FIRST_NAME LIKE 'J%' AND C.LAST_NAME LIKE 'D%' UNION ALL SELECT A.FIRST_NAME, A.LAST_NAME FROM ACTOR A WHERE A..
1. 조인 1) 데카르트 곱 SELECT C.FIRST_NAME, C.LAST_NAME, A.ADDRESS FROM CUSTOMER C JOIN ADDRESS A → 두 테이블을 어떻게 조인할 지 지정해주지 않았기 때문에 서버가 교차조인(고객 599명 X 주소 603개) 해버림 2) 내부조인 한 쪽 테이블에는 ADDRESS_ID가 있지만 다른 한 쪽에는 없는 경우는 결과 값에서 제외됨 SELECT C.FIRST_NAME, C.LAST_NAME, A.ADDRESS FROM CUSTOMER C INNER JOIN ADDRESS A ON C.ADDRESS_ID = A.ADDRESS_ID; 3) ANSI문법 -- 기존 SELECT C.FIRST_NAME, C.LAST_NAME, A.ADDRESS FROM CUS..
1. 조건 평가 : WHERE절에는 AND 또는 OR로 구분된 하나 이상의 조건이 포함될 수 있음 SELECT ... FROM ... WHERE FIRTST_NAME = 'STEVEN' AND CREATE_DATE > '2006-01-01' --혹은 OR CREATE_DATE > '2006-01-01' 괄호 사용 : 조건이 3개 이상이 될 경우, 서버와 다른 사람을 위해서 괄호를 사용해서 의도를 명확하게 하는 것이 좋음 SELECT ... FROM ... WHERE (FIRST_NAME = 'STEVEN' OR LAST_NAME = 'YOUNG') AND CREATE_DATE > '2006-01-01' NOT사용 SEL..
1. 쿼리 동작 순서 서버는 전송된 쿼리가 실행 되기 전 아래 3가지를 확인함 전송된 쿼리 구문을 실행할 권한이 있는가 원하는 데이터에 접근할 권한이 있는가 문법이 정확한가 쿼리 옵티마이저(쿼리 실행 시 가장 효율적인 방법을 결정)로 쿼리를 전달 FROM절에 명명된 테이블에 조인할 순서 및 사용가능한 인덱스를 확인 서버가 쿼리 실행에 필요한 실행계획을 선택함 서버가 쿼리 실행을 마치면 호출한 툴로 결과셋을 반환 2. 쿼리절 SELECT : 쿼리 결과에 포함할 열 결정 FROM : 검색할 테이블과 조인하는 방법을 식별 WHERE : 불필요한 데이터를 필터링 GROUP BY : 공통 열 값을 기준으로 행을 그룹화 HAVING : 불필요한 그룹을 필터링 ORDER BY : 하나 이상의 열을 기준으로 행을 정렬..
데이터베이스(Database)란 관련된 정보들의 집합 (예: 전화번호부) 전화번호부를 예로 보면 많은 항목으로 찾는데 오랜 시간이 걸리거나 이사를 할 경우 정보의 정확성이 떨어짐 → 전산화된 데이터 저장 및 검색 메커니즘을 제공하는 데이터베이스 시스템 비관계형 데이터베이스 시스템 계층형 데이터베이스 시스템 네트워크 데이터베이스 시스템 관계형 데이터베이스 시스템 데이터를 테이블 집합으로 나타냄 포인터를 사용, 관련 엔티티를 탐색하는 대신 중복 데이터(외래키, Foreign Key)를 사용하여 서로 다른 테이블의 데이터를 연결 ( → JOIN) ex) ACCOUNT테이블 : 고객의 고유 식별자 포함 (O) 고객의 성, 이름, 전화번호 등의 정보 포함(X) → CUSTOMER 테이블에 저장 및 수정해야 함→ ..