Snowflake로 시작하는 데이터 모델링
Nuno Rocha
Director of Engineering



ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);


CREATE OR REPLACE TABLE enrollments ( -- 고유 식별자가 있는 새 엔터티 생성 enrollment_id NUMBER(10,0) PRIMARY KEY-- 엔터티 속성 추가 year NUMBER(4,0), semester VARCHAR(255)-- 다른 엔터티와의 관계 추가 FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id));


SELECT students.name
FROM students;

SELECT students.name
FROM students
JOIN enrollments
ON students.student_id = enrollments.student_id;

SELECT students.name
FROM students
JOIN enrollments
ON students.student_id = enrollments.student_id
WHERE enrollments.year = '2023';

SELECT students.name,
classes.class_name
FROM students
JOIN enrollments
ON students.student_id = enrollments.student_id
JOIN classes
ON enrollments.class_id = classes.class_id
WHERE enrollments.year = '2023';

SELECT students.name,
classes.class_name
FROM students
JOIN enrollments
ON students.student_id = enrollments.student_id
JOIN classes
ON enrollments.class_id = classes.class_id
JOIN schools
ON classes.department_id = schools.school_id
WHERE enrollments.year = '2023'
AND schools.school_name = 'Science';
JOIN ON: 관련 열을 기준으로 테이블 행을 결합하는 SQL 절.
SELECT FROM: 테이블에서 열을 조회하는 SQL 명령.JOIN ON: 관련 열을 기준으로 테이블을 결합하는 SQL 절.WHERE: 조건에 따라 레코드를 필터링.AND: WHERE 절에서 조건을 결합하는 논리 연산자.-- 특정 조건으로 병합된 엔터티에서 데이터 조회
SELECT column_name
FROM table_name
JOIN other_table ON table_name.FK = other_table.PK
WHERE column_name condition value
AND column_name condition value;
Snowflake로 시작하는 데이터 모델링