분류 전체보기 43

[SQL 첫걸음] 5장.집계와 서브쿼리 - 22.그룹화(GROUP BY)

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. GROUP BY로 그룹화 SELECT * FROM sample51; - name열에서 같은 값을 가진 행 끼리 한데 묶어 그룹화한 집합을 집계함수로 넘겨줄 수 있음. 그룹으로 나눌 때에는 GROUP BY 구를 사용. GROUP BY 구에 그룹화할 열을 지정. 복수로도 지정 가능. SELECT name FROM sample51 GROUP BY name; - GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶임. - GROUP BY를 지정해 그룹화하면 DISTINCT와 같이 중복을 제거하는 효과가 있음. 그러면 DISTINCT와 무슨 차이가 있을까? 하지만 사실 GROUP BY 구를 지정하는..

Study/DB 2018.09.04

[SQL 첫걸음] 5장.집계와 서브쿼리 - 21.COUNT 이외의 집계함수

저자 : 아사이 아츠시출판 : 한빛미디어 * COUNT 이외의 집계함수 - 합계값 조회 : SUM ( [ALL | DISTINCT] 집합 ) - 평균값 조회 : AVG ( [ALL | DISTINCT] 집합 ) - 최솟값 조회 : MIN ( [ALL | DISTINCT] 집합 ) - 최댓값 조회 : MAX ( [ALL | DISTINCT] 집합 ) 1. SUM으로 합계 구하기 - 집합의 합계를 구할 수 있음. SUM 집계함수에 지정되는 집합은 수치형만 가능. 문자열형이나 날짜시간형의 집합에서 합계를 구할 수 X. - SUM함수도 COUNT와 마찬가지로 NULL값을 무시. NULL값을 제거한 뒤에 합계를 냄. 2. AVG로 평균 내기 - SUM집계함수로 합한 값을 개수로 나누면 평균값을 구할 수 있음. b..

Study/DB 2018.08.31

[SQL 첫걸음] 5장.집계와 서브쿼리 - 20.행 갯수 구하기(COUNT)

저자 : 아사이 아츠시 출판 : 한빛미디어 발매 : 2015.11.01 * 집계함수 - SQL의 대표적인 집계함수 : COUNT(집합) SUM(집합) AVG(집합) MIN(집합) MAX(집합)- 집계함수의 특징은 복수의 값(집합)에서 하나의 값을 계산해내는 것. 일반적인 함수는 하나의 행에 대해여 하나의 값을 반환. 집계함수는 집합으로부터 집합으로부터 하나의 값을 반환. 이렇게 집합으로 부터 하나의 값을 계산하는 것을 '집계'라 함. 집계함수를 SELECT 구에 쓰면 WHERE구의 유무와 관계없이 결괏값으로 하나의 행을 반환. 1. COUNT로 행 개수 구하기 - COUNT는 인수로 지정된 집합의 행 개수를 반환. - SELECT COUNT(*) FROM sample51; ==> COUNT집계함수에선 *..

Study/DB 2018.08.31

[MySQL] 특정 값이 없으면 Insert하고 있으면 Update하기

INSERT INTO TB_TEST( TRST_NO -- 거래번호(PK),TRST_DATE -- 거래일자(PK),ORDER_NO ,STATUS_CD ,PAY_MONEY )VALUES ( 'T0001','20180629','12345' ,'C',10000)ON DUPLICATE KEYUPDATE ORDER_NO = '12345',STATUS_CD = 'C',PAY_MONEY = 10000 테이블에 기본키(Primary Key)인 TRST_NO, TRST_DATE가 동일한 값이 이미 존재한다면 (테이블에 TRST_NO가 'T0001' 이고 TRST_DATE가 '20180629' 인 데이터가 이미 존재한다면) UPDATE문을 수행하고, 그렇지 않다면 INSERT문을 수행한다. 구문 >>> INSERT 문 + ..

Programming/MySQL 2018.08.30

[SQL 첫걸음] 4장.데이터의 추가,삭제,갱신- 19.물리삭제와 논리삭제

저자 : 아사이 아츠시출판 : 한빛미디어 1. 두 종류의 삭제방법 ( 물리삭제, 논리삭제 ) - 물리삭제 : SQL의 DELETE 명령을 사용해 직접 데이터를 삭제하자는 사고방식. 테이블에서 데이터를 정말 삭제. - 논리삭제 : 테이블에서 실제로 삭제하는 대신, UPDATE명령을 이용해 '삭제플래그'의 값을 유효하게 갱신해두자는 발상에 의한 삭제방식. 데이터가 삭제된 것처럼 가장하는 삭제방법. 실제 테이블 안에 데이터는 남아있지만, 참조할 때에는 '삭제플래그'가 삭제로 설정된 행을 제외하는 SELECT 명령을 실행하여 결과적으론 해당 행이 삭제된 것처럼 보임. ex) UPDATE로 삭제플래그 열의 값을 1로 갱신 ----> SELECT * FROM xxx WHERE 삭제플래그 1로 검색 - 논리삭제의 장..

