[DB_MySQL] 이것이 MySQL이다 ch07 SQL 고급 4(피벗, JSON 데이터, 조인)
1. 피벗의 구현 ◎ 피벗(Pivot) 이란? ▷ 한 열에 포함된 여러 값 출력, 이를 여러 열로 변환하여 테이블 반환식 회전, 필요하면 집계까지 수행 1. uName을 기준으로 group -- 피벗의 구현 use sqlDB; create table pivotTest( uName CHAR(3), season CHAR(2), amount int ); desc pivotTest; insert into pivotTest values ('김범수', '겨울', 10), ('윤종신', '여름', 15), ('김범수', '가을', 25), ('김범수', '봄', 3), ('김범수', '봄', 37), ('윤종신', '겨울', 40), ('김범수', '여름', 14), ('김범수', '겨울', 22), ('윤종신', ..
더보기
[DB_MySQL] 이것이 MySQL이다 ch07 SQL 고급 3(수학 함수, 날짜 및 시간 함수, 시스템 정보 함수)
1. 수학 함수 1. ABS(숫자) ▷ 숫자의 절댓값 계산 -- ABS(숫자) : 절댓값 select abs(-100); -- 100 반환 2. ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자) ▷ 삼각 함수와 관련된 함수 제공 3. CEILING(숫자), FLOOR(숫자), ROUND(숫자) ▷ 올림, 내림, 반올림 계산 -- CEILING(숫자) : 올림 = ceil() -- FLOOR(숫자) : 내림 -- ROUND(숫자) : 반올림 select ceiling(4.7), floor(4.7), round(4.7); -- 5, 4, 5 반환 4. CONV(숫자, 원래 진수, 변환할 진수) ▷ 숫자를 원래 진수에서 변환할..
더보기
[DB_MySQL] 이것이 MySQL이다 ch07 SQL 고급 2(ifnull, nullif, case, 문자열 함수)
1. MySQL 내장 함수 ◎ 내장 함수 ▷ 흐름 함수, 문자열 함수, 수학 함수, 날짜/시간 함수, 전체 텍스트 검색 함수, 형 변환 함수, XML 함수, 비트 함수, 보안/압축 함수, 정보 함수, 공간 분석 함수, 기타 함수 등 ◎ 제어 흐름 함수 ▷ 프로그램의 흐름 제어 ▷ IF(수식, 참, 거짓) ▶ 수식이 참 또는 거짓인지 결과에 따라서 2중 분기 SELECT IF(100>200, '참이다', '거짓이다'); ▷ IFNULL(수식1, 수식2) ▶ 수식1이 NULL이 아니면 수식1이 반환되고 수식1이 NULL이면 수식 2가 반환 -- ifnull(수식1,수식2) -- 수식1 null이라면 수식2 반환 -- 수식1 null이 아니라면 수식1 반환 select ifnull(null, '널이군요'), ..
더보기
[DB_MySQL] 이것이 MySQL이다 ch07 SQL 고급 1(데이터 형식, 변수 사용, 형 변환)
1. MySQL의 데이터 형식 ◎ MySQL에서 지원하는 데이터 형식의 종류 ▷ Data Type으로 표현 ▶ 데이터 형식, 데이터형, 자료형, 데이터 타입 등 다양하게 불림 ▷ 데이터 형식에 대한 이해가 필요한 이유 ▶ SELECT문 더욱 잘 활용 ▶ 테이블의 생성을 효율적으로 하기 위해 필요 ▷ MySQL에서 데이터 형식의 종류는 30개 정도 ▶ 중요하고 자주 쓰는 형식에 대해 중점 학습 ◎ 숫자 데이터 형식 NO 데이터 형식 바이트 수 숫자 범위 설명 1 BIT(N) N/8 1~64bit를 표현. b'0000' 형식으로 표현 2 TINYINT 1 -128 ~ 127 정수 3 ★SMALLINT 2 -32,768 ~ 32,767 정수 4 MEDIUMINT 3 -8,388,608 ~ 8,388,607 정..
더보기
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법3 (DML, DDL, DCL, insert, auto_increment)
1. SQL의 분류 ▷ DML (Data Manipulation Language, 데이터 조작 언어) ▶ 데이터를 조작(선택, 삽입, 수정, 삭제)하는데 사용되는 언어 ▶ DML 구문이 사용되는 대상은 테이블의 행 ▶ DML 사용하기 위해서는 테이블이 정의되어 있어야 합니다. ▶ SQL문 중 SELECT, INSERT, UPDATE, DELETE가 이 구문에 해당 ▶ 트랜잭션(Transaction)이 발생하는 SQL도 DML에 속함 → 테이블의 데이터를 변경(입력/수정/삭제)할 때 실제 테이블에 완전히 적용하지 않고, 임시로 적용시키는 것 → 취소 가능(ROLL BACK) ▷ DDL (Data Definition Language, 데이터 정의 언어) ▶ 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터베이..
더보기
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 2 (WHERE, BETWEEN, IN, LIKE, 서브쿼리)
1. 특정 조건의 데이터만 조회 ◎ 기본적인 WHERE절 ▷ 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용 ▷ SELECT 필드이름 FROM 테이블이름 WHERE 조건식; SELECT B* FROM usertbl WHERE name = '김경호'; ◎ 관계 연산자의 사용 ▷ OR 연산자 : '...했거나', '...또는' ▷ AND 연산자 ; '...하고', '...면서', '...그리고' ▷조건 연산자(=, , =, , != 등)와 관계 연산자(NOT, AND, OR 등)를 조합하여 데이터를 효율적으로 추출 가능 SELECT userID, Name FROM usertbl WHERE birthYear >= 1970 AND height >= 182; ◎ BETWEEN... A..
더보기