[SQL] 혼공S Ch4 SQL 기본 문법

Seri·2024년 7월 21일

서론

예전에는 거의 툴에서 클릭으로 하거나 검색 또는 GPT의 힘을 빌려 테이블을 조작했는데 이제는 직접 SQL문을 써서 하기 시작했다. 특히 SELECT를 자유자재로 쓰다보니 원하는 데이터를 찾기가 한결 수월해졌다.

📚 이번주 과제

데이터 형식

정수형: 소수점이 없는 숫자

데이터 형식바이트수숫자 범위
TINYINT1-128~127
SMALLINT2-32768~32767
INT4약-21억 ~ +21억
BIGINT8약 -900경 ~ +900경

* UNSIGNED를 붙이면 0부터 범위가 지정된다.

문자형

데이터 형식바이트 수
CHAR(): 고정길이 문자형1 ~ 255
VARCHAR(): 가변길이 문자형1 ~ 16383
  • 대량의 데이터 형식: TEXT, LONGTEXT / BLOB, LONGBLOB - 글자가 아닌 이미지, 동영상 등의 데이터

실수형

데이터 형식바이트 수
FLOAT: 소수점 아래 7자리까지 표현4
DOUBLE: 소수점 아래 15자리까지 표현8

날짜형

데이터 형식바이트 수
DATE: 날짜만 저장. YYYY-MM-DD3
TIME: 시간만 저장. HH:MM:SS3
DATETIME: 날짜 및 시간을 저장. YYYY-MM-DD HH:MM:SS8

변수의 사용

SET @변수이름 = 변수값; // 변수의 선언 및 값 대입
SELECT @변수이름; // 변수의 값 출력
  • PREPARE: 실행하지 않고 SQL 문만 준비
  • EXECUTE: 실행
  • USING: 물음표(?)에 변수의 값을 대입

데이터 형 변환

명시적인 형 변환

  • CAST (값 AS 데이터 형식 [ (길이) ])
  • CONVERT (값, 데이터 형식 [ (길이) ])

암시적인 형변환

  • 숫자와 문자를 연산할 때 CONCAT()을 사용하면 숫자가 문자로 변한다. 더하기만 사용하면 문자가 숫자로 변한 후에 연산된다.

조인(join)

두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것

내부 조인(inner join)

SELECT <열 목록>
FROM <첫 번째 테이블>
	INNER JOIN <두 번째 테이블>
    ON <조인될 조건>

외부 조인(outer join)

SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
	<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
    ON <조인될 조건>
  • left: 왼쪽 테이블의 내용은 모두 출력되어야 한다.

상호 조인(cross join)

한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능으로 테스트하기 위해 대용량의 데이터를 생성할 때 주로 사용한다.

자체 조인(self join)

자신이 자신과 조인.

확인문제 p.195 4번

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
    WHERE B.prod_name IS NULL // 한 번도 구매한 적이 없는
    ORDER BY M.mem_id

SQL 프로그래밍

IF문

IF <조건식> THEN
	SQL 문장
END IF;

CASE문

CASE
	WHEN 조건1 THEN
    	SQL 문장1
    WHEN 조건2 THEN
    	SQL 문장2
    ELSE
    	SQL 문장3
END CASE;

WHILE문

WHILE <조건식> DO
	SQL 문장들
END WHILE;
  • ITERATE [레이블]: 지정한 레이블로 가서 계속 진행한다.
  • LEAVE [레이블]: 지정한 레이블을 빠져나간다. 즉 WHILE 문이 종료된다.

동적 SQL

  • PREPARE: SQL문을 실행하지는 않고 미리 준비
  • EXECUTE: 준비한 SQL문을 실행한다.
profile
🎤 📷 ❄️ 🌊

0개의 댓글