Study/DB 2018.08.30

[SQL 첫걸음] 4장.데이터의 추가,삭제,갱신- 18.데이터 갱신하기(UPDATE)

저자 : 아사이 아츠시출판 : 한빛미디어 1. UPDATE로 데이터 갱신하기 - UPDATE 테이블명 SET 열명 = 값 WHERE 조건식 ex ) UPDATE sample41 SET b='2018-09-07' WHERE no = 2; 2. UPDATE로 갱신할 경우 주의사항 - UPDATE sample41 SET no = no + 1; 실행 결과 모든 행의 no값에 1씩 더해짐. 위처럼 갱신할 열이 포함된 식으로도 표기 가능. 해당 열이 갱신 대상이 되는 열이라 해도 상관없음. 계산식은 '현재의 no값에 1을 더한값으로 no열을 갱신하라'는 의미. 갱신은 행 단위로 처리되므로 '현재의 no값'은 그 행이 갱신되기 전의 값에 해당. 3.복수열 갱신- UPDATE 테이블명 SET 열명1 = 값1, 열명2 ..

Study/DB 2018.08.30

[SQL 첫걸음] 4장.데이터의 추가,삭제,갱신- 16.행 추가하기(INSERT)

저자 : 아사이 아츠시출판 : 한빛미디어 1. INSERT로 행 추가하기 - INSERT INTO sample41 VALUES(1,'ABC','2018-08-20'); 2. 값을 저장할 열 지정하기 - no열과 a열만 지정해 행 추가하기 => INSERT INTO sample41(a, no) VALUES('XYZ', 2); 3. NOT NULL 제약 - NOT NULL 제약이 걸려있는 열은 NULL값을 허용하지않음. 4. DEFAULT - Default는 명시적으로 값을 지정하지 않았을 경우 사용하는 초깃값. Default값은 테이블을 정의할 때 지정할 수 있음. 열을 지정해 행을 추가할 때 지정하지 않은 열은 Default값을 시용하여 저장됨. - INSERT 할 때, 명시적으로 DEFAULT를 지정하..

Study/DB 2018.08.30

[SQL 첫걸음] 3장.정렬과 연산 - 15.CASE 문으로 데이터 변환하기

저자 : 아사이 아츠시출판 : 한빛미디어 1. CASE문 - NULL값을 0으로 간주하여 계산하고 싶은 경우 (원래 NULL값으로 연산한 결과는 모두 NULL) 사용자 정의 함수를 작성하지않고도 CASE문으로 처리 가능. - CASE문 : CASE WHEN 조건식1 THEN 식1[ WHEN 조건식2 THEN 식2 ... ][ ELSE 식3 ]END - WHEN 절에는 참과 거짓을 반환하는 조건식을 기술. 해당 조건을 만족하여 참이 되는 경우는 THEN절에 기술한 식이 처리됨. WHEN절의 조건식을 차례로 평가해나가다 가장 먼저 조건을 만족한 WHEN절과 대응하는 THEN절 식의 처리결과를 CASE문의 결괏값으로 반환. - 그 어떤 조건식도 만족하지 못한 경우엔 ELSE절에 기술한 식이 채택됨. ELSE는..

Study/DB 2018.08.30

[SQL 첫걸음] 3장.정렬과 연산 - 14.날짜 연산

저자 : 아사이 아츠시출판 : 한빛미디어 1. SQL에서의 날짜 - 시스템 날짜 확인 : CURRENT_TIMESTAMP 라는 긴 이름의 함수로 실행했을 때를 기준으로 시간을 표시.(다른 함수와 달리 인수를 지정할 필요없음) - cf) MySQL 에서 NOW()함수의 결과도 CURRENT_TIMESTAMP와 동일 - CURRENT_TIMESTAMP는 표준 SQL로 규정되있는 함수. Oracle에서는 SYSDATE 함수, SQL Server에서는 GETDATE함수를 사용해도 시스템 날짜를 확인 가능하지만 표준화 전 구현된 함수인 만큼 사용하지 않는 편이 나음. - 날짜 서식 : 날짜를 표기하는 방식이 다양하여 대부분의 데이터 베이스 제품은 날짜 데이터의 서식을 임의로 지정, 변환할 수 있는 함수를 지원 *..

Study/DB 2018.08.30