검색엔진

수요일, 1월 27, 2021

[유튜브 방송] (즐겁게 배우는 SQL #41) 제약 조건 - CHECK 제약

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 41편을 공개해드리겠다. 41편은 CHECK 제약 조건을 소개한다.

2021년 1월 27일자 [즐겁게 배우는 SQL #41] 제약 조건 - CHECK 제약 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 CHECK 제약 기본 형식 소개
  • 03:06 컬럼 CHECK 예제
  • 06:02 테이블 CHECK 예제
  • 08:04 기존 테이블에 CHECK 제약 걸기

원본 학습자료는 SQLite CHECK constraints를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: CHECK 제약 기본 형식
    CREATE TABLE table_name(
        ...,
        column_name data_type CHECK(expression),
        ...
    );
    
    CREATE TABLE table_name(
        ...,
        CHECK(expression)
    );
    
    BEGIN;
    -- create a new table 
    CREATE TABLE new_table (
        [...],
        CHECK ([...])
    );
    -- copy data from old table to the new one
    INSERT INTO new_table SELECT * FROM old_table;
    
    -- drop the old table
    DROP TABLE old_table;
    
    -- rename new table to the old one
    ALTER TABLE new_table RENAME TO old_table;
    
    -- commit changes
    COMMIT;
    
  • 단계 2: 컬럼 CHECK 예제
    1. SQL> CREATE TABLE contacts ( contact_id INTEGER PRIMARY KEY, first_name TEXT NOT NULL, last_name TEXT NOT NULL, email TEXT, phone TEXT OT NULL CHECK (length(phone) >= 10) );
    2. SQL> INSERT INTO contacts(first_name, last_name, phone) VALUES('John','Doe','408123456');
    3. SQL> INSERT INTO contacts(first_name, last_name, phone) VALUES('John','Doe','(408)-123-456');
  • 단계 3: 테이블 CHECK 예제
    1. SQL> CREATE TABLE products ( product_id INTEGER PRIMARY KEY, product_name TEXT NOT NULL, list_price DECIMAL (10, 2) NOT NULL, discount DECIMAL (10, 2) NOT NULL DEFAULT 0, CHECK (list_price >= discount AND discount >= 0 AND list_price >= 0) );
    2. SQL> INSERT INTO products(product_name, list_price, discount) VALUES('New Product #1',2000,1000);
    3. SQL> INSERT INTO products(product_name, list_price, discount) VALUES('New Product #2',900,1000);
    4. SQL> INSERT INTO products(product_name, list_price, discount) VALUES('New XFactor',1000,-10);
  • 단계 4: 기존 테이블에 CHECK 제약 걸기
    1. SQL> CREATE TABLE contacts ( contact_id INTEGER PRIMARY KEY, first_name TEXT NOT NULL, last_name TEXT NOT NULL, email TEXT, phone TEXT NOT NULL );
    2. SQL> INSERT INTO contacts(first_name, last_name, phone) VALUES('John','Doe','(408)-123-456');
    3. SQL> BEGIN;
    4. SQL> CREATE TABLE new_contacts ( contact_id INTEGER PRIMARY KEY, first_name TEXT NOT NULL, last_name TEXT NOT NULL, email TEXT, phone TEXT NOT NULL CHECK (length(phone) >= 10) );
    5. SQL> INSERT INTO new_contacts SELECT * FROM contacts;
    6. SQL> DROP TABLE contacts;
    7. SQL> ALTER TABLE new_contacts RENAME TO contacts;
    8. SQL> COMMIT;
EOB

화요일, 1월 26, 2021

[유튜브 방송] (즐겁게 배우는 SQL #40) 제약 조건 - UNIQUE 제약

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 40편을 공개해드리겠다. 40은 UNIQUE 제약 조건을 소개한다.

2021년 1월 26일자 [즐겁게 배우는 SQL #40] 제약 조건 - UNIQUE 제약 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 UNIQUE 기본 형식 소개
  • 02:11 UNIQUE 예제(하나)
  • 04:43 UNIQUE 예제(여러 개)
  • 06:55 UNIQUE와 NULL

원본 학습자료는 SQLite UNIQUE Constraint를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: UNIQUE 기본 형식 소개
    CREATE TABLE table_name(
        ...,
        column_name type UNIQUE,
        ...
    );
    
    CREATE TABLE table_name(
        ...,
        UNIQUE(column_name)
    );
    
    CREATE TABLE table_name(
        ...,
        UNIQUE(column_name1,column_name2,...)
    );
    
  • 단계 2: UNIQUE 예제(하나)
    1. SQL> CREATE TABLE contacts( contact_id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, email TEXT NOT NULL UNIQUE );
    2. SQL> INSERT INTO contacts(first_name,last_name,email) VALUES ('John','Doe','john.doe@gmail.com');
    3. SQL> INSERT INTO contacts(first_name,last_name,email) VALUES ('Johnny','Doe','john.doe@gmail.com');
  • 단계 3: UNIQUE 예제(여러 개)
    1. SQL> CREATE TABLE shapes( shape_id INTEGER PRIMARY KEY, background_color TEXT, foreground_color TEXT, UNIQUE(background_color,foreground_color) );
    2. SQL> INSERT INTO shapes(background_color,foreground_color) VALUES('red','green');
    3. SQL> INSERT INTO shapes(background_color,foreground_color) VALUES('red','blue');
    4. SQL> INSERT INTO shapes(background_color,foreground_color) VALUES('red','green');
  • 단계 4: UNIQUE와 NULL
    1. SQL> CREATE TABLE lists( list_id INTEGER PRIMARY KEY, email TEXT UNIQUE );
    2. SQL> INSERT INTO lists(email) VALUES(NULL),(NULL);
    3. SQL> SELECT * FROM lists;
EOB

월요일, 1월 25, 2021

[개발자 이야기] (1월 23일) 프론트엔드 성능 점검 항목 – 2021 버전

2021년 1월 23일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

2021년 1월 23일자 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 오늘 방송 주요 내용 소개
  • 06:28 js;dr
  • 08:35 풀 스택 vs 풀 사이클 개발자
  • 13:07 GCP, AWS, Azure 누가 누가 잘하나
  • 15:52 AWS 엘라스틱 라이선스 변경에 대한 대응 방안 발표
  • 20:40 오라클에서 PostgreSQL로 마이그레이션할 때 주의 사항
  • 22:45 클라우드플레어 waiting room
  • 26:40 프론트엔드 성능 점검 항목 – 2021 버전
  • 32:47 gradle의 문제점
EOB