SQL(7)
-
Learning SQL 8장 요약 - 그룹화와 집계
8장 그룹화와 집계 데이터를 그룹화하고 집계(aggregate)하는 방법을 알아본다. 그룹화의 개념 결과셋을 생성하기 전에 데이터베이스 서버에서 데이터를 먼저 손을 보는 것 다음 쿼리를 실행해보면, SELECT customer_id FROM rental; 599명의 고객의 16,000개 넘는 대여기록을 일일이 조회한 결과임을 알 수 있다. 대신 group by 절을 사용해서 데이터베이스 서버에서 데이터를 그룹화 할 수 있다. SELECT customer_id FROM rental GROUP BY customer_id; 결과셋에는 customer_id 열의 각 고윳값을 가지는 행이 하나씩 포함된다. 각 고객이 대여한 영화 수를 확인하려면 집계함수를 사용해서 행 수를 계산할 수 있다. SELECT custo..
2022.12.01 -
Learning SQL 7장 요약 - 데이터 생성, 조작과 변환
7장 데이터 생성, 조작과 변환 SQL 문에서 어떻게 데이터가 생성되고 조작되는지 알아본다. 문자열 데이터 처리 먼저 다음 테이블을 생성하자. CREATE TABLE string_tbl( char_fld CHAR(30), vchar_fld VARCHAR(30), text_fld TEXT ); 문자열 생성 가장 간단한 방법은 문자열을 따옴표로 묶는 것이다. INSERT INTO string_tbl (char_fld, vchar_fld, text_fld) VALUES ( 'This is char data', 'This is vchar data', 'This is text data' ); MySQL 6.0 이후 기본 모드는 'strict'모드이다. 문자열이 길어지면 바로 예외를 발생시킨다. 이전 버전에서는 문..
2022.11.27 -
Learning SQL 6장 요약 - 집합 연산자
6장 집합 연산자 다양한 집합 연산자를 사용해서 결과를 결합하는 방법을 알아본다. 집합 이론 연산 의미 union 합집합 intersect 교집합 except 차집합 집합 연산을 수행할 때는 공통점이 있어야 한다. 두 데이터셋 모두 같은 수의 열을 가져야 한다. 두 데이터셋의 각 열의 자료형은 서로 동일해야 한다.(또는 서버가 변환할 수 있어야 한다.) 집합 이론 실습 SELECT 1 num, 'abc' str UNION SELECT 9 num, 'xyz' str; union 연산자 union은 결합된 집합을 정렬하고 중복을 제거 union all은 그렇지 않다. union all 예시 - 결과셋에 중복값이 있다. SELECT c.first_name, c.last_name FROM customer c W..
2022.11.24 -
Learning SQL 5장 요약 - 다중 테이블 쿼리
5장 다중 테이블 쿼리 5장에서는 inner join을 중점으로 살펴본다. (outer join은 10장에서) customer 테이블의 address_id는 address 테이블의 외래 키이다. 조인 데카르트 곱(카테시안 곱) 가장 원시적인 join방식이다. N행의 테이블과 M행의 테이블을 join하면 N*M행 개의 데이터를 불러온다. SELECT c.first_name, c.last_name, a.address FROM customer c JOIN address a; (위 쿼리를 실행하지는 말자... 고객 이름별로 모든 주소가 매칭되어서 데이터를 불러온다.) 내부조인 각 고객에 대해 단일 행(주소)만 반환하도록 하려면 from 절 하위에 on 하위절로 조건을 추가하자. SELECT c.first_nam..
2022.11.24 -
Learning SQL 4장 요약 - 필터링
4장 필터링 4장에서는 select, updae, delete 문의 where 절에서 사용할 수 있는 다양한 필터조건을 설명한다. 조건 유형 동등조건(=) WHERE date(r.rental_date) = '2005-06-14'; 부등조건(!= 또는 ) WHERE date(r.rental_date) '2005-06-14'; not 연산자를 사용할 수도 있으나 이해하기엔 어렵다. 범위조건 (>, =,
2022.11.24 -
Learning SQL 3장 요약 - 쿼리 입문
3장 쿼리 입문 select 문의 다른 부분과 상호작용하는 방식을 살펴본다. 쿼리역학 쿼리가 서버로 전송되면 서버는 다음 사항을 확인한다. 쿼리 실행 권한이 있는가? 데이터 접근 권한이 있는가? 문법은 정확한가? 이를 통과하면, 쿼리는 쿼리 옵티마이저에게 전달된다. 그리고 옵티마이저는 실행 계획을 선택한다. 서버가 쿼리 실행을 마치면 mysql 도구 등의 응용 프로그램으로 결과셋을 반환한다. 아무 결과도 없다면 Empty Set이란 메시지를 표시한다. 쿼리 절(clause) 절 이름 목적 select 쿼리 결과에 포함할 열을 결정 from 데이터를 검색할 테이블과, 테이블을 조인하는 방법을 식별 where 불필요한 데이터를 걸러냄 group by 공통 열 값을 기준으로 행을 그룹화 having 불필요한 ..
2022.11.24