혼공단 SQL 3주차

choija·2022년 7월 24일
1

혼공단 SQL

목록 보기
3/5

Chapter 04

기본미션! p. 195 - 확인문제 4번 풀고 인증샷✨

ANSWER
④ WHERE B.prodname IS NULL
WHERE 없이 SELECT ~ FROM만으로 테이블을 조회하면 테이블의모든 행이 출력된다. 그래서 WHERE과 함께 사용됩니다.
⠀⠀EX) SELECT 열
이름 FROM 테이블_이름 WHERE 조건식;

데이터 형식~

  • MYSQL에서 제공하는 데이터 형식의 종류는 수십 개 정도 있고, 데이터 형식마다 크기나 표현할 수 있는 숫자 범위가 다르다.

정수형

  • 정수형은 정수, 즉 인원 수, 가격, 수량 등에 많이 사용한다.
  • 손코딩 해보기
    USE market_db;
    CREATE TABLE example (
    ⠀⠀tinyint_col TINYINT,
    ⠀⠀smallint_col SMALLINT,
    ⠀⠀int_col INT,
    ⠀⠀bigint_col BIGINT );
  • 데이터 입력하기
    INSERT INTO example VALUES(127,32767,2147483647,900000000000000000);
  • 오류나는 예시
    INSERT INTO example VALUES(128,32768,2147483648,9000000000000000000);
    이렇게 되면 오류가 발생하게 된다. Out of range는 입력값의 범위를 벗어났다는 뜻이다.

문자형

  • 문자형은 글자를 저장하기 위해 사용하며, 입력할 최대 글자의 개수를 지정해야 한다. 대표적인 문자형은 다음과 같다.
  • 손코딩 해보기
    CREATE DATABASE nexflix_db;
    USE market_db;
    CREATE TABLE movie
    ⠀⠀(movie_id INT,
    ⠀⠀ movie_title VARCHAR(30),
    ⠀⠀ movie_director VARCHAR(20),
    ⠀⠀ movie_star VARCHAR(20),
    ⠀⠀ movie_script LONGTEXT,
    ⠀⠀ movie_film LONGBLOB,
    ⠀⠀)

실수형

  • 실수형은 소수점이 있는 숫자를 저장할 때 사용한다. FLOATDOUBLE은 거의 비슷하다. 소수점 아래를 어디까지 정밀하게 표현하는지의 차이이다. 대부분은 FLOAT이면 충분하다.

날짜형

  • 날짜형은 날짜 및 시간을 저장할 때 사용한다. DATE는 날짜만, TIME은 시간만 저장한다. 날짜와 시간을 둘 다 저장하고 싶으면 DATETIME을 사용하면 된다.

변수의 사용

SQL도 다른 일반적인 프로그래밍 언어처럼 변수를 선언하고 사용할 수 있다. 변수의 선언과 값의 대입은 다음과 같다.

  • SET @변수이름 = 변수의 값; -> 변수의 선언 및 값 대입
    SELECT @변수이름 ; -> 변수의 값 출력

  • 간단한 손코딩
    USE market_db;
    SET @myVar1 = 5; ⠀①
    SET @myVar2 = 4.25; ⠀①

    SELECT @myVar1; ⠀②
    SELECT @myVar1 + @myVar2; ⠀③

    SET @txt = '가수 이름->'; ⠀④
    SET @height = 166; ⠀④
    SELECT @txt, mem_name FROM member WHERE height > @height ; ⠀⑤

    실행결과
    5
    9.250000000000000000000000
    가수 이름-> 소녀시대
    가수 이름-> 잇지
    가수 이름-> 트와이스

    ① 변수를 선언하고 정수 또는 실수를 대입한다.
    ② 변수의 내용을 출력한다.
    ③ 변수끼리 연산한 후에 출력한다.
    ④ 변수를 선언하고 문자열 또는 정수를 대입한다.
    ⑤ 테이블을 조회하면서 변수를 활용. 조건문은 height > 166와 동일

데이터 형 변환

  • 문자형을 정수형으로 바꾸거나, 반대로 정수형을 문자형으로 바꾸는 것을 데이터의 형 변환이라고 부른다. 형 변환에는 직접 함수를 사용하여 변환하는 명시적인 변환과 별도의 지시 없이 자연스럽게 변환되는 암시적인 변환이 있다.

