본문 바로가기
SQL

[혼공S] 3주차_SQL 고급 문법

by 바이오인포하는 tansansoo 2025. 1. 26.

Ch 04. SQL 고급문법

📌 이 챕터에서는 다양한 데이터 형식을 배우고 두 테이블을 연결하는 조인에 대해서 공부하였다.

 

MySQL의 데이터 형식

다양한 데이터 형식이 존재하는 이유: 실제로 저장될 데이터는 영상, 텍스트, 소리 등 형태가 다양하기 때문

  • 정수형 데이터: 소수점 없는 숫자 데이터숫자 범위별 다양한 데이터 형식이 존재함
    • TINYINT < SMALLINT < INT < BIGINT : 기본적으로 음수~양수 범위를 가지며 0부터 표시하고 싶으면 UNSIGNET 예약어 사용
  • 실수형 데이터: 소수점 있는 숫자 데이터
    • 소수점 표현 범위: FLOAT < 소수점 8째자리 < DOUBLE < 소수점 16자리
  • 문자형 데이터: 글자 저장시 사용하며 최대 입력 글자수를 지정해야 함
    • 고정길이문자형(CHAR), 가변길이문자형(VARCHAR)로 나뉨
  • 날짜형 데이터
    • 날짜만(DATE), 시간만(TIME), 날짜시간(DATETIME)
  • 대량 데이터
    • 소설이나 영화 대본 데이터: TEXT < LONGTEXT
    • 사진이나 동영상 데이터: BLOB < LONGBLOB
  • 변수 사용법: ①변수 선언 ② 값 대입 ③ 변수 출력
# 변수의 선언 및 값 대입
SET @변수 = 값;
# 변수 값 출력
SELECT @변수;
  • 데이터 형 변환: 데이터 형태를 변환
    • 명시적 변환(explicit conversion): CAST(), CONVERT() 함수로 변환
    • 암시적 변환(implicit conversion): 지시x, 자연스럽게 변환

두 테이블을 묶는 조인

  • 조인: 정보를 추출하기 위해 두 개의 테이블을 묶는 것으로 일대다 관계로 기본 키(PK)-외래 키(FK) 관계로 연결함
    • 일대다 관계: 한 쪽 테이블에는 하나의 값만, 다른 쪽 테이블에는 여러 개의 값인 관계
  • 내부 조인 Vs 외부 조인: 두 테이블 모두에 값이 있어야 하면 내부 조인, 테이블 하나에만 있어도 되면 외부 조인
  • 상호 조인 Vs 자체 조인: 양쪽 테이블 모든 행*모든 행을 조인하면 상호 조인, 1개 테이블만으로 조인하면 자체 조인
  • 조인 형식
# 내부 조인
SELECT <열 목록>
FROM <첫 번째 테이블>
	INNER JOIN <두 번째 테이블>
	ON <조인될 조건>
[WHERE 검색 조건]

# 외부 조인
SELECT <열 목록>
FROM <첫 번째 테이블>
	<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블>
	ON <조인될 조건>
[WHERE 검색 조건];

# 상호 조인
SELECT <열 목록>
FROM <첫 번째 테이블>
	CROSS JOIN <두 번째 테이블>;
    
# 자체 조인
SELECT <열 목록>
FROM <테이블> 별칭A
	INNER JOIN <테이블> 별칭B
	ON <조인될 조건>
[WHERE 검색 조건];

기본 숙제

p. 195번 확인 문제 4번 풀고 인증
4. 다음 SQL은 회원으로 가입만 하고, 한번도 구매한 적 없는 회원의 목록입니다. 빈칸에 들어갈 가장 적합한 것을 고르시오.
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
	LEFT OUTER JOIN buy B
	ON M.mem_id = B.mem_id
	[                   ]
	ORDER BY M.mem_id;​

< 풀이 >

구매목록이 전혀 없는 회원이기 때문에 구매한 물건 이름이 비어있을 것이다(NULL) 그래서 B.prod_name IS NULL인지 비교한다

그리고 조회하는 결과에 특정한 조건을 추가해 원하는 데이터만 보고 싶을 때 사용하는 WHERE 절을 사용하여

정답은 WHERE B.prod_name IS NULL 이다.

 

추가 숙제

p. 183 [좀 더 알아보기] 손코딩 실행하고 결과화면 인증하기

3주차 끝!

새해 복 많이 받으세요~ :)

'SQL' 카테고리의 다른 글

[혼공S] 2주차_SQL 기본 문법  (0) 2025.01.19
[혼공S] 1주차_SQL 개념 및 맛보기  (1) 2025.01.10