수요일, 1월 20, 2021

[유튜브 방송] (즐겁게 배우는 SQL #37) 제약 조건 - 기본 키

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

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

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

  • 00:00 기본 키 형식 소개
  • 06:07 기본 키 예제
  • 08:06 기본 키 추가하기

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

  • 단계 1: 기본 키 형식 소개
    CREATE TABLE table_name(
       column_1 INTEGER NOT NULL PRIMARY KEY,
       ...
    );
    
    CREATE TABLE table_name(
       column_1 INTEGER NOT NULL,
       column_2 INTEGER NOT NULL,
       ...
       PRIMARY KEY(column_1,column_2,...)
    );
    
    
    PRAGMA foreign_keys=off;
    
    BEGIN TRANSACTION;
    
    ALTER TABLE table RENAME TO old_table;
    
    -- define the primary key constraint here
    CREATE TABLE table ( ... );
    
    INSERT INTO table SELECT * FROM old_table;
    
    COMMIT;
    
    PRAGMA foreign_keys=on;
    
  • 단계 2: 기본 키 예제
    1. SQL> CREATE TABLE countries ( country_id INTEGER PRIMARY KEY, name TEXT NOT NULL );
    2. SQL> CREATE TABLE languages ( language_id INTEGER, name TEXT NOT NULL, PRIMARY KEY (language_id) );
    3. SQL> CREATE TABLE country_languages ( country_id INTEGER NOT NULL, language_id INTEGER NOT NULL, PRIMARY KEY (country_id, language_id), FOREIGN KEY (country_id) REFERENCES countries (country_id) ON DELETE CASCADE ON UPDATE NO ACTION, FOREIGN KEY (language_id) REFERENCES languages (language_id) ON DELETE CASCADE ON UPDATE NO ACTION );
    4. SQL> INSERT INTO addresses ( house_no, street, city, postal_code, country ) VALUES ( '3960', 'North 1st Street', 'San Jose ', '95134', 'USA ' );
    5. SQL> INSERT INTO people ( first_name, last_name, address_id ) VALUES ('John', 'Doe', 1);
    6. SQL> DROP TABLE addresses;
  • 단계 3: 기본 키 추가하기
    1. SQL> CREATE TABLE cities ( id INTEGER NOT NULL, name text NOT NULL );
    2. SQL> INSERT INTO cities (id, name) VALUES(1, 'San Jose');
    3. SQL> PRAGMA foreign_keys=off;
    4. SQL> BEGIN TRANSACTION;
    5. SQL> ALTER TABLE cities RENAME TO old_cities;
    6. SQL> CREATE TABLE cities ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL );
    7. SQL> INSERT INTO cities SELECT * FROM old_cities;
    8. SQL> DROP TABLE old_cities;
    9. SQL> COMMIT;
    10. SQL> PRAGMA foreign_keys=on;
EOB

댓글 없음:

댓글 쓰기