함수를 이용한 명시적인 변환

데이터 형식을 변환하는 함수는 CAST(), CONVERT()이다. 두가지는 형식만 다를 뿐 동일한 기능을 한다.

텍스트_CAST ( 값 AS 데이터__형식 [ (길이) ] )
텍스트_CONVERT ( 값, 데이터
형식 [ (길이) ] )

암시적인 변환

  • 암시적인 변환은 CAST()이나 CONVERT() 함수를 사용하지 않고도 자연스럽게 형이 변환되는 것을 뜻한다.

    SELECT '100' + '200'; -> 실행결과:300
    문자는 더할 수 없으므로 자동으로 100, 200으로 변환하여 덧셈을 한다.

    SELECT CONCAT('100', '200'); -> 실행결과:100200
    만약에 문자 '100'과 '200'을 연결한 '100200'으로 만들려면 CONCAT() 함수를 사용해야 된다.

내부 조인

  • 두 테이블을 연결할 때 가장 많이 사용되는 것이 내부 조인이다. 그냥 조인이라 부르면 내부 조인을 의미한다.

내부 조인의 기본

  • 일반적으로 조인이라고 부른는 것은 내부 조인을 말하는 것으로, 조인 중에서 가장 많이 사용된다. 조인은 3개 이상의 테이블로도 할 수 있지만 대부분은 2개로 조인한다.

    내부 조인의 형식
    SELECT <열 목록>
    FROM <첫 번째 테이블>
    ⠀⠀⠀INNER JOIN <두 번째 테이블>
    ⠀⠀⠀ON <조인될 조건>
    [WHERE 검색 조건]

외부 조인

  • 내부 조인은 두 테이블에 모두 데이터가 있어야 결과가 나온다. 하지만 외부 조인은 한쪽에만 데이터가 있어도 결과가 나온다.

외부 조인의 기본

  • 두 테이블을 조인할 때 필요한 내용이 한쪽 테이블에만 있어도 결과를 출력할 수 있다.

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

기타 조인

  • 내부 조인이나 외부 조인처럼 자주 사용되지는 않지만 가끔 유용하게 사용되는 조인으로 상호 조인과 자제 조인도 있다.

상호 조인

  • 한쪽 테이블의 모든 행과 다른쪽 테이블의 모든 행을 조인시키는 기능을 말한다. 그래서 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 개수가 된다.

자체 조인

  • 내부 조인, 외부 조인, 상호 조인은 모두 2개의 테이블을 조인하였다. 자체조인은 자신이 자신과 조인한다는 의미이다. 그래서 자체 조인은 1개의 테이블을 사용한다. 또한, 별도의 문법이 있는건 아니고 1개로 조인하면 자체 조인이 된다.

IF문

  • IF문은 조건문으로 가장 많이 사용되는 문법중 하나이다. IF문을 활용하면 다양한 조건을 처리할 수 있다.

IF문의 기본 형식

  • IF문은 조건식이 참이라면 'SQL문장들'을 실행하고, 그렇지 않으면 그냥 넘어간다.
    형식
    IF <조건식> THEN
    ⠀⠀⠀⠀⠀SQL문장들
    END IF;

IF ~ ELSE 문

  • 조건에 따라 다른 부분을 수행한다. IF 조건식이 참이면 'SQL문장들1'을 실행하고, ELSE 그렇지 않으면 'SQL문장들2'를 실행한다.

CASE 문

  • 여러가지 조건 중에서 선택해야 되는 경우도 있다. 이럴 때 CASE 문을 사용하여 조건을 설정할 수 있다.

  • CASE 문의 기본 형식

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

    WHEN 다음에 조건이 나오는데, 조건이 여러개면 WHEN을 반복 시키면 된다. 그리고 모든 조건에 해당하지 않으면 마지막 ELSE부분을 수행한다.

while 문의 기본 형식

  • while 문은 조건식이 참인 동안에 'SQL문장들'을 계속 반복한다.

    WHILE 문의 형식
    WHILE <조건식> DO
    ⠀⠀ ⠀SQL 문장들
    END WHILE;

3주차 선택 미션🤿

profile
즐거운 프로그래밍

0개의 댓글