pk 보는 법
977
投稿した質問数 11
안녕하세요, 강의 완강하고 복습하고 있는 중에 궁금한 점이 있어 질문 남깁니다!
ga_sess 테이블에 sess_id가 pk라고 강사님에 설명을 듣고 알았습니다.
모든 테이블을 강사님 설명을 듣고 pk 가 무엇인지 알게 되었는데,
제가 새로운 테이블을 봤을 때 어떤 컬럼이 pk인지 볼 수 있는 방법이 궁금합니다!
벤다이어그램만 보고 pk가 다중컬럼인지 단일컬럼인지 이해할 수 없어 질문남깁니다!
回答 1
0
안녕하십니까,
특정 테이블의 어떤 컬럼이 PK 인지는 DBMS 내부에 문의를 던져야 합니다.
만약 dbeaver를 사용하고 계시다면
Databases->postgres->Schemas->nw->Tables에서 원하시는 테이블을 선택하신 뒤에(가령 customers) 여기에 Constraint 나 indexes를 선택하시면 PK가 보이게 됩니다.
만약 postgresql의 psql을 사용하신다면 nw schema로 접속 하여 \d customers 를 수행하시면 테이블 속성 및 pk 정보가 나타나게 됩니다.
근데 ga 스키마의 ga_sess 테이블은 pk index가 없습니다. 그래서 위의 방법으로 하면 PK가 안보일 겁니다.
제가 강의에서 PK를 말씀 드린건 논리적인 의미로 테이블의 주인이 되는 Unique한 키값을 의미한 것입니다.
가령 Customer테이블이라면 customer_id, orders 테이블이라면 order_id 컬럼들이 pk가 될 수 있을 것입니다. PK가 어떤 컬럼이 되는지는 DB 모델 설계시 다양한 업무적인 상황을 고려해서 설정합니다. 보통은 모델링 툴을 통해서 해당 테이블을 보았을 때 모델러가 PK 컬럼을 반드시 표시합니다.
PK는 Unique하므로 아래와 같이 해당 컬럼명으로 group by count를 했을 때 1건 이상이 튀어나오면 안됩니다.
select 컬럼명, count(*) cnt from 테이블명 group by 컬럼명 having count(*) > 1;
물론 Unique하다고 PK가 되는건 아니지만, 위에서 언급 드린 사항들을 종합해서 pk를 판단하실 수 있을 것입니다.
감사합니다.
"주문별 고객별 연관 상품 추출 SQL로 구하기-02" 수업 질문
0
52
2
쿼리 질문있습니다!!
0
49
2
없는강의요청해도됩니까,,
0
91
2
아래와 동일한 질문에 대한 추가질문입니다
0
70
2
cnt/max로 구한 결과의 차이
0
100
2
쿼리에 대한 질문이 있습니다.
0
116
2
퍼널 질문드립니다.
0
113
1
ADSP자격증
0
282
2
특정 스키마에서 생성한 편집기의 쿼리를 판다스에 삽입하는 방법
0
161
1
백업파일 테이블 생성 오류
0
235
1
"사용자별 특정 상품 주문시 함께 가장 많이 주문된 다른 상품 추출하기"에서 조건관련..
0
161
1
Plotly을 이용해 treemap시각화시 공유사항
0
277
2
월단위 카테고리별 매출액과 주문건수 및 전체매출액 대비 비율 sql로 구하기 수업 중 질문이 있습니다.
0
248
1
with 절 질문
0
240
1
데이터 분석 SQL Fundamentals 강의 할인 문의
0
215
1
리텐션 구하는 방법 문의
0
215
1
캐글데이터 Postgresql 사용
0
356
2
mau 구할때 group by 사용안해도 count 집계함수가 왜 가능한지 모르겠습니다.
0
262
1
매출분석 1에서 partition by와 group by의 차이
0
355
1
postgres 설치 오류
0
318
1
맥 계정에서 postgres 접속 시 비밀번호 입력 실패현상
1
543
2
pandas 연계시 오류.....
0
1243
3
시각화 그래프가 안보여요
0
299
1
ntile 정규분포에 관하여 ... 향후 일을 하게 될 시
0
358
1

