[유튜브 방송] (즐겁게 배우는 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: 기본 키 예제
- SQL> CREATE TABLE countries ( country_id INTEGER PRIMARY KEY, name TEXT NOT NULL );
- SQL> CREATE TABLE languages ( language_id INTEGER, name TEXT NOT NULL, PRIMARY KEY (language_id) );
- 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 );
- SQL> INSERT INTO addresses ( house_no, street, city, postal_code, country ) VALUES ( '3960', 'North 1st Street', 'San Jose ', '95134', 'USA ' );
- SQL> INSERT INTO people ( first_name, last_name, address_id ) VALUES ('John', 'Doe', 1);
- SQL> DROP TABLE addresses;
- 단계 3: 기본 키 추가하기
- SQL> CREATE TABLE cities ( id INTEGER NOT NULL, name text NOT NULL );
- SQL> INSERT INTO cities (id, name) VALUES(1, 'San Jose');
- SQL> PRAGMA foreign_keys=off;
- SQL> BEGIN TRANSACTION;
- SQL> ALTER TABLE cities RENAME TO old_cities;
- SQL> CREATE TABLE cities ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL );
- SQL> INSERT INTO cities SELECT * FROM old_cities;
- SQL> DROP TABLE old_cities;
- SQL> COMMIT;
- SQL> PRAGMA foreign_keys=on;
댓글 없음:
댓글 쓰기