기본적인 개념같아서 구글링도 해봤는데 object 와 object[] 배열간의 형변환에 대한 내용이 안보여서 질문드립니다. 다름이 아니라 Object o = resultList.get(); Object[] result = (Object[])0; 에서 왜 Object 타입에서 Object[] 타입으로 형변환을 해야하는지, 그냥 o[0], o[1] ... 로 쓰면 왜 컴파일 오류가 나는지 궁금합니다. Object 타입에서 어떻게 Object[] 타입으로 형변환이 가능한지 궁금합니다. Obect[] 배열은 Object가 여러개 포함된 배열 아닌가요?.. 아니면 Object 타입이 Object[] 타입까지도 포함한 포괄적인 개념이라 위처럼 형변환이 가능한 건가요? 기본적인 내용같은데 개념이 잘 이해가 안가서 질문드립니다 ㅠㅠ
영속성 컨텍스트에 프록시 객체도 저장이 되나요? 강의 내용중 프록시 객체의 초기화를 보면 getName()을 요청했을때 최초의 요청이면 영속성 컨텍스트에서 조회를 하고 DB에서 조회를 한다고 나와있는데 .getReference를 했을때 생성되는 프록시객체도 영속성컨텍스트에서 관리를 하나요? 그리고 .getName을 요청해서 실제 엔티티를 받아오게되면 이 객체도 영속성 컨텍스트에서 관리를하나요? 그리고 2번째 .getName 메서드를 요청해도 꼭 프록시 객체를 거쳐서 값을 받게되나요?
안녕하세요. 강의 듣고 실습문제를 따로 풀어보고 있는데요 1997년 이후에 단 한건도 주문하지 않은 고객 정보에 대해 저는 아래와 같이 인라인뷰를 안쓰고 바로 left 조인으로 했는데요. 이렇게 풀이를 해도 상관없을까요? 실행결과 자체는 같은데 혹시 먼가 빠뜨리거나 잘못생각하고 있는게 있나 궁금해서 문의드립니다. 풀이 SELECT * FROM NW.customers A LEFT JOIN NW.orders B ON A.customer_id = B.customer_id AND B.order_date >= TO_DATE ('19970101', 'YYYYMMDD') WHERE B.customer_id IS NULL 정답 select * from nw.customers a left join ( select customer_id from nw.orders where order_date >= to_date ('19970101', 'yyyymmdd') group by customer_id ) b on a.customer_id = b.customer_id where b.customer_id is null ;
2번 문제 SELECT COUNT(POPULATION) FROM CITY WHERE DISTRICT = 'California'; SUM 이 아닌 COUNT 를 쓰게 되면 뭘 의미하게 되는 걸까요? 저는 왜 SUM 과 COUNT 를 혼동할까요? 3번 문제 왜 COUNT(ID) 여야 하는건가요? COUNT(DISTRICT)도 답이 될까요? 5번 문제 문제에서 조건이 주어졌을 때 SELECT 절에 써야 할 지 WHERE절에 써야 할 지 헷갈립니다. MAX, ROUND 등은 SELECT 절에 주고 또 어떤 조건들은 WHERE 절에 주는데 기준이 뭘까요? 저는 SELECT POPULATION FROM CITY WHERE MAX(POPULATUIN) - MIN(POPULATUIN); 이렇게 적어서 틀렸습니다.
공부하다가 의문이 생겼는데요, 낙관적 락 - 충돌 잦으면 락 획득 재시도 로직 때문에 성능 안좋음 비관적 락 - 충돌 잦으면 낙관적 락보다 성능좋음. 분산 락 - 스케일 아웃된 DB 환경에서도 사용 가능 - Redis 라이브러리마다 다른데 Lettuce는 스핀락으로 구현되서 재시도 많으면 불리 Redisson은 pub-sub 기반이라 재시도 많으면 유리 정확하진 않지만 이렇게 알고있습니다. 질문은 1. 잘못 알고 있나요? 2. 제가 공부한게 맞다면, 무조건 비관적 락, 낙관적 락 말고 분산락 + Redis(Lettuce/Redisson) 쓰는게 좋은건가요?
안녕하세요, GROUP BY 함수 관련 질문입니다. GROUP BY SupplierID GROUP BY SupplierID 를 했을 때 SupplierID는 자동으로 중복이 제거가 된 뒤 평균가격이 반환되는 건가요? GROUP BY SupplierID, CategoryID 는 무슨 뜻인지 모르겠어요 SupplierID별 평균가격과 CategoryID별 평균 가격 이렇게 2개의 결과가 나와야 하는 건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 위와 같이 테스트를 구현하고 테스트 실행 시 Insert 쿼리가 나갑니다. 그런데 예외가 발생했기 때문에 롤백이 되어서 또는 테스트의 트랜잭션 디폴트 값이 Rollback이라서 Insert 쿼리가 나가지 않아야 하는 것 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] gradlew build를 하면 이런 에러가 발생합니다. 인텔리제이 설정에서 build Tools > Run tests using 항목을 IntelliJ IDEA로 변경을 해보았으나 에러는 동일하게 발생했지만 해결책을 모르겠습니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 제가 한 게시판에서 이런 글을 읽었습니다. "요즘에는 논리적인 연관관계는 만들지만 db에서는 만들지 않고 조인 연산을 거의 안 하고 여러 번 쿼리해서 애플리케이션에서 조합합니다." 이유로는 연관관계를 맺으면 테이블 설계에 있어 유연성이 떨어짐 조인연산은 db 자원을 많이 잡아먹는 무거운 연산이고 db 성능에는 한계가 있어 서버를 확장해서 자원을 쓰는 것이 유리함 라는 근거를 들었습니다. 이것이 맞는 판단인지 궁금합니다 (금융권에 계신 분이 쓴 듯 합니다)
안녕하세요. 강의실습을 진행하다가 궁금한 사항이 있어 문의드립니다. 가장최근 급여정보를 비상관으로 풀이한 쿼리를 보면 서브쿼리내에 GROUP BY가 생략된 것 같아서요 select * from hr.emp_salary_hist a where todate = ( select max (todate) from hr.emp_salary_hist x where a.empno = x.empno); 서브쿼리내 where a.empno = x.empno 에 의해 group by 가 없어도 직원별 max(todate)를 가져오게 된건가요? 그러면 아래의 쿼리에서도 group by를 생략해도 되는건가요? -- 2건 이상 주문을 한 고객 정보 select * from nw.customers a where exists ( select 1 from nw.orders x where x.customer_id = a.customer_id group by customer_id having count (*) >=2);
select distinct city from station where city not like '%a%' or city not like '%e%' or city not like '%i%' or city not like '%o%' or city not like '%u%' 위 쿼리는 제가 작성한 쿼리입니다 이렇게 쿼리 작성하는건 문제에서 말하는 의도는 맞긴한 것 같은데 값 산출이 안되더라구요 다른분이 적어주신 코드(아래)를 보면 or로 연결을하고있는데 한번에 and조건으로 '%a%' 로 하면안되는건지 궁금합니다. SELECT DISTINCT city FROM station WHERE city NOT LIKE 'a%' AND city NOT LIKE 'e%' AND city NOT LIKE 'i%' AND city NOT LIKE 'o%' AND city NOT LIKE 'u%' OR city NOT LIKE '%a' AND city NOT LIKE '%e' AND city NOT LIKE '%i' AND city NOT LIKE '%o' AND city NOT LIKE '%u'
LeetCode 177 번에서 LIMIT, OFFSET 을 사용해서 문제를 풀라고 하셨을때 DISTINCT 와 LIMIT 를 같이 쓰셨던데 그것들 중 뭐가 먼저 작동하는지 작동 순서가 궁급합니다. 아래는 강사님의 풀이입니다 CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN SET N = N-1; RETURN ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET N ); END 그리고 아래의 데이터가 input 이라고 생각해보면 처음 제 생각은 이랬습니다 ORDER BY -> LIMIT -> DISTINCT 순대로 실행된다면 N=2 일때 우선 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 것이고, 여기서 LIMIT 를 하면 1개만 가져와서 100 이 될겁니다. 거기서 DISTINCT 를 해도 100 이 될거고요 근데 결과가 그렇게 나오지 않는 걸 보면 위의 제가 생각했던 순서가 틀린거겠죠? ORDER BY -> DISTINCT -> LIMIT 가 맞나요? N = 2 일때 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 거고, 여기서 DISTINCT 를 하여 100 이 되고, LIMIT 를 하면 데이터가 1개이므로 2번째로 큰 Salary 를 구할 수 없어서 null 이 되는 것인가요? ORDER BY, DISTINCT, LIMIT 의 작동 순서를 알고싶습니다
안녕하세요! 처음으로 dbeaver 을 사용하는데 sql추출하는 곳의 글꼴 크기가 너무 작아 구글을 통해 환경설정을 하려고 했습니다. 근데 보통 설정>모양>색상및 글꼴>기본>텍스트 글꼴 하면 된다고 나오는데... 저한테는 텍스트 글꼴 목록자체가 나오지 않습니다. 이부분에 대해서도 구글링을 해보았지만 해답이 나오지 않습니다. 혹시 선생님께서 알고 계시다면 알려주시면 감사하겠습니다...!