All About
혼자 공부하는 SQL_3주차 정리 및 미션 본문
혼자 공부하는 SQL 3주차
※ 순서
Chp 4. 정리
미션
Chp 4. SQL 고급 문법
■ MySQL의 데이터 형식
- 데이터 형식
- 정수형: 소수점이 없는 숫자
- TINYINT: 1바이트, -128~127
- SMALLINT: 2바이트, -32,768~32767
- INT: 4바이트, 약 -21억~21억
- BIGINT: 8바이트, 약 -900경~900경
- UNSIGNED: 정수형에 붙이면 범위가 0부터 지정됨
- 문자형: 글자 저장, 입력할 최대 글자의 개수 지정
- CHAR(개수): 1~255
- VARCHAR(개수): 1~16383
- 대량의 데이터 형식: 큰 데이터 저장
- TEXT 형식: 소설, 영화 대본 같은 글
- TEXT
- LONGTEXT
- BLOB 형식: 이미지, 동영상 등 이진 데이터
- BLOB
- LONGBLOB
- TEXT 형식: 소설, 영화 대본 같은 글
- 실수형: 소수점 있는 숫자
- FLOAT: 4바이트, 소수점 아래 7자리까지
- DOUBLE: 8바이트, 소수점 아래 15자리까지
- 날짜형: 날짜 및 시간
- DATE: 3바이트, 날짜(YYYY-MM-DD)
- TIME: 3바이트, 시간(HH:MM:SS)
- DATETIME: 8바이트, 날짜 및 시간(YYYY-MM-DD HH:MM:SS)
- 정수형: 소수점이 없는 숫자
- 변수의 사용
- 선언 및 값 대입
- SET @변수이름 = 변수의 값;
- 변수의 값 출력
- SELECT @변수이름;
- LIMIT에는 변수 사용 X
- PREPARE & EXECUTE
- PREPARE는 실행 X, SQL문만 준비
- LIMIT ?: 물음표(?) = '현재는 모르지만 나중에 채워짐'
- EXECUTE에서 실행
- USING @변수이름: USING으로 물음표(?)에 @변수이름의 값을 대입하는 것
- PREPARE는 실행 X, SQL문만 준비
- PREPARE & EXECUTE
- 선언 및 값 대입
- 데이터 형 변환
- 함수를 이용한 명시적인 변환
- CAST(): CAST(값 AS 데이터_형식 [(길이)])
- CONVERT(): CONVERT(값, 데이터_형식 [(길이)])
- 둘은 형식만 다를 뿐 동일한 기능
- 가능한 데이터 형식: CHAR, SIGNED, UNSIGNED, DATE, TIME, DATETIME 등
- SIGNED: 부호 있는 정수
- UNSIGNED: 부호 없는 정수
- CONCAT(): 문자를 이어주는 역할의 함수
- 암시적인 변환
- 함수를 사용하지 않고도 자연스럽게 형이 변환되는 것
- ex) 숫자와 문자 연산: CONCAT() 사용 시 숫자가 문자로 변함 / 더하기만 사용 시 문자가 숫자로 변한 후 연산
- 함수를 사용하지 않고도 자연스럽게 형이 변환되는 것
- 함수를 이용한 명시적인 변환
■ 두 테이블을 묶는 조인
-조인: 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것
- 내부 조인
- 두 테이블 연결 시 가장 많이 사용되는 것, 조인 = 내부 조인
- 일대다 관계의 이해
- 한쪽 테이블에는 하나의 값만, 다른 쪽 테이블에는 여러 개의 값이 존재할 수 있는 관계
- 내부 조인의 기본
- 두 테이블 조인 시, 두 테이블에 모두 지정한 열의 데이터 있어야함(두 테이블에 모두 있는 내용만 출력됨)
- 내부 조인의 형식
- SELECT <열 목록> FROM <첫 번째 테이블> INNER JOIN <두 번째 테이블> ON <조인될 조건> [WHERE 검색 조건]
- 내부 조인의 간결한 표현
- 별칭: FROM 절 뒤에 나오는 테이블의 이름 뒤에 위치
- 외부 조인
- 외부 조인의 기본
- 두 테이블 조인 시, 1개의 테이블에만 데이터가 있어도 결과 나옴
- 외부 조인의 형식
- SELECT < 열 목록> FROM <첫 번째 테이블(LEFT 테이블)> <LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)> ON <조인될 조건> [WHERE 검색 조건];
- LEFT(RIGHT) OUTER JOIN: 왼쪽(오른쪽) 테이블의 내용은 모두 출력되어야 한다
- FULL OUTER JOIN: 왼쪽 외부 조인과 오른쪽 외부 조인이 합쳐진 것
- 외부 조인의 기본
- 기타 조인
- 자주 사용되지는 않지만 가끔 유용하게 사용되는 조인
- 상호 조인: 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능
- 자체 조인: 자신이 자신과 조인된다는 의미, 1개의 테이블 사용
- 자체 조인의 형식
- SELECT <열 목록> FROM <테이블> 별칭A INNER JOIN <테이블> 별칭B ON <조인될 조건> [WHERE 검색 조건]
- 자체 조인의 형식
■ SQL 프로그래밍
- IF 문
- 조건식
- 참일 때 수행
- IF 문의 기본 형식(아래 코드 블럭 참고)
- 두 문장 이상이 처리되어야 할 경우: BEGIN~END로 묶기
- IF ~ ELSE문
- 참과 거짓일 때 각각 다른 부분이 수행
//IF문 형식
IF <조건식> THEN
SQL 문장들
END IF;
//
- CASE 문
- CASE 문의 기본 형식(아래 코드 블럭 참고)
- 다중 분기
- CASE 문의 기본 형식(아래 코드 블럭 참고)
//CASE문 형식
CASE
WHEN 조건1 THEN
SQL문장들1
WHEN 조건2 THEN
SQL문장들2
WHEN 조건3 THEN
SQL문장들3
ELSE
SQL문장들4
END CASE;
- WHILE 문
- 조건식이 참인 동안 계속 반복
- WHILE 문의 기본 형식(아래 코드 블럭 참고)
- WHILE 문의 응용
- ITERATE [레이블]: 지정한 레이블로 가서 계속 진행
- LEAVE [레이블]: 지정한 레이블 빠져나감(WHILE 문 종료)
//WHILE문 형식
WHILE <조건식> DO
SQL문장들
END WHILE;
- 동적 SQL
- PREPARE&EXECUTE
- PREPARE: SQL문 실행하지 않고 미리 준비만
- EXECUTE: 준비한 SQL문 실행
- 실행 후: DEALLOCATE PREPARE로 문장 해제해주는 것 바람직
- PREPARE&EXECUTE
▶ 3주차 미션
▷ 기본 미션
Q. p.195 확인 문제 4번
A.
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN by B
ON M.mem_id = B.mem_id
WHERE B.prod_name IS NULL
ORDER BY M.mem_id;
'혼공학습단 > 혼공 SQL(11기)' 카테고리의 다른 글
혼자 공부하는 SQL_6주차 정리 및 미션 (0) | 2024.02.15 |
---|---|
혼자 공부하는 SQL_5주차 정리 및 미션 (0) | 2024.02.06 |
혼자 공부하는 SQL_4주차 정리 및 미션 (0) | 2024.01.29 |
혼자 공부하는 SQL_2주차 정리 및 미션 (0) | 2024.01.15 |
혼자 공부하는 SQL_1주차 정리 및 미션 (3) | 2024.01.07 |