본문 바로가기
그룹화 - GROUP BY GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행끼리 하나의 그룹으로 묶인다. 마치 DISTINCT와 같이 중복을 제거하는 효과가 있다. SELECT name, COUNT(name), SUM(quantity) FROM table GROUP BY name; name열 값을 기준으로 그룹화가 된다,. HAVING WHERE 구 조건식으로 행을 검색하는 처리가 GROUP BY로 그룹화하는 처리보다 먼저 일어난다. 따라서 WHERE 구에서, 그룹화가 필요한 집계함수를 사용할 수 없다. 집계 함수 결과값에 의해 조건식을 작성하기 위해 HAVING 구를 쓴다! GROUP BY 뒤에 작성하여 WHERE 구와 똑같이 조건식을 쓸 수 있다. WHERE로 행 검색 -> 검색 후 GROUP BY로 그.. 2021. 12. 3.
집계함수 - COUNT / SUM / AVG / MIN / MAX 집계함수 대표적인 집계함수로 COUNT(집합) SUM(집합) AVG(집힙) MIN(집합) MAX(집합) 집계함수는 인수로 집합을 지정한다. 또, 여러 값(집합)에서 하나의 값을 계산해내는 함수다. 따라서 SELECT 구에 쓰면 WHERE 구와 관계없이 하나의 행으로 결과값이 반환된다. 집계함수는 집합 안에 NULL 값이 있으면 무시한다. COUNT SELECT COUNT(*) FROM table WHERE 조건식; COUNT(*) 5 COUNT(집합) 집계함수로 조건식에 맞는 행 개수를 구할 수 있다. WHERE 구 먼저 처리 후, SELECT 구가 처리되기 때문에 WHERE 구 조건식에 맞는 행의 개수가 반환된다. * DISTINCT로 중복값 제거 SELECT ALL name FROM table; /*.. 2021. 12. 3.
데이터 추가, 갱신, 삭제 - INSERT / UPDATE / DELETE 추가 - INSERT INSERT INTO 테이블명 VALUES(값1, 값2, ...); 열을 지정하여 INSERT INSERT INTO 테이블명(열1, 열2, ...) VALUES(값1, 값2, ...) INSERT INTO 테이블명(열1, 열2, ...) VALUES(값1, default, ...) 지정하지 않은 열에는 테이블 생성 시 설정한 default값이 저장된다. 혹은 default 키워드를 직접 사용하여 default값을 열에 저장할 수 있다. 만일 NOT NULL 제약이 걸려 있는 열은 NULL값이 허용되지 않는다. 갱신 - UPDATE UPDATE 테이블명 SET 열1=값1, 열2=값2, .... WHERE 조건식 DELETE와 달리 테이블의 셀 값을 갱신하는 명령이다. SET 구에 갱신.. 2021. 12. 3.
CASE문 CASE WHEN 조건식1 THEN 식1 [ WHEN 조건식2 THEN 식2 ] [ ELSE 식3 ] END ELSE는 생략 가능하며 생략했을 시 'ELSE NULL'로 간주한다. 예) a열의 값이 NULL값일 때 이를 0으로 변환하고 싶을 때 SELECT a, CASE WHEN a IS NULL THEN 0 END "a(null=0)" FROM table; 결과) a a(null=0) 1 1 2 2 NULL 0 NULL값을 변환할 때는 COALESCE 함수 사용 가능하다. SELECT a, COALESCE(a, 0) FROM table; NULL이 아니면 첫 번째 인수의 값을 반환(a열 값) NULL인 경우 두 번째 인수의 값을 반환(0) 서로 다른 형식의 CASE문 SELECT a "코드", CASE.. 2021. 12. 3.
연산 수치연산 SELECT 구, WHERE 구, ORDER BY 구 등 여러 구에서 연산을 할 수 있다. SELECT에서 열끼리 연산한 값에 예약어 AS를 사용해 별명을 정해줄 수 있다.(생략 가능) 한글과 같이 ASCII 문자(알파벳, 숫자 등)가 아닌 것으로 별명을 정해줄 땐 " "(더블쿼트)로 둘러싸준다. SELECT 구에서 지정해준 별명은 WHERE 구에서 사용할 수 없다, 이는 DB 서버 내부에서 처리 순서가 WHERE 구 -> SELECT 구이기 때문이다. WHERE 구로 행이 조건에 맞는지 조사한 후에 SELECT 구에 지정된 열을 선택해 결과를 반환하는 식이다. (ORDER BY 구는 가장 나중에 처리되므로 SELECT 구에서 지정한 별명을 사용할 수 있다.) 다른 구를 포함한 자세한 처리 순서.. 2021. 12. 3.
결과 행 제한(LIMIT OFFSET) LIMIT구로 반환될 행수를 제한할 수 있다. SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수 ORDER BY 구 뒤에 LIMIT 구가 온다. WHERE 구로 행을 검색한 후 ORDER BY로 정렬한 뒤 최종적으로 LIMIT 구를 처리한다. OFFSET LIMIT 구 뒤에 위치하고, 처음 출력할 데이터 행의 인덱스 위치를 뒤에 적으면 된다. SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수 OFFSET 시작행위치(인덱스) ** LIMIT 시작행위치(인덱스), 행 갯수 -> LIMIT 구에 숫자를 2개 쓰는 경우가 있다. 이는 OFFSET을 사용했을 때처럼 시작행위치의 인덱스와 행 갯수를 나타내는 표현이다. 2021. 12. 3.
정렬 (ORDER BY) ORDER BY 열명 DESC : 내림차순 ORDER BY 열명 ASC : 오름차순 ASC, DESC 지정하지 않은 경우 디폴트는 ASC(오름차순)이다. 대소관계 문자열형 데이터는 사전식 순서로 대소관계를 결정한다. (abc, ㄱㄴㄷ 순) 수치형과 문자열형은 대소관계 비교 방법이 다르다. 예} a(VARCHAR형) b(INTEGER형) 1 1 2 2 10 10 11 11 이와 같은 테이블이 있다고 하자. SELECT * FROM table ORDER BY a; 결과 a(VARCHAR형) b(INTEGER형) 1 1 10 10 11 11 2 2 SELECT * FROM table ORDER BY b; 결과 a(VARCHAR형) b(INTEGER형) 1 1 2 2 10 10 11 11 a열은 VARCHAR형.. 2021. 12. 3.
테이블에서 데이터 검색 (SELECT, DESC, WHERE, AND, OR , NOT, LIKE) SELECT 구로 열 선택 WHERE 구로 행 선택 DESC는 테이블에 어떤 열이 정의되어있는지 확인 문자열형과 날짜시간형 상수는 ' ' (싱글쿼트)로 감싸 표기 NULL값 검색은 IS NULL을 사용 AND는 OR보다 우선 순위가 높다 LIKE LIKE 술어를 사용하면 열 값이 부분만 일치하는 경우도 참이된다. (=연산자는 열 값이 완전히 일치할 때만 참) 패턴에 사용하는 메타문자 % , _ %는 임의의 문자열과 매치되고, 빈 문자열에도 매치된다. (_는 임의의 문자 하나) 예) WHERE 열명 LIKE '패턴'; % 문자 자체 검색 -> \% _ 문자 자체 검색 -> \_ ' 문자 자체 검색 -> '' 이스케이브 방법으로 처리 간단한 패턴이라면 LIKE를 쓰지만 복잡할 경우에는 정규 표현식(Regul.. 2021. 12. 3.