[질문 내용] 저는 FK에서 PK로 조인하고 id로 찾았는데, PK에서 FK를 조인한 후 name으로 찾는 것과의 차이를 모르겠습니다. 자식 입장에서는 PK가 하나이기 때문에 한 행이고, 부모에서 FK를 볼 땐 여러 개일 수도 있으니 여러 행일 수 있다는 것은 이해했지만 이 경우에는 어떤 차이점이 있는지, 안좋은 방식인지, 틀린 건지 궁금합니다.
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! DML-등록 강의 듣고 있는 중입니다. 선생님이 입력한시대로 동일하게 입력했는데, 첨부한 화면 보시면 이순신이 들어간 서울시 관악구에는 활성화가 되지 않아(?) 계속 오류가 뜹니다 무엇이 문제일까요ㅠㅠ
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] AI가 개발자를 대체한다는 요즘에 개발자 취준생은 어떻게 취업 준비를 하면 좋을까요 ? ㅠㅠ
안녕하세요 조인실습03 - 8:25에서 join 관련 질문입니다. [ 이해한 내용 ] - shippers의 shipper_id - orders의 ship_via 컬럼명만 다를 뿐, shipper_id가 pk컬럼인데, orders에서 fk로 만들 때 ship_via로 만든 것이다. 그래서 두 컬럼이 조인된다. [ 궁금한 사항 ] 두 컬럼이 PK - FK 관계라는 판단 근거가 어떻게 되나요? Dbeaver에서 이를 쉽게 확인할 수 있나요? 제가 수강한 진도까지는 이러한 내용이 나오지 않고 ERD를 봐도 모르겠어서 질문드립니다.
안녕하세요 조인실습03 - 8:25에서 join 관련 질문입니다. [ 이해한 내용 ] - shippers의 shipper_id - orders의 ship_via 컬럼명만 다를 뿐, shipper_id가 pk컬럼인데, orders에서 fk로 만들 때 ship_via로 만든 것이다. 그래서 두 컬럼이 조인된다. [ 궁금한 사항 ] 두 컬럼이 PK - FK 관계라는 판단 근거가 어떻게 되나요? Dbeaver에서 이를 쉽게 확인할 수 있나요? 제가 수강한 진도까지는 이러한 내용이 나오지 않고 ERD를 봐도 모르겠어서 질문드립니다.
employee_id와 manager_id를 사용해서 셀프조인 하는 과정에서 자신의 상사를 모두 표시하고 싶다는 생각이 들었습니다. SELECT a.employee_id, a.name, b.employee_id, b.name, c.employee_id, c.name, d.employee_id, d.name, e.employee_id, e.name FROM employees a left join employees b on a.manager_id = b.employee_id left join employees c on b.manager_id = c.employee_id left join employees d on c.manager_id = d.employee_id left join employees e on d.manager_id = e.employee_id 이와같이 직원 코드가 있고 상사 코드가 있는 경우 자기로부터 가장 높은 상사까지 한 행에 다 출력하고 싶은 경우에는 어떤 방법이 최선인지 알고 싶습니다. 지금은 단순히 데이터 개수가 적기 때문에 몇번의 조인으로 해결되었지만 실무에서 데이터 개수가 많다고 할때 이와같이 구하려면 어떻게 구해야하는지 궁금합니다. 즉 위 코드처럼 여러번 조인을 쓰는게 아니라 원하는 결과를 얻을 때 까지 자동으로 반복시킬 방법이 있는지 궁금합니다.
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 쿼리를 작성하다 SELECT에 서브쿼리, 함수, 산술연산, 문자열 결합, CASE, DECODE 등 여러가지 작업을 진행하게 됩니다. 이 요소를 where절에 사용하려면 select 절에 입력한 내용을 그대로 입력해야 합니다. 이런 경우 저는 쿼리를 한번 감 싸서 where절에서 별칭을 사용해서 처리하는 방식으로 많이 작성하고 있습니다. 이런 방식이 안티패턴인지, 이런 방식으로 계속 작성해도 되는지 궁금합니다. SELECT customer_name, total_purchase FROM( SELECT customer_name, SUM(price * quantity) AS total_purchase FROM order_stat GROUP BY customer_name ) A WHERE A.total_purchase >= 400000; 이 케이스는 HAVING로 해결하면 되는 문제지만 이와 별개로(GROUP BY 존재여부 상관없이) 기존 SQL을 새로운 SELECT ~~ FROM (기존SQL) WHERE (별칭을 사용해서 제어) 이런 방식으로 사용해도 괜찮은 건지 궁금합니다.
동시성 제어는 분산락 원자적 연산 방식으로 해결한다고 설명해주셨는데, 레디스 분산락의 경우, 락을 획득하려는 클라이언트가 Redis의 Set 명령어를 사용하게 되는데, 이때 NX(Not eXists) 옵션을 통해 키가 존재하지 않을 때만 값을 설정하도록 하기 때문에, 이 연산은 원자적으로 수행된다고 합니다. 결론적으로 1, 2안 모두 원자적 연산을 의미하는것이라고 생각이 들어 헷갈리는데요..! 혹시 어떤 의도로 말씀해주신건지 설명해주실 수 있나요? 그리고 Redis를 예시로 들었을때, 레디스는 싱글 스레드 동작 방식이라서, 동시성 문제가 제어 된다고 하는데, 이 동시성 문제가 실제로 발생하는 경우는 어떻게 되는건지, redis 서버가 다중 노드일 때 발생하는건지 궁금합니다.
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
기존에 사용하던 database 도구를 data grip을 사용하고 있습니다. 선생님의 강의를 따라가면서 data grip을 사용하면서 강의를 진행해도 문제가 없을지요? 혹여나 강의중에 work bench의 상세기능을 설명하시면서 강의를 진행하시면 work bench로 따라가고 아니라면 data grip으로 따라가려 합니다.
select page_path , count (*) as hits_cnt , count ( distinct a . sess_id ) as net_cnt from ga_sess a join ga_sess_hits b on a . sess_id = b . sess_id where hit_type = 'PAGE' group by page_path order by 2 desc 저도 아래 질문글처럼 같은 방식으로 쿼리를 작성했습니다. 이전섹션인 일별 페이지 조회수와 양식이 유사해서 저한테 더 익숙했기 때문입니다 그런데 수업에서 사용한 쿼리가 제 쿼리보다 월등히 처리속도가 빠르더라고요(3s vs 4.7s). SQL숙련도가 올라가면 튜닝이라는걸 통해 처리속도를 최적화해야 한다고 들었습니다. 나중을 대비해서 익숙한 제 쿼리보다는 처리속도가 빠른 선생님 코드처럼 코드작성 습관을 바꾸는게 좋을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 1. 2. 3. 예. [질문 내용] SELECT 절에서 상관 서브쿼리 를 사용하는 것에 대해, 완전히 다른 테이블에서 간단한 정보 하나만 조회할 때 적재적소에 사용하면 괜찮다 고 하셨는데 상황 저희 회사에서 사용하는 쿼리 들을 보면, SELECT 절에서 상관 서브쿼리 를 활용해 다른 테이블에서 간단한 정보를 조회하는 경우가 많습니다. 예를 들어, 작성자, 요청자, 접수자 각각에 대해 이름과 부서명을 조회할 때, 각 항목마다 서브쿼리 가 사용됩니다. 작성자 이름: (SELECT name FROM EMP WHERE emp_id = main.writer_id) 작성자 부서: (SELECT dept_name FROM DEPT WHERE dept_id = main.writer_dept_id) 요청자 이름, 접수자 이름 등도 동일한 방식 질문 이렇게 PK 기준으로 조건을 걸고 조회하는 서브쿼리가 여러개 들어가도 성능상 괜찮을까요? 조인으로 처리하면 조인 테이블이 많아져 쿼리가 복잡 해질 것 같은데. 이럴 경우 서브쿼리 방식이 더 적절한가요? 만약 이 방식이 성능상 좋지 않다면 , 보다 나은 방법이나 현실적인 대안 이 있을까요?