소개
강의
전체1수강평
- 큰 도움이 되었습니다. 친절한 설명 감사합니다.
hjchoi
2024.07.17
1
- aa
csy1010
2024.05.06
1
- 좋은 강의였습니다
KoKuMa
2024.02.23
1
게시글
질문&답변
2021.11.17
제어문 연습문제 질문
안녕하세요 상열님 첫번째 while문과 두번째 while문의 결과가 다른 것은 조건 조건을 주는 부분에서 헷갈리셨던 거 같아요. a = 10 b = "*" * a print(b) # b값은 "*" * a가 되면서, 값이 **********인 것을 확인. while 0 11 : a = a - 1 # a값은 -1 만큼 줄어들고 있음 print(a) # 반복문에서 무엇이 문제 인지 모를 때, 헷갈리는 변수를 중간에 출력하는 것을 추천 print (b) # b 값에 대한 변화가 없기 때문에 **********는 a가 0이 될 때 까지 출력. 결과: 9 ********** 8 ********** 7 ********** 6 ********** 5 ********** 4 ********** 3 ********** 2 ********** 1 ********** 0 ********** ---------------------- while 0 11 : a = a - 1 print(a) # a의 값의 변화 살펴보기 b = "*" * a # b와 관련 된 식을 추가했기 때문에 a 값 만큼 ark 모양을 만들 수 있음. print (b) 결과: 9 ********* 8 ******** 7 ******* 6 ****** 5 ***** 4 **** 3 *** 2 ** 1 * 0 즉, b값 변화 식은 아래 조건문에 있었기 때문에 해당 ark가 나왔습니다. 위에서 설명드렸지만, 반복문에서 무엇이 문제인지 모를 때는 해당 변수를 출력해보는 것을 추천드려요 while문을 잘 작성해주셨는데 조건문 관련 변수가 두개(a, b)였기 때문에 더 헷갈리셨던 거 같아요. 이번 기회에 조건문을 작성할 때, 변수를 하나로 작성하는 법을 연습하면 좋을 거 같아요~ a = 10 while a > 0 : print ( "*" * i) a -= 1
- 0
- 2
- 336
질문&답변
2020.08.05
LEFT JOIN할 때 왜 JOIN한 아이디도 NULL이 나오나요?
안녕하세요 희경님~ 강의 중 Customers와 Orders를 LEFT JOIN을 응용하셔서 실습하셨네요~ 일단, 희경님의 질문해주신 LEFT JOIN한 CustomerID가 NULL이 나오는 것은 SQL 사이트의 오류인 것 같습니다. Customers 테이블을 기준으로 LEFT JOIN을 한 것이기 때문에 Customer 테이블 컬럼인 CustomerID에 NULL 나오지 않는 것이 맞습니다~ 혹시 몰라서 CustromerID에 NULL값을 확인했지만 없었습니다~ SQL 코드 1. (사진) SQL 코드 2. (사진) 희경님께서 이해하신 LEFT JOIN 개념이 맞습니다~ 희경님 덕분에 저도 싸이트의 오류를 찾았네요~ 이번 기회에 희경님도 LEFT JOIN 잘 이해하셨으면 좋겠습니다. 감사합니다~
- 1
- 2
- 228
질문&답변
2020.08.04
왜 Inner join인지 모르겠습니다.
안녕하세요~ 수민님ㅎㅎ join 관련해서 질문해주셨는데요~ 질문에 대한 답을 하기 전에 employee와 department 테이블을 예시로 들면서 알려드릴게요~ 두 테이블의 공통 된 컬럼은 part 컬럼 인 것을 보실 수 있어요~ employee num name part 1 tony 영업 2 hun 홍보 3 jin 교육 4 young null 5 su null department part floor 영업 7 홍보 5 교육 9 이 두 테이블로 inner join을 한다면, 각 테이블에 공통으로 들어간 값을 가져옵니다. 보통 inner join을 교집합 이라고 이해하시면 됩니다~ SELECT * FROM employee INNER JOIN depratment ON employee.prat = department.part; inner join 결과는 공통 된 컬럼 이 있는 테이블만 출력 됩니다. num name part part floor 1 tony 영업 영업 7 2 hun 홍보 홍보 5 3 jin 교육 교육 9 (사진) out join은 inner join과 다르게 어떤 테이블을 기준 으로 데이블을 출력하느냐에 따라 left join, right join, full outer join으로 분류 됩니다. left join 은 왼쪽 테이블 을 기준으로 join을 합니다. 조인 조건에 부합하는 데이터가 오른쪽에 있으면 select 하고, 없다면 null 값을 채워넣습니다. SELECT * FROM employee LEFT JOIN department ON employee.part = department.part 결과 테이블을 보면 employee 테이블을 기준으로 join 한 것을 알 수 있습니다. employee.name의 young과 su는 department.part 내용이 없기 때문에 null값이 처리 됐습니다. num name part part floor 1 tony 영업 영업 7 2 hun 홍보 홍보 5 3 jin 교육 교육 9 4 young null null null 5 su null null null (사진) right join 은 left join과 반대이기 때문에 오른쪽 을 기준으로 합쳐집니다. SELECT * FROM employee RIHGT JOIN department ON employee.part = department.part 결과 테이블이 department을 기준으로 합쳐진 것을 알 수 있습니다. num name part part floor 1 tony 영업 영업 7 2 hun 홍보 홍보 5 3 jin 교육 교육 9 (사진) 많이 기다리셨을 거 같아요~ 수민님께서 질문해주신 질문에 답을 드리겠습니다~ 수민님께서 질문 내용을 한번 정리해봤는데 질문에 대한 내용이 맞지 않을 경우 댓글 달아주세요~ 1. inner join과 left join의 데이터 결과 차이는 NaN인 것 같습니다. NaN이 필요한 때, left join을 사용해도 될까요?? 2. JOIN 문제 풀이 때, inner join을 사용한 이유는 무엇인가요? left join을 쓰면 왜 오답처리 되는지? 3. 수민님 코드 중 inner join 대신 left join으로 작성해서 NULL 값이 추가되었는데 필요없는 데이터인지? NULL 값의 의미. 4. JOIN 할 때, 테이블의 기준. 1번. 네~ 테이블 컬럼과 상황에 따라 다르겠지만, NaN값이 필요하시다면 left/right join을 사용하시면 됩니다~ 하지만, inner join과 left join의 데이터 결과 값 차이가 NaN이라고 이해하시면 안돼요ㅠ inner join에서는 공통 된 값이 나오고, left join은 left 테이블을 기준으로 join 하기 때문에 right 테이블이 NaN값이 나오게 됩니다. NaN값 뿐 만 아니라 left에 있는 값들도 출력 되기 때문에 결과값은 달라집니다. 2번. 문제를 잘 읽어보시면, 공통 된 컬럼 값만 가져오도록 제시했습니다. 공통된 값을 가져오기 위해서는 inner join (교집합)을 사용해야합니다. left join을 사용했을 경우, 공통 된 테이블이 나오지 않기 때문입니다. 3번. null 은 아직 정의 되지 않은 값, 미확인 된 값 입니다. 0과 문자 공백이랑 다른 의미이며 값 자체가 존재하지 않다라는 의미를 가지고 있습니다. 4번. 테이블 예시로 테이블의 기준을 어떻게 잡는지 이해하셨을 것 같아요~ 하지만 시각적인 자료가 있으면 더 도움이 될 거 같아 링크 첨부했으니 참고해주세요~ https://sql-joins.leopard.in.ua/ https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
- 1
- 2
- 1.1K
질문&답변
2020.08.04
AS 사용의 위치가 헷갈립니다
안녕하세요 이정님ㅎㅎ AS(별칭)에 관해서 질문해주셨네요~ AS는 질의문(절)의 끝에서 사용합니다. [대상/질의문] AS [별칭명] leetcode의 1179번의 예시를 통해 설명드리자면, SUM(CASE WHEN month = 'jan' THEN Revenue ELSE NULL END) AS Jan_Revenue SUM(CASE WHEN month = 'jan' THEN Revenue ELSE NULL END)의 긴 문구를 AS 를 통해 "Jan_Revenue" 로 간단하게 정리했습니다~ 이와 같이 AS(별칭)은 질의문이 복잡해짐에 따라 명칭이 길어지는 것을 깔끔하게 처리합니다. 또한, AS는 생략 가능해서 아래와 같이 코드를 작성하실 수 있습니다~ 하지만 AS 키워드를 사용하는 것이 깔끔하여 포함시키는 것을 권장해드립니다~ [대상] [별칭명] SUM(CASE WHEN month = 'jan' THEN Revenue ELSE NULL END) Jan_Revenue AS에 대한 궁금증이 잘 해결되셨기를 바라며 질문 감사합니다 :)
- 1
- 1
- 160
질문&답변
2020.08.01
코드 에러 이유를 못찾겠어요
안녕하세요~ Jenna Yeo님~ SQL 오류에 질문 주셔서 답변드립니다ㅎㅎ SQL문을 살펴보니까 맨 마지막에 ;(세미 콜론)을 안넣어주셔서 오류가 작성한 것 같습니다~ 세미콜론은 한 코드가 끝났다는 의미로 사용되기 때문에 (언어 마다 다르지만) 꼭 필요합니다~ ;(세미콜론)을 추가해주시고 코드를 실행해보시면 아래와 같은 결과가 나올 것 같습니다~ 감사합니다ㅎㅎ (사진)
- 4
- 2
- 257